Visualizzare i dati di telemetria con Monitoraggio di Azure e strumenti di terze parti

Completato

L'app raccoglie i dati di telemetria e ora è necessario un modo più completo per visualizzarli. In questa unità verrà illustrato come visualizzare i dati di telemetria in molti strumenti diversi.

Monitorare e visualizzare i dati di telemetria

Un modo comune per visualizzare i dati di telemetria consiste nell'usare Insieme Prometheus e Grafana. Prometheus è un sistema di monitoraggio open source che raccoglie le metriche dall'app nativa del cloud. Grafana è uno strumento di visualizzazione open source usato per creare dashboard per visualizzare le metriche raccolte da Prometheus.

Prometheus

Il primo passaggio consiste nell'aggiungere un contenitore Prometheus e configurarlo per raccogliere dati da ogni microservizio nell'app. Si aggiunge quindi la libreria client Prometheus .NET per raccogliere le metriche dall'app.

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

OpenTelemetry fornisce un utilità di esportazione per Prometheus. È possibile aggiungere questo utilità di esportazione all'app includendo il OpenTelemetry.Exporter.Prometheus.AspNetCore pacchetto NuGet. Questo pacchetto esporta le metriche in Prometheus in un formato comprensibile. Sostituire l'utilità di esportazione della console corrente con l'utilità di esportazione Prometheus.

Aggiungere gli endpoint per tutti i microservizi nell'app. Ad esempio:

global:
  scrape_interval: 1s

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

Grafana

Grafana è uno strumento di visualizzazione open source che è possibile usare per creare dashboard per visualizzare le metriche raccolte da Prometheus. È possibile configurare Grafana per connettersi a Prometheus e visualizzare le metriche in un dashboard. Come in precedenza, aggiungere un contenitore Grafana all'app e configurarlo per la connessione a Prometheus.

Screenshot that shows an ASP.NET dashboard in Grafana.

Si aggiunge Prometheus come origine dati a Grafana in un file YAML:

apiVersion: 1

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

Abilitare la traccia distribuita

OpenTelemetry supporta sia Jaeger che Zipkin. In questo modulo si usa Zipkin, che è un sistema di traccia distribuita open source. Consente di raccogliere i dati di intervallo necessari per risolvere i problemi di latenza nelle architetture di microservizi. Gestisce sia la raccolta che la ricerca di questi dati.

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

Nel progetto di diagnostica è necessario aggiungere il supporto per Zipkin tramite il OpenTelemetry.Exporter.Zipkin pacchetto NuGet. Si aggiunge quindi il AddObservability codice al metodo per esportare i dati in Zipkin.

Approfondimento con Application Insights

È disponibile uno strumento che può combinare l'analisi delle metriche e la visualizzazione della traccia distribuita e quindi unirla ai dati dei log. Application Insights è un servizio estendibile di gestione delle prestazioni delle applicazioni. È possibile usarlo per monitorare l'applicazione Web live. Application Insights rileva automaticamente le anomalie nelle prestazioni Include strumenti di analisi potenti per diagnosticare i problemi e acquisire informazioni sul modo in cui l'app viene usata effettivamente dagli utenti.

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

Come gli strumenti precedenti, è necessario aggiungere un pacchetto NuGet alla soluzione Azure.Monitor.OpenTelemetry.AspNetCore e quindi introdurre Monitoraggio di Azure come utilità di esportazione al progetto di diagnostica.