Uso del dashboard di .NET Aspire
Dopo aver registrato i dati di telemetria, è necessario avere un modo per esaminarli. Con .NET Aspire, il dashboard offre strumenti avanzati per analizzare i dati di telemetria e diagnosticare i problemi.
Si supponga di lavorare per un rivenditore di attrezzature da esterno. Si usa OpenTelemetry nell'app nativa del cloud .NET Aspire. Ora si vogliono esaminare i dati ottenuti dalla telemetria e valutare se è possibile usarli per migliorare le prestazioni.
In questa unità si vedrà in che modo il dashboard .NET Aspire mostra i dati di telemetria.
Telemetria nel dashboard .NET Aspire
Quando si avvia un'app compilata con .NET Aspire nel computer di sviluppo e i contenitori che eseguono ogni integrazione .NET avvia il dashboard .NET Aspire. Questa interfaccia Web include cinque sezioni, quattro delle quali mostrano i dati di telemetria:
- Risorse: Elenca i contenitori, i progetti e i file eseguibili che costituiscono l'intera app nativa del cloud. Usare i collegamenti nella colonna Endpoint per connettersi a ogni microservizio.
- Console: Mostra il testo inviato all'output standard dall'integrazione specificata.
- Log strutturati: Mostra le informazioni inviate ai logger OpenTelemetry.
- Tracce: Mostra una traccia per ogni richiesta ricevuta da qualsiasi microservizio nell'app.
- Metriche: Mostra grafici configurabili del dominio tempo che illustrano la variazione delle metriche scelte.
Log nel dashboard
Gli eventi registrati descrivono cosa accade all'avvio e all'esecuzione dell'app. È possibile visualizzare due tipi di informazioni registrate nel dashboard: log della console e log strutturati.
Log della console
I log della console mostrano il testo inviato dall'app all'output standard. Un programma da riga di comando visualizza quel testo come righe nella console, ma i microservizi e i servizi di backup non hanno una posizione intrinseca per visualizzare l'output standard. .NET Aspire fornisce la pagina dei log della console nel dashboard.
Quando si apre la pagina, è prima necessario selezionare un'integrazione di origine, ad esempio uno dei microservizi. Lo strumento mostra l'output standard completo di tale origine nella finestra principale con alcune indicazioni di formattazione. Ad esempio, gli eventi informativi vengono visualizzati in verde mentre gli errori vengono visualizzati in rosso.
I log della console sono semplicemente righe di testo. Per le applicazioni sono facili da creare e generare, ma per gli esseri umani sono difficili da leggere e da elaborare a scopo di analisi in quanto privi di struttura.
Log strutturati
Invece di un testo semplice, i log strutturati mantengono i messaggi registrati con i relativi parametri di modello e messaggio. Questa struttura rende più semplice filtrare gli eventi irrilevanti in modo da poter eseguire il drill-down per risolvere un problema specifico. In un ambiente di produzione i log possono essere salvati in modo permanente, indicizzati e quindi sottoposti a query come un database. In questo modo è possibile eseguire analisi avanzate sui dati che contengono.
Nota
I log strutturati sono spesso detti log semantici.
Nel codice, inviare un evento ai log strutturati usando un oggetto OpenTelemetry ILogger
:
logger.Info("{shopitem} added to basket by {user}", "Ski goggles", "Kenny");
Nel dashboard .NET la pagina Log strutturati mostra gli eventi di ogni risorsa dell'app. Per eseguire il drill-down, selezionare la risorsa per cui si sta risolvendo il problema e usare le caselle Filtro e Livello per visualizzare solo gli eventi rilevanti.
Tracce distribuite nel dashboard
Una traccia è un record che descrive il modo in cui una richiesta è stata elaborata e restituita al chiamante. Ogni traccia può includere chiamate a più integrazioni dell'app. Ad esempio, quando un utente richiede la pagina Web del catalogo prodotti, il microservizio dell'interfaccia utente Web potrebbe ricevere la richiesta, che può chiamare il microservizio di autenticazione, il microservizio del catalogo e la cache Redis, prima di restituire una pagina Web all'utente.
Ogni traccia è costituita da intervalli, ad esempio la chiamata al microservizio del catalogo. Il sistema registra ogni intervallo con le informazioni relative alla tempistica e all'elemento padre, in modo che sia possibile vedere quale integrazione risponde rapidamente e quale causa ritardi. Per ogni intervallo sono disponibili altri dettagli.
Analogamente ai log strutturati, è possibile selezionare l'origine e applicare filtri per eseguire il drill-down e individuare le tracce relative al problema specifico da diagnosticare.
Metriche nel dashboard
Le metriche sono valori che variano nel tempo, registrati da un'integrazione dell'app. Ad esempio, le metriche possono registrare la durata di una richiesta e di una risposta o il conteggio delle connessioni attive nel microservizio del catalogo. Alcune metriche sono integrate in .NET, alcune sono incluse con le librerie dell’SDK OpenTelemetry e gli sviluppatori possono aggiungere metriche OpenTelemetry personalizzate, univoche per la relativa integrazione.
Il dashboard .NET Aspire include la sezione Metriche, che è possibile usare per analizzare e visualizzare la variazione delle metriche nel tempo.
Ad esempio, la metrica http.server.active_requests mostra il numero di richieste elaborate in un determinato momento:
La metrica http.server.request.duration mostra la velocità di risposta dell'app in un determinato momento:
In ogni grafico è possibile indicare i filtri in modo che venga indirizzato. Ad esempio, questo grafico mostra la metrica relativa alla durata delle richieste per le richieste alla route della home page: