Telemetrie mit Azure Monitor und Drittanbieter-Tools anzeigen

Abgeschlossen

Ihre App sammelt Telemetriedaten, und Sie benötigen jetzt eine umfassendere Möglichkeit, sie anzuzeigen. In dieser Lektion erfahren Sie, wie Telemetriedaten in vielen verschiedenen Tools angezeigt werden.

Überwachen und Anzeigen von Telemetriedaten

Eine gängige Möglichkeit zum Anzeigen von Telemetriedaten ist die gemeinsame Verwendung von Prometheus und Grafana. Prometheus ist ein Open-Source-Überwachungssystem, das Metriken aus Ihrer cloudeigenen App sammelt. Grafana ist ein Open-Source-Visualisierungstool, mit dem Sie Dashboards erstellen, um die von Prometheus gesammelten Metriken anzuzeigen.

Prometheus

Der erste Schritt besteht darin, einen Prometheus-Container hinzuzufügen und zu konfigurieren, um Daten aus jedem Microservice in Ihrer App zu sammeln. Anschließend fügen Sie die Prometheus .NET-Clientbibliothek hinzu, um Metriken aus der App zu sammeln.

Screenshot der konfigurierten Prometheus-App mit dem Status der eShopLite-App.

OpenTelemetry stellt einen Exporter für Prometheus bereit. Sie können diesen Exporter zu Ihrer App hinzufügen, indem Sie das OpenTelemetry.Exporter.Prometheus.AspNetCore NuGet-Paket einschließen. Dieses Paket exportiert Metriken in Prometheus in einem Format, das sie verstehen kann. Sie ersetzen den aktuellen Konsolenexporteur durch den Prometheus-Exporter.

Sie fügen die Endpunkte für alle Microservices in Ihrer App hinzu. Beispiel:

global:
  scrape_interval: 1s

scrape_configs:
  - job_name: 'products'
    static_configs:
      - targets: ['backend:8080']
  - job_name: 'store'
    static_configs:
      - targets: ['frontend:8080']

Grafana

Grafana ist ein Open-Source-Visualisierungstool, mit dem Sie Dashboards erstellen können, um die von Prometheus gesammelten Metriken anzuzeigen. Sie können Grafana so konfigurieren, dass eine Verbindung mit Prometheus hergestellt wird, und die Metriken in einem Dashboard anzeigen. Wie zuvor fügen Sie Ihrer App einen Grafana-Container hinzu und konfigurieren ihn für die Verbindung mit Prometheus.

Screenshot eines ASP.NET Dashboards in Grafana.

Sie fügen Prometheus als Datenquelle zu Grafana in einer YAML-Datei hinzu:

apiVersion: 1

datasources:
- name: Prometheus
  type: prometheus
  url: http://prometheus:9090 
  isDefault: true
  access: proxy
  editable: true

Aktivieren der verteilten Ablaufverfolgung

OpenTelemetry unterstützt sowohl Jaeger als auch Zipkin. In diesem Modul verwenden Sie Zipkin, bei dem es sich um ein Open-Source-verteiltes Tracing-System handelt. Sie hilft beim Sammeln von Zeitdaten, die für die Behandlung von Latenzproblemen in Microservice-Architekturen erforderlich sind. Sie verwaltet sowohl die Sammlung als auch die Suche dieser Daten.

Screenshot von Zipkin, der die Abhängigkeiten des eShopLite-App-Stores zeigt, der Anfragen an den Dienst Produkte sendet.

In Ihrem Diagnoseprojekt müssen Sie Unterstützung für Zipkin über das OpenTelemetry.Exporter.Zipkin NuGet-Paket hinzufügen. Anschließend fügen Sie der AddObservability Methode Code hinzu, um Daten nach Zipkin zu exportieren.

Tiefer gehen mit Application Insights

Es gibt ein Tool, das das Betrachten von Metriken und das Anzeigen von verteilten Ablaufverfolgungen kombinieren und anschließend mit Daten aus Protokollen zusammenführen kann. Application Insights ist ein erweiterbarer APM-Dienst (Application Performance Management). Sie können sie verwenden, um Ihre Live-Webanwendung zu überwachen. Application Insights erkennt automatisch Leistungsanomalien. Es enthält leistungsstarke Analysetools, die Ihnen helfen, Probleme zu diagnostizieren und zu verstehen, was Benutzer tatsächlich mit Ihrer App machen.

Screenshot, der in Application Insights den Gesundheitsstatus der eShopLite-App zeigt.

Wie bei den vorherigen Tools müssen Sie Ihrer Lösung Azure.Monitor.OpenTelemetry.AspNetCoreein NuGet-Paket hinzufügen und dann Azure Monitor als Exporter in Ihr Diagnoseprojekt einführen.