Application Analizler'da .NET/.NET Core ve Python izleme günlüklerini Analizler

ASP.NET/ASP.NET Core uygulamanıza yönelik tanılama izleme günlüklerini ILogger, NLog, log4Net veya System.Diagnostics.Trace'den Azure Application Analizler. Python uygulamaları için OpenCensus Python'da AzureLogHandler kullanarak tanılama izleme günlüklerini Azure İzleyici. Daha sonra bunları keşfedebilir ve arayabilirsiniz. Bu günlükler, uygulamanıza yönelik diğer günlük dosyalarıyla birleştirilir, böylece her bir kullanıcı isteğiyle ilişkili izlemeleri tanımlayabilir ve bunları diğer olaylarla ve özel durum raporlarıyla ilişkilendirilebilirsiniz.

Not

Günlük yakalama modülüne ihtiyacınız var mı? Üçüncü taraf günlükler için kullanışlı bir bağdaştırıcıdır. Ancak henüz NLog, log4Net veya System.Diagnostics.Trace kullanmadıysanız doğrudan Application Analizler TrackTrace() çağırmayı göz önünde bulundurabilirsiniz.

Uygulamanıza günlük kaydı yükleme

Seçtiğiniz günlük çerçevesini projenize yükleyin; bu da projenizin içinde bir girişle veya app.config web.config.

 <configuration>
  <system.diagnostics>
    <trace>
      <listeners>
        <add name="myAppInsightsListener" type="Microsoft.ApplicationInsights.TraceListener.ApplicationInsightsTraceListener, Microsoft.ApplicationInsights.TraceListener" />
      </listeners>
    </trace>
  </system.diagnostics>
</configuration>

Application Analizler'yi günlükleri toplayan şekilde yapılandırma

Henüz Analizler projenize Application Analizler ekleme. Günlük toplayıcıyı dahil etmek için bir seçenekle karşınız olur.

Uygulama Yapılandırma'yı yapılandırmak için Çözüm Gezgini projenize sağ Analizler. İzleme koleksiyonunu yapılandır seçeneğini belirleyin.

Not

Uygulama Uygulama Analizler veya günlük toplayıcı seçeneği yok mu? Sorun gidermeyi deneyin.

El ile yükleme

Proje türünüz Application Analizler yükleyicisi tarafından desteklenmiyorsa (örneğin, bir Windows masaüstü projesi) bu yöntemi kullanın.

  1. log4Net veya NLog kullanmayı planlıyorsanız projenize yükleyin.

  2. Bu Çözüm Gezgini projenize sağ tıklayın ve Paketleri Yönet'NuGet seçin.

  3. "Application Analizler.

  4. Aşağıdaki paketlerden birini seçin:

NuGet paketi gerekli derlemeleri yüker ve varsa web.config veya app.config veya değişikliklerini sağlar.

ILogger

Application Analizler ILogger uygulamasını konsol uygulamaları ve ASP.NET Core kullanma örnekleri için bkz. .NET Core ILogger günlükleri için ApplicationInsightsLoggerProvider.

Tanılama günlüğü çağrıları ekleme

System.Diagnostics.Trace kullanırsanız tipik bir çağrı şöyle olur:

System.Diagnostics.Trace.TraceWarning("Slow response - database01");

log4net veya NLog'u tercih ediyorsanız şunları kullanın:

    logger.Warn("Slow response - database01");

EventSource olaylarını kullanma

System.Diagnostics.Tracing.EventSource olaylarını Application Analizler olarak gönderilecek şekilde yapılandırabilirsiniz. İlk olarak, Microsoft.ApplicationInsights.EventSourceListener NuGet yükleyin. Ardından TelemetryModules dosyanınApplicationInsights.config düzenleyin.

    <Add Type="Microsoft.ApplicationInsights.EventSourceListener.EventSourceTelemetryModule, Microsoft.ApplicationInsights.EventSourceListener">
      <Sources>
        <Add Name="MyCompany" Level="Verbose" />
      </Sources>
    </Add>

Her kaynak için aşağıdaki parametreleri ayarlayın:

  • Name, top için EventSource adını belirtir.
  • Düzey, top için günlük düzeyini belirtir: Kritik, Hata, Bilgilendirme, LogAlways, Ayrıntılı veya Uyarı.
  • Anahtar sözcükler (isteğe bağlı) kullanmak için anahtar sözcük birleşimlerinin tamsayı değerini belirtir.

DiagnosticSource olaylarını kullanma

System.Diagnostics.DiagnosticSource olaylarını, izleme olarak Uygulama Kaynakları'Analizler üzere yapılandırabilirsiniz. İlk olarak, Microsoft.ApplicationInsights.DiagnosticSourceListener NuGet yükleyin. Ardından, dosyanın "TelemetryModules" ApplicationInsights.config düzenleyin.

    <Add Type="Microsoft.ApplicationInsights.DiagnosticSourceListener.DiagnosticSourceTelemetryModule, Microsoft.ApplicationInsights.DiagnosticSourceListener">
      <Sources>
        <Add Name="MyDiagnosticSourceName" />
      </Sources>
    </Add>

İzlemek istediğiniz her DiagnosticSource için Name özniteliği DiagnosticSource'uz adına ayarlanmış bir giriş ekleyin.

ETW olaylarını kullanma

Olay İzleme'yi, Windows (ETW) olaylarını Izleme olarak Uygulama Analizler üzere yapılandırabilirsiniz. İlk olarak, Microsoft.ApplicationInsights.EtwCollector NuGet yükleyin. Ardından, dosyanın "TelemetryModules" ApplicationInsights.config düzenleyin.

Not

ETW olayları yalnızca SDK'yı barındıran işlem Performans Günlüğü Kullanıcıları veya Yöneticileri'nin üyesi olan bir kimlik altında çalışıyorsa toplanabilir.

    <Add Type="Microsoft.ApplicationInsights.EtwCollector.EtwCollectorTelemetryModule, Microsoft.ApplicationInsights.EtwCollector">
      <Sources>
        <Add ProviderName="MyCompanyEventSourceName" Level="Verbose" />
      </Sources>
    </Add>

Her kaynak için aşağıdaki parametreleri ayarlayın:

  • ProviderName, toplanmayan ETW sağlayıcısının adıdır.
  • ProviderGuid, top için ETW sağlayıcısının GUID'lerini belirtir. yerine ProviderName kullanılabilir.
  • Düzey, top için günlük düzeyini ayarlar. Kritik, Hata, Bilgilendirme, LogAlways, Ayrıntılı veya Uyarı olabilir.
  • Anahtar sözcükler (isteğe bağlı) kullanmak üzere anahtar sözcük birleşimlerinin tamsayı değerini ayarlayın.

İzleme API'sini doğrudan kullanma

İzleme API'sini doğrudan Analizler Application Analizler çağırabilirsiniz. Günlük bağdaştırıcıları bu API'yi kullanır.

Örnek:

TelemetryConfiguration configuration = TelemetryConfiguration.CreateDefault();
var telemetryClient = new TelemetryClient(configuration);
telemetryClient.TrackTrace("Slow response - database01");

TrackTrace'in bir avantajı, iletiye görece uzun veriler koyabilirsiniz. Örneğin, POST verilerini orada kodlayabilir.

İletinize bir önem derecesi de ekebilirsiniz. Ayrıca diğer telemetri verileri gibi, farklı izleme kümelerini filtrelemeye veya aramaya yardımcı olmak için özellik değerleri ekebilirsiniz. Örnek:

TelemetryConfiguration configuration = TelemetryConfiguration.CreateDefault();
var telemetryClient = new TelemetryClient(configuration);
telemetryClient.TrackTrace("Slow database response",
                            SeverityLevel.Warning,
                            new Dictionary<string, string> { { "database", "db.ID" } });

Bu, belirli bir veritabanıyla ilgili belirli bir önem düzeyine sahip tüm iletileri ara içinde kolayca filtrelemenizi sağlar.

OpenCensus Python için AzureLogHandler

Günlük Azure İzleyici İşleyicisi, Python günlüklerini veri Azure İzleyici.

Uygulamanıza OpenCensus Python SDK'sı ile izleme Azure İzleyici.

Bu örnekte, bir uyarı düzeyi günlüğünün Azure İzleyici.

import logging

from opencensus.ext.azure.log_exporter import AzureLogHandler

logger = logging.getLogger(__name__)
logger.addHandler(AzureLogHandler(connection_string='InstrumentationKey=<your-instrumentation_key-here>'))
logger.warning('Hello, World!')

Günlüklerinizi keşfetme

Uygulamanızı hata ayıklama modunda çalıştırın veya canlı olarak dağıtın.

Application Analizler portalında, uygulamanıza genel bakış bölmesinde Ara'ya tıklayın.

Örneğin:

  • Günlük izlemelerini veya belirli özelliklere sahip öğeleri filtrele.
  • Belirli bir öğeyi ayrıntılı olarak inceleme.
  • Aynı kullanıcı isteğiyle ilişkili diğer sistem günlüğü verilerini bulun (aynı OperationId'ye sahiptir).
  • Sayfanın yapılandırmasını sık kullanılanlara kaydedin.

Not

Uygulamanız çok fazla veri gönderiyorsa ve ASP.NET sürüm 2.0.0-beta3 veya sonraki sürümler için Application Analizler SDK'sı kullanıyorsanız uyarlamalı örnekleme özelliği telemetrinizin yalnızca bir bölümünü çalıştırarak gönderebilir. Örnekleme hakkında daha fazla bilgi edinin.

Sorun giderme

Nasıl yaparım? Java için ne yapacaksınız?

Java kodsuz araçları (önerilir) içinde günlükler kutudan toplanır, Java 3.0 aracısı kullanın.

Java SDK'sı kullanıyorsanız Java günlük bağdaştırıcılarını kullanın.

Proje bağlam menüsünde uygulama Analizler seçeneği yoktur

  • Geliştirme Developer Analytics Tools yüklü olduğundan emin olun. Visual Studio Araçları Uzantıları > ve Güncelleştirmeleri'nde, Developer Analytics Tools. Yüklü sekmesinde değilse Çevrimiçi sekmesini açın ve yükleyin.
  • Bu, bir proje türü Developer Analytics Tools desteklemez. El ile yükleme kullanın.

Yapılandırma aracında günlük bağdaştırıcısı seçeneği yoktur

  • Önce günlüğe kaydetme çerçevesini yükleyin.
  • System.Diagnostics.Trace kullanıyorsanız, 'de yapılandırıldığından emin web.config.
  • Application Insights en son sürümüne sahip olduğunuzdan emin olun. Visual Studio ' de araçlar > uzantılar ve güncelleştirmeler' e gidin ve güncelleştirmeler sekmesini açın. Developer Analytics Tools , güncelleştirmek için seçin.

"Izleme anahtarı boş olamaz" hata iletisini alıyorum

büyük olasılıkla, Application Insights yüklemeden günlük bağdaştırıcısı NuGet paketini yüklediniz. Çözüm Gezgini ' de, ApplicationInsights.config' a sağ tıklayın ve Application Insights güncelleştir' i seçin. Azure 'da oturum açmanız ve bir Application Insights kaynağı oluşturmanız veya var olan bir kaynağın yeniden kullanılması istenir. Bu, sorunu çözmelidir.

İşlem hattını almak için tüm olaylar ve isteklerin zaman alabilir.

Ne kadar veri tutuluyor?

Birçok etken, tutulan veri miktarını etkiler. Daha fazla bilgi için, müşteri olay ölçümleri sayfasının sınırlar bölümüne bakın.

Beklendiğim bazı günlük girdilerini göremiyorum

uygulamanız voluminous miktarlarda veri gönderirse ve ASP.NET version 2.0.0-beta3 veya üzeri için Application Insights SDK kullanıyorsanız, uyarlamalı örnekleme özelliği yalnızca telemetrinizin bir kısmını kullanabilir ve gönderebilir. Örnekleme hakkında daha fazla bilgi edinin.

Sonraki adımlar