Visualizzare i dati di telemetria con Monitoraggio di Azure e strumenti di terze parti
L'app raccoglie i dati di telemetria ed è ora necessario un modo più completo per visualizzarlo. 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.
Prometeo
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 strumento di esportazione alla tua 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. Per 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. Aggiungere quindi il codice al metodo AddObservability 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 APM (Application Performance Management) estendibile. È possibile usarlo per monitorare l'applicazione Web live. Application Insights rileva automaticamente le anomalie delle prestazioni. Include potenti strumenti di analisi che consentono di diagnosticare i problemi e comprendere cosa fanno effettivamente gli utenti con l'app.
Come gli strumenti precedenti, è necessario aggiungere un pacchetto NuGet alla soluzione Azure.Monitor.OpenTelemetry.AspNetCore, e quindi introdurre Azure Monitor come esportatore nel progetto di diagnostica.


