Visualizzare i dati di telemetria con Monitoraggio di Azure e strumenti di terze parti
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.
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.
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.
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.
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.