Ismerkedés a .NET/.NET Core és a Python nyomkövetési naplóival az Application Elemzések

Küldje el a diagnosztikai nyomkövetési naplókat a ASP.NET/ASP.NET Core-alkalmazáshoz az ILogger, NLog, log4Net vagy System.Diagnostics.Trace adatokat az Azure Application Elemzések. Python-alkalmazások esetén küldjön diagnosztikai nyomkövetési naplókat az OpenCensus Pythonban az AzureLogHandler használatával Azure Monitor. Ezután felfedezheti és megkeresheti őket. Ezek a naplók egyesülnek az alkalmazás többi naplófájljában, így azonosíthatja az egyes felhasználói kérések nyomkövetéseit, és össze tudja őket korrelálni más eseményekkel és kivételjelentésekkel.

Megjegyzés

Szüksége van a naplórögzítési modulra? Ez egy külső naplózók számára hasznos adapter. Ha azonban még nem használ NLog, log4Net vagy System.Diagnostics.Trace adatokat, fontolja meg az Application Elemzések TrackTrace() közvetlen hívását.

Naplózás telepítése az alkalmazásra

Telepítse a kiválasztott naplózási keretrendszert a projektben, amelynek egy bejegyzéssel kell app.config vagy web.config.

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

Alkalmazásnaplók Elemzések konfigurálása

Ha még Elemzések még nem tette meg, adja hozzá az Application Elemzések a projekthez. Látni fogja a naplógyűjtőt is.

Vagy kattintson a jobb gombbal a projektre a Megoldáskezelő az Alkalmazás Elemzések. Válassza a Nyomkövetési gyűjtemény konfigurálása lehetőséget.

Megjegyzés

Nincs Alkalmazás Elemzések menü vagy naplógyűjtő lehetőség? Próbálja ki a hibaelhárítást.

Manuális telepítés

Akkor használja ezt a módszert, ha az Application Elemzések telepítője nem támogatja a projekttípust (Windows asztali projekt).

  1. Ha a log4Net vagy az NLog használatát tervezi, telepítse a projektben.

  2. A Megoldáskezelő kattintson a jobb gombbal a projektre, és válassza a Manage NuGet Packages (NuGet-csomagok kezelése) lehetőséget.

  3. Keressen rá az "Application Elemzések" kifejezésre.

  4. Válasszon egyet a következő csomagok közül:

A NuGet-csomag telepíti a szükséges szerelvényeket, web.config vagy app.config módosítja, ha van ilyen.

ILogger

Példák az Application Elemzések ILogger implementáció konzolalkalmazásokkal és ASP.NET Core való használatára: ApplicationInsightsLoggerProvider for .NET Core ILogger logs (ApplicationInsightsLoggerProvider .NET Core ILogger-naplókhoz).

Diagnosztikai naplóhívások beszúrása

A System.Diagnostics.Trace használata esetén a tipikus hívás a következő lehet:

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

Ha inkább a log4netet vagy az NLogot részesíti előnyben, használja a következőt:

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

EventSource-események használata

Konfigurálhatja a System.Diagnostics.Tracing.EventSource eseményeket, hogy nyomkövetésként Elemzések applicationsource-nak. Először telepítse a Microsoft.ApplicationInsights.EventSourceListener NuGet-csomagot. Ezután szerkessze TelemetryModules a ApplicationInsights.config szakaszát.

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

Minden forráshoz a következő paramétereket állíthatja be:

  • A Name (Név) a gyűjtenie kell eseményforrás nevét adja meg.
  • A szint határozza meg a gyűjteni szükséges naplózási szintet: Kritikus, Hiba, Tájékoztató, LogAlways, Részletes, vagy Figyelmeztetés.
  • A kulcsszavak (nem kötelező) a használni kívánt kulcsszókombinációk egész értékét határozzák meg.

DiagnosticSource-események használata

Konfigurálhatja a System.Diagnostics.DiagnosticSource eseményeket, hogy nyomkövetésként Elemzések applicationsource-nak. Először telepítse a Microsoft.ApplicationInsights.DiagnosticSourceListener NuGet-csomagot. Ezután szerkessze aApplicationInsights.config"TelemetryModules" szakaszát.

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

Minden nyomon követni kívánt DiagnosticSource-hoz adjon hozzá egy bejegyzést, amely a DiagnosticSource nevéhez beállított Név attribútummal van beállítva.

ETW-események használata

Az Esemény-nyomkövetést konfigurálhatja Windows (ETW) események nyomkövetésként való elküldése Elemzések application Elemzések számára. Először telepítse a Microsoft.ApplicationInsights.EtwCollector NuGet-csomagot. Ezután szerkessze aApplicationInsights.config"TelemetryModules" szakaszát.

Megjegyzés

ETW-események csak akkor gyűjthetőek, ha az SDK-t tartalmazó folyamat olyan identitás alatt fut, amely tagja a Teljesítménynapló felhasználóinak vagy rendszergazdáinak.

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

Minden forráshoz a következő paramétereket állíthatja be:

  • A ProviderName a gyűjtenie kell ETW-szolgáltató neve.
  • A ProviderGuid megadja az ETW-szolgáltató összegyűjthető GUID azonosítóját. A helyett ProviderName használható.
  • A szint beállítja a gyűjthető naplózási szintet. Ez lehet Kritikus, Hiba, Tájékoztató, LogAlways, Részletes, vagy Figyelmeztetés.
  • A kulcsszavak (nem kötelező) a használni kívánt kulcsszókombinációk egész értékét állítják ki.

A Trace API közvetlen használata

Az Application Elemzések a trace API-t. A naplózási adapterek ezt az API-t használják.

Például:

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

A TrackTrace előnye, hogy viszonylag hosszú adatokat is beletehet az üzenetbe. A POST-adatokat például itt kódolhatja.

Az üzenethez súlyossági szintet is hozzáadhat. Más telemetriákhoz hasonló módon tulajdonságértékeket is hozzáadhat, amelyek segítenek a különböző nyomkövetési halmazok szűrésében vagy keresésében. Például:

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

Ez lehetővé teszi, hogy egyszerűen kiszűrje a Keresés az adott súlyossági szinthez kapcsolódó összes üzenetet, amely egy adott adatbázishoz kapcsolódik.

AzureLogHandler openCensus Pythonhoz

Az Azure Monitor Log Handler lehetővé teszi Python-naplók exportálását Azure Monitor.

Az alkalmazást az OpenCensus Python SDK for Azure Monitor.

Ez a példa bemutatja, hogyan küldhet figyelmeztetési szintű naplót a 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!')

Naplók feltárása

Futtassa az alkalmazást hibakeresési módban, vagy telepítse élőben.

Az alkalmazás áttekintési paneljének Application Elemzések portálon válassza aKeresés lehetőséget.

Használhatja például a következőt:

  • Szűrhet a napló nyomkövetésére vagy adott tulajdonságokkal rendelkezik elemekre.
  • Adott elem részletes vizsgálata.
  • Keressen más rendszernapló-adatokat, amelyek ugyanannak a felhasználói kérelemnek a adatai (ugyanazokkal az OperationId azonosítóval rendelkezik).
  • Mentse egy oldal konfigurációját kedvencként.

Megjegyzés

Ha az alkalmazás sok adatot küld, és az Application Elemzések SDK for ASP.NET 2.0.0-beta3-as vagy újabb verzióját használja, az adaptív mintavételezési funkció működhet, és a telemetria csak egy részét küldheti el. További tudnivalók a mintavételezésről.

Hibaelhárítás

Hogyan ezt Javához?

A Java kód nélküli rendszeregységben (ajánlott) a naplókat a rendszer használatra készen gyűjti, használja a Java 3.0-ügynököt.

Ha a Java SDK-t használja, használja a Java naplóadaptereket.

Nincs Application Elemzések lehetőség a projekt helyi menüjében

  • Győződjön meg arról, hogy a Fejlesztői elemzési eszközök telepítve vannak a fejlesztői gépen. A Visual Studio Tools Extensions and Updates (Bővítmények és > frissítések) oldalon keresse meg a Developer Analytics Tools (Fejlesztői elemzési eszközök) adatokat. Ha nincs telepítve lapon, nyissa meg az Online lapot, és telepítse.
  • Ez lehet egy olyan projekttípus, amit a Developer Analytics Tools nem támogat. Manuális telepítést használjon.

A konfigurációs eszköz nem rendelkezik naplóadapter-beállítással

  • Először telepítse a naplózási keretrendszert.
  • Ha a System.Diagnostics.Trace adatokat használja, győződjön meg arról, hogy az a következőben vanweb.config.
  • Győződjön meg arról, hogy az Application Elemzések. A Visual Studio nyissa meg a Tools Extensions and Updates (Eszközök bővítményei > és frissítései) lapot, majd nyissa meg a Updates (Frissítések) lapot. Ha a Developer Analytics Tools elérhető, válassza ki a frissítéshez.

"A rendszerkulcs nem lehet üres" hibaüzenet jelenik meg

Valószínűleg az Application Elemzések telepítése nélkül telepítette a naplózási adapter NuGet-Elemzések. A Megoldáskezelő kattintson a jobb gombbal az elemre, ApplicationInsights.config válassza az Update Application Elemzések ( Alkalmazás frissítése) lehetőséget. A rendszer kérni fogja, hogy jelentkezzen be az Azure-ba, és hozzon létre egy Elemzések erőforrást, vagy használja újra a meglévőt. Ez megoldja a problémát.

Az összes esemény és kérelem végigfuthat a folyamaton, de ez egy kis idő alatt lefuthat.

Mennyi adatot őriz meg a rendszer?

A megőrzött adatok mennyiségét számos tényező befolyásolja. További információért tekintse meg az ügyfél eseménymetrikák oldalának Korlátok szakaszát.

Nem látom a várt naplóbejegyzéseket

Ha az alkalmazás nagy mennyiségű adatot küld, ön pedig az Application Elemzések SDK for ASP.NET 2.0.0-beta3 vagy újabb verzióját használja, az adaptív mintavételezési funkció csak a telemetria egy részét képes működni és küldeni. További tudnivalók a mintavételezésről.

Következő lépések