Cloud Service, Virtual Machine veya Service Fabric tanılama verilerini Application Insights'a gönderme
Bulut hizmetleri, Sanal Makineler, Sanal Makine Ölçek Kümeleri ve Service Fabric'in tümü veri toplamak için Azure Tanılama uzantısını kullanır. Azure tanılama verileri Azure Depolama tablolarına gönderir. Bununla birlikte, 1.5 veya sonraki bir Azure Tanılama uzantısını kullanarak verilerin tümünü veya bir alt kümesini diğer konumlara da yöneltebilirsiniz.
Bu makalede, Azure Tanılama uzantısından Application Insights'a veri gönderme açıklanmaktadır.
Tanılama yapılandırması açıklandı
Azure tanılama uzantısı 1.5, tanılama verilerini gönderebileceğiniz ek konumlar olan havuzları kullanıma sunar.
Application Insights için havuz örneği yapılandırması:
<SinksConfig>
<Sink name="ApplicationInsights">
<ApplicationInsights>{Insert InstrumentationKey}</ApplicationInsights>
<Channels>
<Channel logLevel="Error" name="MyTopDiagData" />
<Channel logLevel="Verbose" name="MyLogData" />
</Channels>
</Sink>
</SinksConfig>
"SinksConfig": {
"Sink": [
{
"name": "ApplicationInsights",
"ApplicationInsights": "{Insert InstrumentationKey}",
"Channels": {
"Channel": [
{
"logLevel": "Error",
"name": "MyTopDiagData"
},
{
"logLevel": "Error",
"name": "MyLogData"
}
]
}
}
]
}
Havuz adı özniteliği, havuzu benzersiz olarak tanımlayan bir dize değeridir.
ApplicationInsights öğesi, Azure tanılama verilerinin gönderildiği Application insights kaynağının izleme anahtarını belirtir.
- Mevcut bir Application Insights kaynağınız yoksa bkz . Yeni Application Insights kaynağı oluşturma.
- Azure SDK 2.8 ve üzeri bir Bulut Hizmeti geliştiriyorsanız, bu izleme anahtarı otomatik olarak doldurulur. Değer, Bulut Hizmeti projesini paketlerken APPINSIGHTS_INSTRUMENTATIONKEY hizmet yapılandırması ayarını temel alır. Bkz . Cloud Services ile Application Insights'ı kullanma.
Channels öğesi bir veya daha fazla Kanal öğesi içerir.
- Name özniteliği benzersiz olarak bu kanala başvurur.
- loglevel özniteliği, kanalın izin verdiği günlük düzeyini belirtmenize olanak tanır. En az bilgiye göre kullanılabilir günlük düzeyleri şunlardır:
- Ayrıntılı
- Bilgiler
- Uyarı
- Hata
- Kritik
Kanal bir filtre gibi davranır ve hedef havuza göndermek üzere belirli günlük düzeylerini seçmenize olanak tanır. Örneğin, ayrıntılı günlükleri toplayıp depolama alanına gönderebilir, ancak havuza yalnızca Hatalar gönderebilirsiniz.
Aşağıdaki grafikte bu ilişki gösterilmektedir.
Aşağıdaki grafik, yapılandırma değerlerini ve bunların nasıl çalıştığını özetler. Yapılandırmaya hiyerarşideki farklı düzeylerde birden çok havuz ekleyebilirsiniz. En üst düzeydeki havuz genel bir ayar görevi görür ve tek tek öğede belirtilen, bu genel ayar için geçersiz kılma işlevi görür.
Havuz yapılandırmasını tamamlama örneği
Genel yapılandırma dosyasının tam bir örneği aşağıda verilmiştir:
- Tüm hataları Application Insights'a gönderir (DiagnosticMonitorConfiguration düğümünde belirtilir).
- Ayrıca Uygulama Günlükleri için ayrıntılı düzey günlükleri de gönderir (Günlükler düğümünde belirtilir).
<WadCfg>
<DiagnosticMonitorConfiguration overallQuotaInMB="4096"
sinks="ApplicationInsights.MyTopDiagData"> <!-- All info below sent to this channel -->
<DiagnosticInfrastructureLogs />
<PerformanceCounters>
<PerformanceCounterConfiguration counterSpecifier="\Processor(_Total)\% Processor Time" sampleRate="PT3M" />
<PerformanceCounterConfiguration counterSpecifier="\Memory\Available MBytes" sampleRate="PT3M" />
</PerformanceCounters>
<WindowsEventLog scheduledTransferPeriod="PT1M">
<DataSource name="Application!*" />
</WindowsEventLog>
<Logs scheduledTransferPeriod="PT1M" scheduledTransferLogLevelFilter="Verbose"
sinks="ApplicationInsights.MyLogData"/> <!-- This specific info sent to this channel -->
</DiagnosticMonitorConfiguration>
<SinksConfig>
<Sink name="ApplicationInsights">
<ApplicationInsights>{Insert InstrumentationKey}</ApplicationInsights>
<Channels>
<Channel logLevel="Error" name="MyTopDiagData" />
<Channel logLevel="Verbose" name="MyLogData" />
</Channels>
</Sink>
</SinksConfig>
</WadCfg>
"WadCfg": {
"DiagnosticMonitorConfiguration": {
"overallQuotaInMB": 4096,
"sinks": "ApplicationInsights.MyTopDiagData", "_comment": "All info below sent to this channel",
"DiagnosticInfrastructureLogs": {
},
"PerformanceCounters": {
"PerformanceCounterConfiguration": [
{
"counterSpecifier": "\\Processor(_Total)\\% Processor Time",
"sampleRate": "PT3M"
},
{
"counterSpecifier": "\\Memory\\Available MBytes",
"sampleRate": "PT3M"
}
]
},
"WindowsEventLog": {
"scheduledTransferPeriod": "PT1M",
"DataSource": [
{
"name": "Application!*"
}
]
},
"Logs": {
"scheduledTransferPeriod": "PT1M",
"scheduledTransferLogLevelFilter": "Verbose",
"sinks": "ApplicationInsights.MyLogData", "_comment": "This specific info sent to this channel"
}
},
"SinksConfig": {
"Sink": [
{
"name": "ApplicationInsights",
"ApplicationInsights": "{Insert InstrumentationKey}",
"Channels": {
"Channel": [
{
"logLevel": "Error",
"name": "MyTopDiagData"
},
{
"logLevel": "Verbose",
"name": "MyLogData"
}
]
}
}
]
}
}
Önceki yapılandırmada aşağıdaki satırlar aşağıdaki anlamlara sahiptir:
Azure tanılamasının topladığı tüm verileri gönderme
<DiagnosticMonitorConfiguration overallQuotaInMB="4096" sinks="ApplicationInsights">
"DiagnosticMonitorConfiguration": {
"overallQuotaInMB": 4096,
"sinks": "ApplicationInsights",
}
Application Insights havuzuna yalnızca hata günlükleri gönderme
<DiagnosticMonitorConfiguration overallQuotaInMB="4096" sinks="ApplicationInsights.MyTopDiagdata">
"DiagnosticMonitorConfiguration": {
"overallQuotaInMB": 4096,
"sinks": "ApplicationInsights.MyTopDiagData",
}
Application Insights'a Ayrıntılı uygulama günlükleri gönderme
<Logs scheduledTransferPeriod="PT1M" scheduledTransferLogLevelFilter="Verbose" sinks="ApplicationInsights.MyLogData"/>
"DiagnosticMonitorConfiguration": {
"overallQuotaInMB": 4096,
"sinks": "ApplicationInsights.MyLogData",
}
Sınırlamalar
- Kanallar yalnızca günlük türü, performans sayaçları değil. Performans sayacı öğesi olan bir kanal belirtirseniz, bu yok sayılır.
- Bir kanalın günlük düzeyi, Azure tanılaması tarafından toplananlar için günlük düzeyini aşamaz. Örneğin, Logs öğesinde Uygulama Günlüğü hatalarını toplayamaz ve Application Insight havuzuna Ayrıntılı günlükler göndermeyi deneyebilirsiniz. scheduledTransferLogLevelFilter özniteliği her zaman havuza göndermeye çalıştığınız günlüklerden eşit veya daha fazla günlük toplamalıdır.
- Azure tanılama uzantısı tarafından toplanan blob verilerini Application Insights'a gönderemezsiniz. Örneğin, Dizinler düğümü altında belirtilen her şey. Kilitlenme Dökümleri için gerçek kilitlenme dökümü blob depolamaya gönderilir ve yalnızca kilitlenme dökümü oluşturulduğuna ilişkin bir bildirim Application Insights'a gönderilir.
Sonraki Adımlar
- Application Insights'ta Azure tanılama bilgilerinizi görüntülemeyi öğrenin.
- Uygulamanız için Azure tanılama uzantısını etkinleştirmek için PowerShell'i kullanın.
- Uygulamanız için Azure tanılama uzantısını etkinleştirmek için Visual Studio'yu kullanın.