Prozkoumejte protokoly trasování .NET/.NET Core a Python v nástroji Application Přehledy

Odešlete protokoly diagnostického trasování ASP.NET/ASP.NET Core z ILoggeru, NLogu, log4Netu nebo System.Diagnostics.Trace do Azure Application Přehledy. V případě aplikací v Pythonu odešlete protokoly diagnostického trasování pomocí AzureLogHandler v OpenCensus Python pro Azure Monitor. Pak je můžete prozkoumat a vyhledat. Tyto protokoly se sloučí s ostatními soubory protokolu z vaší aplikace, takže můžete identifikovat trasování přidružená k jednotlivým požadavkům uživatelů a korelovat je s ostatními událostmi a zprávami o výjimce.

Poznámka

Potřebujete modul log-capture? Je to užitečný adaptér pro protokolovací nástroje třetích stran. Pokud ale ještě NLog, log4Net nebo System.Diagnostics.Trace používáte, zvažte přímé volání metody Application Přehledy TrackTrace().

Instalace protokolování do aplikace

Nainstalujte do projektu zvolenou protokolovací rozhraní, což by mělo vést k zadání app.config nebo web.config.

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

Konfigurace aplikačního Přehledy pro shromažďování protokolů

Pokud jste to Přehledy ještě neudělali, přidejte do projektu aplikační Přehledy. Uvidíte možnost zahrnout kolektor protokolů.

Případně klikněte pravým tlačítkem na projekt v Průzkumník řešení a nakonfigurujte aplikační Přehledy. Vyberte možnost Konfigurovat shromažďování trasování.

Poznámka

Žádná nabídka Přehledy nebo kolektor protokolů? Zkuste řešení potíží.

Ruční instalace

Tuto metodu použijte, pokud váš typ projektu není podporovaný instalačním programem Přehledy aplikace (například Windows desktopový projekt).

  1. Pokud plánujete použít protokol 4Net nebo NLog, nainstalujte ho do projektu.

  2. V Průzkumník řešení klikněte pravým tlačítkem na projekt a vyberte Spravovat NuGet balíčky.

  3. Vyhledejte "Application Přehledy".

  4. Vyberte jeden z následujících balíčků:

Balíček NuGet nainstaluje potřebná sestavení a upraví web.config nebo app.config, pokud je to použitelné.

ILogger

Příklady použití implementace nástroje Application Přehledy ILogger s konzolovou aplikací a ASP.NET Core najdete v tématu ApplicationInsightsLoggerProvider pro protokoly ILoggeru .NET Core.

Vložení volání diagnostických protokolů

Pokud používáte System.Diagnostics.Trace, typické volání by bylo:

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

Pokud dáváte přednost protokolům log4net nebo NLog, použijte:

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

Použití událostí EventSource

Události System.Diagnostics.Tracing.EventSource můžete nakonfigurovat tak, aby se odesílaly do Přehledy jako trasování. Nejprve nainstalujte Microsoft.ApplicationInsights.EventSourceListener NuGet balíček. Pak upravte TelemetryModules oddíl souboru ApplicationInsights.config souboru.

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

Pro každý zdroj můžete nastavit následující parametry:

  • Název určuje název zdroje událostí, který se má shromažďovat.
  • Úroveň určuje úroveň protokolování, která se má shromažďovat: Kritické, Chyba, Informační, LogAlways, Podrobné nebo Upozornění.
  • Klíčová slova (volitelné) určují celočíselnou hodnotu kombinací klíčových slov, které se má použít.

Použití událostí DiagnosticSource

Události System.Diagnostics.DiagnosticSource můžete nakonfigurovat tak, aby se odesílaly do třídy Application Přehledy jako trasování. Nejprve nainstalujte Microsoft.ApplicationInsights.DiagnosticSourceListener NuGet balíček. Pak upravte část TelemetryModules souboruApplicationInsights.configsouboru.

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

Pro každý zdroj diagnostiky, který chcete trasovat, přidejte položku s atributem Name nastaveným na název vašeho zdroje diagnostiky.

Použití událostí Trasování událostí pro Windows

Trasování událostí můžete nakonfigurovat tak, aby Windows (TRASOVÁNÍ UDÁLOSTÍ) odesílané do služby Application Přehledy jako trasování. Nejprve nainstalujte Microsoft.ApplicationInsights.EtwCollector NuGet balíček. Pak upravte část TelemetryModules souboruApplicationInsights.configsouboru.

Poznámka

Události Trasování událostí pro Windows je možné shromažďovat pouze v případě, že proces, který je hostitelem sady SDK, běží pod identitou, která je členem skupiny Performance Log Users nebo Administrators.

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

Pro každý zdroj můžete nastavit následující parametry:

  • ProviderName je název poskytovatele Trasování událostí pro Windows, který se má shromažďovat.
  • ProviderGuid určuje identifikátor GUID zprostředkovatele Trasování událostí pro Windows, který se má shromažďovat. Můžete ho použít místo ProviderName .
  • Úroveň nastaví úroveň protokolování, která se má shromažďovat. Může to být kritické, chybové, informační, protokolové, podrobné nebo upozornění.
  • Klíčová slova (volitelné) nastaví celočíselnou hodnotu kombinací klíčových slov, které se používají.

Přímé použití rozhraní API pro trasování

Rozhraní API pro trasování aplikací Přehledy volat přímo. Adaptéry protokolování toto rozhraní API používají.

Například:

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

Výhodou trackTrace je, že do zprávy můžete umístit relativně dlouhá data. Můžete tam například kódovat data POST.

Ke zprávě můžete také přidat úroveň závažnosti. Stejně jako u jiných telemetrických dat můžete přidat hodnoty vlastností, které vám pomůžou filtrovat nebo hledat různé sady trasování. Například:

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

To vám umožní snadno vyfiltrovat všechny zprávy určité úrovně závažnosti, které se týkají konkrétní databáze.

AzureLogHandler pro OpenCensus Python

Obslužná Azure Monitor protokolu protokolů umožňuje exportovat protokoly Pythonu do Azure Monitor.

Instrumentovat aplikaci pomocí sady OpenCensus Python SDK pro Azure Monitor.

Tento příklad ukazuje, jak odeslat protokol úrovně upozornění do Azure Monitor.

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!')

Prozkoumání protokolů

Spusťte aplikaci v režimu ladění nebo ji nasaďte živě.

V podokně přehledu vaší aplikace na portálu Application Přehledy vyberte Hledat.

Můžete například:

  • Vyfiltrujte trasování protokolů nebo položky s konkrétními vlastnostmi.
  • Podrobná kontrola konkrétní položky
  • Vyhledejte další data systémového protokolu, která se vztahují ke stejnému požadavku uživatele (má stejné ID operace).
  • Uložte konfiguraci stránky jako oblíbenou položku.

Poznámka

Pokud vaše aplikace odesílá velké množství dat a používáte sadu Application Přehledy SDK pro ASP.NET verze 2.0.0-beta3 nebo novější, může funkce adaptivního vzorkování fungovat a odesílat jenom část telemetrie. Další informace o vzorkování.

Řešení potíží

Návody to pro Javu?

V instrumentaci bez kódu Java (doporučeno) se protokoly shromažďují bez použití agenta Java 3.0.

Pokud používáte sadu Java SDK, použijte adaptéry protokolu Java.

V místní nabídce projektu Přehledy možnost Aplikace není k dispozici.

  • Ujistěte se, Developer Analytics Tools je na vývojovém počítači nainstalovaná aplikace . V Visual Studio > Tools Extensions and Updates vyhledejte soubor Developer Analytics Tools. Pokud není na kartě Nainstalováno, otevřete kartu Online a nainstalujte ji.
  • Může to být typ projektu, Developer Analytics Tools nepodporuje. Použijte ruční instalaci.

V konfiguračním nástroji není k dispozici možnost adaptéru protokolu.

  • Nejprve nainstalujte protokolovací rozhraní.
  • Pokud používáte System.Diagnostics.Trace, ujistěte se, že je nakonfigurovaný v web.config.
  • Ujistěte se, že máte nejnovější verzi služby Application Přehledy. V Visual Studio přejděte na Nástroje Rozšíření a aktualizace a > otevřete kartu Aktualizace. Pokud Developer Analytics Tools, vyberte ho a aktualizujte ho.

Zobrazí se chybová zpráva Instrumentační klíč nemůže být prázdný

Pravděpodobně jste nainstalovali adaptér protokolování do NuGet bez instalace služby Application Přehledy. V Průzkumník řešení klikněte pravým tlačítkem na ApplicationInsights.config a vyberte Update Application Přehledy. Zobrazí se výzva k přihlášení k Azure a vytvoření prostředku služby Application Přehledy nebo k opětovnému použití existujícího prostředku. Tím by se měl problém vyřešit.

Může chvíli trvat, než všechny události a požadavky prochádí kanálem.

Kolik dat se uchovává?

Množství uchovávaných dat ovlivňuje několik faktorů. Další informace najdete v části Limity na stránce metrik událostí zákazníka.

Nevidím některé položky protokolu, které by se očekávaly

Pokud vaše aplikace odesílá objemná množství dat a používáte sadu Application Přehledy SDK pro ASP.NET verze 2.0.0-beta3 nebo novější, funkce adaptivního vzorkování může fungovat a odesílat jenom část telemetrie. Další informace o vzorkování.

Další kroky