Freigeben über


.NET .NET Aspire Telemetrie

Eines der hauptzieligen Ziele von .NET.NET Aspire besteht darin, sicherzustellen, dass Apps einfach debuggen und diagnostizieren können. .NET .NET Aspire Integrationen richten mithilfe des .NETOpenTelemetry SDK-automatisch Protokollierungs-, Ablaufverfolgungs- und Metrikkonfigurationen ein, die manchmal als Säulen der Observierbarkeit bezeichnet werden.

  • Protokollierung: Protokollereignisse beschreiben, was geschieht, während eine App ausgeführt wird. Ein Baseline-Set ist für .NET.NET Aspire-Integrationen standardmäßig aktiviert, und eine umfassendere Protokollierung kann bei Bedarf aktiviert werden, um bestimmte Probleme zu diagnostizieren.

  • Ablaufverfolgungs-: Ablaufverfolgungen korrelieren Protokollereignisse, die Teil derselben logischen Aktivität sind (z. B. die Behandlung einer einzelnen Anforderung), auch wenn sie auf mehrere Computer oder Prozesse verteilt sind.

  • Metriken: Metriken machen die Leistungs- und Gesundheitsmerkmale einer App als einfache numerische Werte sichtbar. Daher haben sie einen geringen Leistungsaufwand, und viele Dienste konfigurieren sie als always-on-Telemetrie. Dies macht sie auch geeignet, Warnungen auszulösen, wenn potenzielle Probleme erkannt werden.

Diese Arten von Telemetrie ermöglichen es Ihnen, Einblicke in das Verhalten und die Leistung Ihrer Anwendung mithilfe verschiedener Überwachungs- und Analysetools zu erhalten. Abhängig vom unterstützenden Dienst unterstützen einige Integrationen möglicherweise nur bestimmte dieser Funktionen.

.NET Aspire OpenTelemetry-Integration

Das .NETOpenTelemetry SDK enthält Funktionen zum Sammeln von Daten aus mehreren .NET APIs, einschließlich ILogger, Activity, Meterund Instrument<T>. Diese APIs entsprechen Telemetriefunktionen wie Protokollierung, Ablaufverfolgung und Metriken. .NET Aspire-Projekt definiert OpenTelemetry-SDK-Konfigurationen im -ServiceDefaults--Projekt. Weitere Informationen finden Sie unter .NET.NET Aspire Dienststandardeinstellungen.

Standardmäßig aktiviert die ConfigureOpenTelemetry-Methode Logging, Tracing und Metriken für die App. Außerdem werden Exporter für diese Datenpunkte hinzugefügt, damit sie von anderen Überwachungstools erfasst werden können.

Exportieren Sie die OpenTelemetry-Daten zur Überwachung

Das .NETOpenTelemetry SDK erleichtert den Export dieser Telemetriedaten in einen Datenspeicher oder ein Berichtswerkzeug. Der Telemetrieexportmechanismus basiert auf dem OpenTelemetry Protokoll (OTLP), das als standardisierter Ansatz zum Übertragen von Telemetriedaten über REST oder gRPC dient. Die ConfigureOpenTelemetry-Methode registriert außerdem Exporter, um Ihre Telemetriedaten anderen Überwachungstools wie Prometheus oder Azure Monitor zur Verfügung zu stellen. Weitere Informationen finden Sie in OpenTelemetry Konfiguration.

OpenTelemetry Umgebungsvariablen

OpenTelemetry verfügt über eine Liste bekannter Umgebungsvariablen, die das wichtigste Verhalten für das Sammeln und Exportieren von Telemetrie konfigurieren. OpenTelemetry SDKs, einschließlich des .NET SDK, unterstützen das Lesen dieser Variablen.

.NET Aspire Projekte starten mit Umgebungsvariablen, die den Namen und die ID der App in exportierter Telemetrie konfigurieren und den Adress-Endpunkt des OTLP-server zum Exportieren von Daten festlegen. Zum Beispiel:

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

Die Umgebungsvariablen werden automatisch in der lokalen Entwicklung festgelegt.

.NET .NET Aspire lokale Entwicklung

Wenn Sie ein .NET Aspire Projekt erstellen, stellt das .NET Aspire-Dashboard standardmäßig eine Benutzeroberfläche zum Anzeigen der App-Telemetrie bereit. Telemetriedaten werden mithilfe von OTLP an das Dashboard gesendet, und das Dashboard implementiert eine OTLP-server, um Telemetriedaten zu empfangen und im Speicher zu speichern. Der .NET.NET Aspire Debug-Arbeitsablauf ist wie folgt:

  • Der Entwickler startet das .NET.NET Aspire Projekt mit dem Debuggen, drückt F5.
  • .NET .NET Aspire Start der Dashboard- und Entwicklersteuerungsebene (DCP).
  • Die App-Konfiguration wird im AppHost- Projekt ausgeführt.
    • OpenTelemetry-Umgebungsvariablen werden automatisch während der App-Konfiguration zu .NET-Projekten hinzugefügt.
    • DCP stellt den Namen (OTEL_SERVICE_NAME) und die ID (OTEL_RESOURCE_ATTRIBUTES) der App in exportierter Telemetrie bereit.
    • Der OTLP-Endpunkt ist ein HTTP/2-Port, der vom Dashboard gestartet wird. Dieser Endpunkt wird in der OTEL_EXPORTER_OTLP_ENDPOINT Umgebungsvariable für jedes Projekt festgelegt. Dadurch werden Projekte aufgefordert, Telemetrie zurück in das Dashboard zu exportieren.
    • Kleine Exportintervalle (OTEL_BSP_SCHEDULE_DELAY, OTEL_BLRP_SCHEDULE_DELAY, OTEL_METRIC_EXPORT_INTERVAL), damit Daten schnell im Dashboard verfügbar sind. Kleine Werte werden in der lokalen Entwicklung verwendet, um die Reaktionsfähigkeit des Dashboards gegenüber der Effizienz zu priorisieren.
  • Der DCP startet konfigurierte Projekte, Container und ausführbare Dateien.
  • Nach dem Start senden Apps Telemetrie an das Dashboard.
  • Das Dashboard zeigt Telemetriedaten nahezu in Echtzeit für alle .NET.NET Aspire Projekte an.

Alle diese Schritte erfolgen intern, daher muss der Entwickler in den meisten Fällen einfach die App ausführen, um diesen Prozess in Aktion zu sehen.

.NET .NET Aspire Bereitstellung

.NET Aspire Bereitstellungsumgebungen sollten OpenTelemetry Umgebungsvariablen konfigurieren, die für ihre Umgebung sinnvoll sind. Beispielsweise sollte OTEL_EXPORTER_OTLP_ENDPOINT für den lokalen OTLP-Sammel- oder Überwachungsdienst der Umgebung konfiguriert werden.

.NET .NET Aspire Telemetrie funktioniert am besten in Umgebungen, die OTLP unterstützen. OTLP-Export ist deaktiviert, wenn OTEL_EXPORTER_OTLP_ENDPOINT nicht konfiguriert ist.

Weitere Informationen finden Sie unter .NET.NET Aspire Bereitstellungen.