Anzeige der Telemetrie mit Azure Monitor und Tools von Drittanbietern

Abgeschlossen

Ihre App sammelt Telemetriedaten und Sie benötigen nun eine umfassendere Möglichkeit, diese anzuzeigen. In dieser Lerneinheit erfahren Sie, wie Sie Telemetriedaten in vielen verschiedenen Tools anzeigen können.

Überwachen und Anzeigen von Telemetriedaten

Eine gängige Methode zur Anzeige von Telemetriedaten ist die gemeinsame Verwendung von Prometheus und Grafana. Prometheus ist ein Open-Source-Überwachungssystem, das Metriken von Ihrer cloudnativen Anwendung sammelt. Grafana ist ein Open-Source-Visualisierungstool, mit dem Sie Dashboards erstellen können, um die von Prometheus erfassten Metriken anzuzeigen.

Prometheus

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

Screenshot that shows the configured Prometheus app showing the health of the eShopLite app.

OpenTelemetry bietet einen Exporter für Prometheus. Dieser Exporter kann zu Ihrer Anwendung hinzugefügt werden, indem Sie das NuGet-Paket OpenTelemetry.Exporter.Prometheus.AspNetCore einbinden. Dieses Paket exportiert Metriken in einem Format, das Prometheus versteht. Sie ersetzen den aktuellen Konsolenexporter 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 erfassten Metriken anzuzeigen. Sie können Grafana so konfigurieren, dass es sich mit Prometheus verbindet und die Metriken in einem Dashboard anzeigt. Wie zuvor fügen Sie einen Grafana-Container zu Ihrer App hinzu und konfigurieren ihn für die Verbindung mit Prometheus.

Screenshot that shows an ASP.NET dashboard 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 bietet Unterstützung sowohl für Jaeger als auch für Zipkin. In diesem Modul verwenden Sie Zipkin, ein verteiltes Open-Source-System zur verteilten Ablaufverfolgung. Es hilft bei der Erfassung von Zeitdaten, die für die Problembehandlung von Latenzproblemen in Microservice-Architekturen benötigt werden. Es verwaltet sowohl die Erfassung als auch die Suche nach diesen Daten.

Screenshot that shows Zipkin showing the dependencies of the eShopLite app Store sending requests to the Products service.

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

Tiefere Einblicke mit Application Insights

Es gibt ein Tool, das die Betrachtung von Metriken und die Anzeige von verteilten Verfolgungsprotokollen kombiniert und dann mit Daten aus Protokollen zusammenführt. Application Insights ist ein erweiterbarer Dienst zur Verwaltung der Anwendungsleistung (Application Performance Management, APM). Sie können es zur Überwachung Ihrer Live-Webanwendungen verwenden. Application Insights erkennt automatisch Leistungsanomalien. Er verfügt über leistungsstarke Analysetools, mit denen Sie Probleme diagnostizieren sowie nachvollziehen können, wie Ihre App von den Benutzern tatsächlich verwendet wird.

Screenshot that shows Application Insights showing the health of the eShopLite app.

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