Dela via


Aspire telemetri

Ett av de främsta målen Aspire med är att säkerställa att appar är enkla att felsöka och diagnostisera. Aspire integrationer ställer automatiskt in loggning, spårning och metrik-konfigurationer, som ibland kallas de grundläggande pelarna för observerbarhet, med hjälp av .NETOpenTelemetry SDK.

  • Loggning: Logghändelser beskriver vad som händer när en app körs. En baslinjeuppsättning är aktiverad för Aspire integreringar som standard och mer omfattande loggning kan aktiveras på begäran för att diagnostisera specifika problem.

  • Spårning: Spårningar korrelerar logghändelser som ingår i samma logiska aktivitet (t.ex. hantering av en enskild begäran), även om de är spridda över flera datorer eller processer.

  • Mått: Mått exponerar prestanda- och hälsoegenskaperna för en app som enkla numeriska värden. Därför har de låga prestandakostnader och många tjänster konfigurerar dem som always-on-telemetri. Detta gör dem också lämpliga för att utlösa aviseringar när potentiella problem identifieras.

Tillsammans kan du med dessa typer av telemetri få insikter om programmets beteende och prestanda med hjälp av olika övervaknings- och analysverktyg. Beroende på säkerhetskopieringstjänsten kanske vissa integreringar bara stöder vissa av dessa funktioner.

Aspire OpenTelemetry integrering

.NET OpenTelemetry SDK- innehåller funktioner för att samla in data från flera .NET API:er, inklusive ILogger, Activity, Meteroch Instrument<T>. Dessa API:er motsvarar telemetrifunktioner som loggning, spårning och mått. Aspire projekt definierar OpenTelemetry SDK-konfigurationer i projektet ServiceDefaults. Mer information finns i Aspire standardinställningar för tjänsten.

Som standard möjliggör metoden ConfigureOpenTelemetry loggning, spårning och mått för appen. Den lägger också till exportörer för dessa datapunkter så att de kan samlas in av andra övervakningsverktyg.

Exportera OpenTelemetry data för övervakning

.NET OpenTelemetry SDK underlättar exporten av dessa telemetridata till ett datalager eller rapporteringsverktyg. Telemetriexportmekanismen förlitar sig på OpenTelemetry-protokollet (OTLP), som fungerar som en standardiserad metod för att överföra telemetridata via REST eller gRPC. Metoden ConfigureOpenTelemetry registrerar också exportörer för att tillhandahålla telemetridata till andra övervakningsverktyg, till exempel Prometheus eller Azure Monitor. Mer information finns i OpenTelemetry konfiguration.

OpenTelemetry miljövariabler

OpenTelemetry har en lista över kända miljövariabler som konfigurerar det viktigaste beteendet för att samla in och exportera telemetri. OpenTelemetry SDK:er, inklusive .NET SDK, stöder läsning av dessa variabler.

Aspire projekt startas med miljövariabler som konfigurerar namnet och ID:t för appen i exporterad telemetri och anger att OTLP-serverns adressslutpunkt ska exportera data. Till exempel:

  • OTEL_SERVICE_NAME = myfrontend
  • OTEL_RESOURCE_ATTRIBUTES = service.instance.id=1a5f9c1e-e5ba-451b-95ee-ced1ee89c168
  • OTEL_EXPORTER_OTLP_ENDPOINT = http://localhost:4318

Miljövariablerna anges automatiskt i lokal utveckling.

Aspire lokal utveckling

När du skapar ett Aspire projekt Aspire tillhandahåller instrumentpanelen ett användargränssnitt för att visa apptelemetri som standard. Telemetridata skickas till instrumentpanelen med OTLP och instrumentpanelen implementerar en OTLP-server för att ta emot telemetridata och lagra dem i minnet. Arbetsflödet Aspire för felsökning är följande:

  • Utvecklaren Aspire startar projektet med felsökning, trycker på F5.
  • Aspire instrumentpanelen och utvecklarens kontrollplan (DCP).
  • Appkonfigurationen körs i projektet AppHost.
    • OpenTelemetry miljövariabler läggs automatiskt till i .NET projekt under appkonfigurationen.
    • DCP tillhandahåller namnet (OTEL_SERVICE_NAME) och ID (OTEL_RESOURCE_ATTRIBUTES) för appen i exporterad telemetri.
    • OTLP-slutpunkten är en HTTP/2-port som startas av instrumentpanelen. Den här slutpunkten anges i miljövariabeln OTEL_EXPORTER_OTLP_ENDPOINT för varje projekt. Det instruerar projekten att exportera telemetri till instrumentpanelen.
    • Små exportintervall (OTEL_BSP_SCHEDULE_DELAY, OTEL_BLRP_SCHEDULE_DELAY, OTEL_METRIC_EXPORT_INTERVAL) så att data snabbt blir tillgängliga på instrumentpanelen. Små värden används i lokal utveckling för att prioritera instrumentpanelens svarstider framför effektiviteten.
  • DCP startar konfigurerade projekt, containrar och körbara filer.
  • När de har startats skickar appar telemetri till instrumentpanelen.
  • Instrumentpanelen visar telemetri i nära realtid för alla Aspire projekt.

Alla dessa steg sker internt, så i de flesta fall behöver utvecklaren helt enkelt köra appen för att se den här processen i praktiken.

Aspire distribution

Aspire distributionsmiljöer bör konfigurera OpenTelemetry miljövariabler som passar deras miljö. Till exempel bör OTEL_EXPORTER_OTLP_ENDPOINT konfigureras för miljöns lokala OTLP-insamlare eller övervakningstjänst.

Aspire telemetri fungerar bäst i miljöer som stöder OTLP. OTLP-export är inaktiverat om OTEL_EXPORTER_OTLP_ENDPOINT inte har konfigurerats.

Mer information finns i Aspire distributioner.