Använda .NET Aspire-instrumentpanelen
När du har spelat in telemetridata behöver du ett sätt att undersöka dem. Med .NET Aspire tillhandahåller instrumentpanelen omfattande verktyg för att undersöka telemetri och diagnostisera problem.
Anta att du arbetar för en återförsäljare av utomhusutrustning. Du använder OpenTelemetry i din molnbaserade .NET Aspire-app. Nu vill du undersöka de data som telemetri genererar för att avgöra om du kan använda dem för att förbättra prestandan.
I den här lektionen ser du hur .NET Aspire-instrumentpanelen visar telemetridata.
Telemetri på .NET Aspire-instrumentpanelen
När du startar en app som skapats med .NET Aspire på utvecklingsdatorn och de containrar som kör varje integrering startar .NET instrumentpanelen .NET Aspire. Det här webbgränssnittet har fem avsnitt, varav fyra visar telemetri:
- Resurser: Visar en lista över containrar, projekt och körbara filer som utgör hela din molnbaserade app. Använd länkarna i kolumnen Slutpunkter för att ansluta till varje mikrotjänst.
- Konsol: Visar texten som skickas till standardutdata från den integrering som du anger.
- Strukturerade loggar: Visar information som skickas till OpenTelemetry-loggare.
- Spårningar: Visar en spårning för varje begäran som tas emot av någon mikrotjänst i appen.
- Mått: Visar konfigurerbara tidsdomändiagram som visar hur de mått du väljer varierar.
Loggar på instrumentpanelen
Loggade händelser beskriver vad som händer när appen startar och körs. Du kan se två typer av loggad information på instrumentpanelen: konsolloggar och strukturerade loggar.
Konsolloggar
Konsolloggar visar text som appen har skickat till standardutdata. Ett kommandoradsprogram skulle visa text som rader i konsolen, men mikrotjänster och säkerhetskopieringstjänster har ingen inbyggd plats för att visa standardutdata. .NET Aspire hjälper till genom att tillhandahålla sidan Konsolloggar på instrumentpanelen.
När du öppnar sidan måste du först välja en källintegrering, till exempel en av dina mikrotjänster. Verktyget visar alla standardutdata från den källan i huvudfönstret med viss formatering. Informationshändelserna visas till exempel i grönt medan fel visas i rött.
Konsolloggar är helt enkelt textrader. De är enkla för program att skapa och släppa ut, men de är svåra att läsa för människor och svåra att bearbeta i analyssyfte eftersom de saknar struktur.
Strukturerade loggar
I stället för platt text bevarar strukturerade loggar loggade meddelanden med sina mall- och meddelandeparametrar. Den här strukturen gör det enklare att filtrera bort händelser som är irrelevanta så att du kan öka detaljnivån för att felsöka ett specifikt problem. I en produktionsmiljö kan loggarna sparas, indexeras och sedan efterfrågas som en databas. På så sätt kan du utföra omfattande analys av de data som de innehåller.
Kommentar
Strukturerade loggar kallas också ofta semantiska loggar.
I koden skickar du en händelse till de strukturerade loggarna med hjälp av ett OpenTelemetry-objekt ILogger
:
logger.Info("{shopitem} added to basket by {user}", "Ski goggles", "Kenny");
På .NET-instrumentpanelen visar sidan Strukturerade loggar händelser från varje resurs i din app. Om du vill öka detaljnivån väljer du den resurs som du felsöker och använder rutorna Filter och Nivå för att endast visa relevanta händelser.
Distribuerade spårningar på instrumentpanelen
En spårning är en post som beskriver hur en begäran bearbetades och returnerades till anroparen. Varje spårning kan omfatta anrop till flera integreringar i din app. När en användare till exempel begär produktkatalogens webbsida kan webbgränssnittets mikrotjänst ta emot begäran, som kan anropa mikrotjänsten för autentisering, katalogmikrotjänsten och Redis-cachen, innan en webbsida returneras till användaren.
Varje spårning består av intervall, till exempel anropet till katalogens mikrotjänst. Systemet registrerar varje intervall med sin tidsinställning och överordnade information, så att du kan se vilken integrering som svarar snabbt och som orsakar fördröjningar. Mer information finns för varje spann.
Precis som med strukturerade loggar kan du välja källa och använda filter för att öka detaljnivån och hitta spårningar för det specifika problem som du är intresserad av att diagnostisera.
Mått på instrumentpanelen
Mått är värden som varierar över tid och registreras av en integrering av din app. Mått kan till exempel registrera varaktigheten för en begäran och ett svar eller antalet aktiva anslutningar till katalogmikrotjänsten. Vissa mått är inbyggda i .NET, vissa levereras med OpenTelemetry SDK-bibliotek och utvecklare kan lägga till anpassade OpenTelemetry-mått som är unika för deras integrering.
Instrumentpanelen för .NET Aspire innehåller avsnittet Mått , som du kan använda för att undersöka och visa hur måtten varierar över tid.
Måttet http.server.active_requests visar till exempel antalet begäranden som bearbetas vid ett visst tillfälle:
Måttet http.server.request.duration visar hur dynamisk appen är när som helst:
Under varje diagram kan du ange filter som ska riktas mot grafen. Det här diagrammet visar till exempel måttet för begärandevaraktighet för begäranden till startsidans väg: