Prozkoumání protokolů trasování .NET/.NET Core a Pythonu v Přehledy aplikace

Odešlete protokoly diagnostického trasování pro vaši aplikaci ASP.NET/ASP.NET Core z ILoggeru, NLogu, log4Net nebo System.Diagnostics.Trace do Aplikace Azure Přehledy. V případě aplikací v Pythonu odesílejte protokoly diagnostického trasování pomocí AzureLogHandler v OpenCensus Pythonu pro Azure Monitor. Pak je můžete prozkoumat a vyhledat. Tyto protokoly se sloučí s ostatními soubory protokolu z vaší aplikace. Můžete je použít k identifikaci trasování, která jsou přidružená k jednotlivým žádostem uživatele, a korelovat je s jinými událostmi a sestavami výjimek.

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ě nepoužíváte protokol NLog, log4Net nebo System.Diagnostics.Trace, zvažte přímé volání aplikace Přehledy TrackTrace().

Poznámka:

Podpora příjmu dat založeného na instrumentačním klíči skončí 31. března 2025. Příjem klíčů instrumentace bude dál fungovat, ale už nebudeme poskytovat aktualizace ani podporu pro tuto funkci. Přechod na připojovací řetězec, abyste mohli využívat nové funkce.

Instalace protokolování do aplikace

Nainstalujte zvolenou architekturu protokolování do projektu, což by mělo mít za následek položku v souboru 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 ke shromažďování protokolů

Pokud jste to ještě neudělali, přidejte do projektu Přehledy aplikace a existuje možnost zahrnout kolektor protokolů.

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

Poznámka:

Žádná nabídka Přehledy aplikace nebo možnost kolektoru protokolů? Zkuste řešit potíže.

Ruční instalace

Tuto metodu použijte, pokud instalační program aplikace Přehledy nepodporuje váš typ projektu. Pokud se jedná například o desktopový projekt Windows.

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

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

  3. Vyhledejte Přehledy aplikace.

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

Balíček NuGet nainstaluje potřebná sestavení a v případě potřeby upraví web.config nebo app.config.

ILogger

Příklady použití implementace application Přehledy ILogger s konzolovými aplikacemi a ASP.NET Core najdete v tématu Application Přehledy LoggerProvider pro protokoly ILogger .NET Core.

Vložení volání diagnostického protokolu

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

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

Pokud dáváte přednost protokolu 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 aplikace Přehledy jako trasování. Nejprve nainstalujte Microsoft.ApplicationInsights.EventSourceListener balíček NuGet. Potom upravte TelemetryModules oddíl souboru Application Přehledy.config.

    <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 EventSource, který se má shromáždit.
  • Úroveň určuje úroveň protokolování, která se má shromažďovat: kritické, chybové, informační, logalwaye, podrobné nebo upozornění.
  • Klíčová slova (volitelné) určují celočíselnou hodnotu kombinací klíčových slov, která se mají použít.

Použití událostí DiagnosticSource

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

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

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

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

Trasování událostí pro Windows (ETW) můžete nakonfigurovat tak, aby se odesílaly do aplikace Přehledy jako trasování. Nejprve nainstalujte Microsoft.ApplicationInsights.EtwCollector balíček NuGet. Pak upravte část TelemetryModules v souboru Application Přehledy.config.

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 uživatelů protokolu výkonu nebo Správa istrátory.

    <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 zprostředkovatele pro Windows, který se má shromáždit.
  • ProviderGuid určuje identifikátor GUID zprostředkovatele Trasování událostí pro Windows, který se má shromáždit. Lze jej použít místo ProviderName.
  • Úroveň nastaví úroveň protokolování, která se má shromažďovat. Může to být kritické, chybové, informační, logalwaye, podrobné nebo upozornění.
  • Klíčová slova (volitelné) nastavují celočíselnou hodnotu kombinací klíčových slov, která se mají použít.

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

Rozhraní API trasování Přehledy aplikace můžete volat přímo. Adaptéry protokolování používají toto rozhraní API.

Pří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 vložit relativně dlouhá data. Můžete tam například zakódovat data POST.

Ke zprávě můžete také přidat úroveň závažnosti. A stejně jako jiné telemetrie můžete přidat hodnoty vlastností, které pomáhají filtrovat nebo vyhledávat různé sady trasování. Příklad:

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

Nyní můžete snadno vyfiltrovat ve službě Transaction Search všechny zprávy konkrétní úrovně závažnosti, které souvisejí s konkrétní databází.

AzureLogHandler pro OpenCensus Python

Obslužná rutina protokolu služby Azure Monitor umožňuje exportovat protokoly Pythonu do služby Azure Monitor.

Instrumentace aplikace pomocí sady OpenCensus Python SDK pro Azure Monitor

Tento příklad ukazuje, jak odeslat protokol na úrovni upozornění do služby 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 aplikace na portálu Application Přehledy portal vyberte Vyhledávání transakcí.

Můžete například:

  • Filtrování trasování protokolu nebo položek s konkrétními vlastnostmi
  • Podrobně zkontrolujte konkrétní položku.
  • 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íbené položky.

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 pouze část telemetrie. Přečtěte si další informace o vzorkování.

Řešení problému

Najděte odpovědi na běžné dotazy.

Co způsobuje zpožděnou telemetrii, přetíženou síť a neefektivní přenos?

System.Diagnostics.Tracing má funkci Autoflush. Tato funkce způsobí, že sada SDK vyprázdní všechny položky telemetrie, což je nežádoucí a může způsobit problémy s adaptérem protokolování, jako jsou zpožděná telemetrie, přetížená síť a neefektivní přenos.

Návody to udělat pro Javu?

V instrumentaci bez kódu v Javě, která se doporučuje, se protokoly shromažďují předem. Použijte agenta Java 3.0.

Agent Aplikace Přehledy Javě shromažďuje protokoly z log4j, Logback a java.util.logging.

Proč v místní nabídce projektu neexistuje žádná možnost Přehledy aplikace?

  • Ujistěte se, že jsou na vývojovém počítači nainstalované nástroje Developer Analytics Tools. V sadě Visual Studio přejděte na Rozšíření nástrojů>a Aktualizace a vyhledejte Developer Analytics Tools. Pokud není na kartě Nainstalované , otevřete kartu Online a nainstalujte ji.
  • Tento typ projektu může být takový, který developer Analytics Tools nepodporuje. Použijte ruční instalaci.

Proč v nástroji pro konfiguraci není k dispozici žádná možnost adaptéru protokolu?

  • Nejprve nainstalujte protokolovací architekturu.
  • Pokud používáte System.Diagnostics.Trace, ujistěte se, že jste ho nakonfigurovali ve web.config.
  • Ujistěte se, že máte nejnovější verzi aplikace Přehledy. V sadě Visual Studio přejděte na Rozšíření nástrojů>a Aktualizace a otevřete kartu Aktualizace. Pokud tam jsou nástroje Developer Analytics Tools, vyberte ho a aktualizujte ho.

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

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

Než se všechny události a požadavky dostanou přes kanál, může to chvíli trvat.

Kolik dat se uchovává?

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

Proč nevidím některé položky protokolu, které jsem očekával?

Vaše aplikace možná odesílá objemné objemy dat a používáte sadu Application Přehledy SDK pro ASP.NET verze 2.0.0-beta3 nebo novější. V takovém případě může funkce adaptivního vzorkování fungovat a odesílat jenom část vaší telemetrie. Přečtěte si další informace o vzorkování.

Další kroky