Anzeige der Telemetrie mit Azure Monitor und Tools von Drittanbietern
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.
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.
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.
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.
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.