A .NET/.NET Core és a Python nyomkövetési naplóinak felfedezése az Alkalmazás Elemzések

Küldjön diagnosztikai nyomkövetési naplókat az ASP.NET/ASP.NET Core-alkalmazáshoz az ILoggerből, az NLog-ból, a log4Netből vagy a System.Diagnostics.Trace-ből Azure-alkalmazás Elemzések. Python-alkalmazások esetén küldjön diagnosztikai nyomkövetési naplókat az AzureLogHandler használatával az Azure Monitorhoz készült OpenCensus Pythonban. Ezután felfedezheti és megkeresheti őket. Ezek a naplók egyesülnek az alkalmazás többi naplófájljával. Ezekkel azonosíthatja az egyes felhasználói kérésekhez társított nyomkövetéseket, és korrelálhatja őket más eseményekkel és kivételjelentésekkel.

Megjegyzés:

Szüksége van a naplórögzítési modulra? Ez egy hasznos adapter külső naplózók számára. Ha azonban még nem használja az NLogot, a log4Netet vagy a System.Diagnostics.Trace szolgáltatást, fontolja meg az alkalmazás Elemzések TrackTrace() közvetlen meghívását.

Megjegyzés:

2025. március 31-én megszűnik az eszközkulcsalapú betöltés támogatása. A rendszerállapot-kulcsok betöltése továbbra is működni fog, de a továbbiakban nem biztosítunk frissítéseket vagy támogatást a funkcióhoz. Váltás kapcsolati sztring az új képességek kihasználásához.

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

Telepítse a kiválasztott naplózási keretrendszert a projektben, amelynek az app.config vagy a web.config bejegyzést kell eredményeznie.

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

Az alkalmazás Elemzések konfigurálása naplók gyűjtéséhez

Ha még nem tette meg, és lehetőség van a naplógyűjtő hozzáadására, adja hozzá az alkalmazás Elemzések a projekthez.

Vagy kattintson a jobb gombbal a projektre a Megoldáskezelő alkalmazás Elemzések konfigurálásához. 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ő beállítás? Próbálkozzon a hibaelhárítással.

Manuális telepítés

Ezt a módszert akkor használja, ha az alkalmazás Elemzések telepítője nem támogatja a projekttípust. Ha például windowsos asztali projektről van szó.

  1. Ha a log4netet vagy az NLogot szeretné használni, telepítse a projektbe.

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

  3. Keresse meg az alkalmazás Elemzések.

  4. Válassza ki az alábbi csomagok egyikét:

A NuGet-csomag telepíti a szükséges szerelvényeket, és szükség esetén módosítja a web.config vagy az app.config konfigurációt.

ILogger

Az Alkalmazás Elemzések ILogger-implementáció konzolalkalmazásokkal és ASP.NET Core-nal való használatára vonatkozó példákért lásd: Application Elemzések LoggerProvider for .NET Core ILogger logs.

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

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

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

Ha 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 úgy, hogy az alkalmazás Elemzések nyomkövetésként legyenek elküldve. Először telepítse a Microsoft.ApplicationInsights.EventSourceListener NuGet-csomagot. Ezután szerkessze az TelemetryModulesAlkalmazás Elemzések.config fájl 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 név a gyűjtendő EventSource nevét adja meg.
  • A Szint a gyűjtendő naplózási szintet adja meg: Kritikus, Hiba, Információ, LogAlways, Részletes vagy Figyelmeztetés.
  • A kulcsszavak (nem kötelező) a használni kívánt kulcsszókombinációk egész számát adják meg.

DiagnosticSource-események használata

Konfigurálhatja a System.Diagnostics.DiagnosticSource-eseményeket úgy, hogy az alkalmazás Elemzések nyomkövetésként legyenek elküldve. Először telepítse a Microsoft.ApplicationInsights.DiagnosticSourceListener NuGet-csomagot. Ezután szerkessze az Alkalmazás Elemzések.config fájl "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 diagnosztikai forráshoz adjon hozzá egy bejegyzést, amelynek Name attribútuma a diagnosztikai forrás nevéhez van állítva.

ETW-események használata

Konfigurálhatja, hogy a Windows (ETW) eseménykövetése nyomkövetésként legyen elküldve az alkalmazásnak Elemzések. Először telepítse a Microsoft.ApplicationInsights.EtwCollector NuGet-csomagot. Ezután szerkessze az Alkalmazás Elemzések.config fájl "TelemetryModules" szakaszát.

Megjegyzés:

Az ETW-események csak akkor gyűjthetők össze, ha az SDK-t üzemeltető folyamat olyan identitás alatt fut, amely a teljesítménynapló-felhasználók vagy Rendszergazda istratorok tagja.

    <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űjtendő ETW-szolgáltató neve.
  • A ProviderGuid a gyűjtendő ETW-szolgáltató GUID azonosítóját adja meg. Ez használható ahelyett ProviderName, hogy .
  • A szint beállítja a gyűjtendő naplózási szintet. Lehet kritikus, hiba, információs, LogAlways, Részletes vagy Figyelmeztetés.
  • A kulcsszavak (nem kötelező) a használni kívánt kulcsszókombinációk egész számértékét állítják be.

A Trace API közvetlen használata

Az alkalmazás Elemzések nyomkövetési API-t közvetlenül is meghívhatja. 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");

Ennek az az előnye TrackTrace , hogy viszonylag hosszú adatokat helyezhet el az üzenetben. Itt például a POST-adatokat kódolhatja.

Súlyossági szintet is hozzáadhat az üzenethez. A többi telemetriához hasonlóan tulajdonságértékeket is hozzáadhat a különböző nyomkövetési csoportok szűréséhez vagy kereséséhez. 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" } });

Mostantól egyszerűen kiszűrheti a Transaction Searchben az adott súlyossági szint összes üzenetét, amely egy adott adatbázishoz kapcsolódik.

AzureLogHandler for OpenCensus Python

Az Azure Monitor naplókezelője lehetővé teszi Python-naplók exportálását az Azure Monitorba.

Az alkalmazást az Azure Monitorhoz készült OpenCensus Python SDK-val alakíthatja ki.

Ez a példa bemutatja, hogyan küldhet figyelmeztetési szintű naplót az Azure Monitornak.

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

A naplók felfedezése

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

Az alkalmazás áttekintő ablaktábláján az Alkalmazás Elemzések portálon válassza a Tranzakciókeresés lehetőséget.

Például:

  • Szűrjön naplónyomokra vagy adott tulajdonságokkal rendelkező elemekre.
  • Egy adott elem részletes vizsgálata.
  • Keressen más rendszernapló-adatokat, amelyek ugyanahhoz a felhasználói kéréshez kapcsolódnak (ugyanazzal a műveletazonosítóval rendelkezik).
  • Mentse a lap konfigurációját kedvencként.

Megjegyzés:

Ha az alkalmazás sok adatot küld, és az Application Elemzések SDK-t használja ASP.NET 2.0.0-béta3-es vagy újabb verzióhoz, az adaptív mintavételezési funkció a telemetria csak egy részét használhatja és küldheti el. További információ a mintavételezésről.

Hibaelhárítás

Válaszok a gyakori kérdésekre.

Mi okozza a késleltetett telemetriát, a túlterhelt hálózatot és a nem hatékony átvitelt?

A System.Diagnostics.Tracing autoflush funkcióval rendelkezik. Ez a funkció azt eredményezi, hogy az SDK minden telemetriai elemnél kipirul, ami nem kívánatos, és olyan naplózási adapterekkel kapcsolatos problémákat okozhat, mint a késleltetett telemetriai adatok, a túlterhelt hálózat és a nem hatékony átvitel.

Hogyan java nyelven?

Java kód nélküli rendszerezésben, amely ajánlott, a naplókat a rendszer a dobozból gyűjti össze. Java 3.0-ügynök használata.

Az alkalmazás Elemzések Java-ügynök naplókat gyűjt a Log4j, a Logback és a java.util.logging mezőből.

Miért nincs alkalmazás Elemzések lehetőség a projekt helyi menüjében?

  • Győződjön meg arról, hogy a Developer Analytics Tools telepítve van a fejlesztői gépen. A Visual Studióban nyissa meg az Eszközök>bővítményeket és Frissítések, és keresse meg a Developer Analytics-eszközöket. Ha nem a Telepített lapon található, nyissa meg az Online lapot, és telepítse.
  • Ez a projekttípus lehet olyan, amelyet a Developer Analytics Tools nem támogat. Manuális telepítés használata.

Miért nincs naplóadapter-beállítás a konfigurációs eszközben?

  • Először telepítse a naplózási keretrendszert.
  • Ha System.Diagnostics.Trace-t használ, győződjön meg arról, hogy a web.config-ban konfigurálta.
  • Győződjön meg arról, hogy az Application Elemzések legújabb verziójával rendelkezik. A Visual Studióban nyissa meg az Eszközök>bővítmények és Frissítések lapot, és nyissa meg a Frissítések lapot. Ha a Developer Analytics Tools elérhető, válassza ki a frissítéséhez.

Miért jelenik meg a "Instrumentation key nem lehet üres" hibaüzenet?

Valószínűleg az Alkalmazás Elemzések telepítése nélkül telepítette a NuGet-csomagot. A Megoldáskezelő kattintson a jobb gombbal az Application Elemzések.config elemre, és válassza az Alkalmazás frissítése Elemzések lehetőséget. A rendszer kérni fogja, hogy jelentkezzen be az Azure-ba, és hozzon létre egy alkalmazás-Elemzések erőforrást, vagy használjon újra egy meglévőt. Meg kell oldania a problémát.

Eltarthat egy ideig, amíg az összes esemény és kérés áthalad a folyamaton.

Mennyi adat van megőrzve?

A megtartott adatok mennyiségét számos tényező befolyásolja. További információt az ügyfélesemény-metrikák oldal Korlátok szakaszában talál.

Miért nem látom a várt naplóbejegyzéseket?

Előfordulhat, hogy az alkalmazás nagy mennyiségű adatot küld, és ön az Application Elemzések SDK-t használja ASP.NET 2.0.0-béta3-es vagy újabb verziójához. Ebben az esetben előfordulhat, hogy az adaptív mintavételezési funkció csak a telemetria egy részét használja és küldi el. További információ a mintavételezésről.

További lépések