Cloud Service, Virtual Machine veya Service Fabric tanılama verilerini Uygulama Analizler 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 Uygulama Analizler'ne nasıl veri gönderebilirsiniz?

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.

Uygulama Analizler 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"
                    }
                ]
            }
        }
    ]
}
  • Havuzadı özniteliği, havuzu benzersiz olarak tanımlayan bir dize değeridir.

  • Application Analizler öğesi, Azure tanılama verilerinin gönderildiği Application insights kaynağının izleme anahtarını belirtir.

    • Mevcut bir Application Analizler kaynağınız yoksa, kaynak oluşturma ve izleme anahtarını alma hakkında daha fazla bilgi için bkz. Yeni Uygulama Analizler 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 paketleme sırasında APPINSIGHTS_INSTRUMENTATIONKEY hizmet yapılandırma ayarını temel alır. Bkz. Cloud Services ile Uygulama Analizler 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.

Diagnostics Public Configuration

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.

Diagnostics Sinks Configuration with Application Insights

Havuz yapılandırmasını tamamlama örneği

Genel yapılandırma dosyasının tam bir örneği aşağıda verilmiştir:

  1. tüm hataları Application Analizler'e gönderir (DiagnosticMonitorConfiguration düğümünde belirtilir)
  2. 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ı tarafından toplanan tüm verileri gönderme

<DiagnosticMonitorConfiguration overallQuotaInMB="4096" sinks="ApplicationInsights">
"DiagnosticMonitorConfiguration": {
    "overallQuotaInMB": 4096,
    "sinks": "ApplicationInsights",
}

Uygulama Analizler havuzuna yalnızca hata günlüklerini gönderme

<DiagnosticMonitorConfiguration overallQuotaInMB="4096" sinks="ApplicationInsights.MyTopDiagdata">
"DiagnosticMonitorConfiguration": {
    "overallQuotaInMB": 4096,
    "sinks": "ApplicationInsights.MyTopDiagData",
}

Uygulama Analizler'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öndermeye çalışabilirsiniz. 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 Analizler'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 Uygulama Analizler gönderilir.

Sonraki Adımlar

  • Uygulama Analizler'nde 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 kullanma