Condividi tramite


Guida introduttiva: Monitoraggio delle app Azure Spring con log, metriche e traccia

Nota

Azure Spring Apps è il nuovo nome del servizio Azure Spring Cloud. Anche se il servizio ha un nuovo nome, il nome precedente verrà visualizzato in alcune posizioni per un po' mentre si lavora per aggiornare gli asset, ad esempio screenshot, video e diagrammi.

Questo articolo si applica a: ✔️ Basic/Standard ❌ Enterprise

Con la funzionalità di monitoraggio predefinita in Azure Spring Apps, è possibile eseguire il debug e il monitoraggio di problemi complessi. Azure Spring Apps integra la traccia distribuita Steeltoe con Application Insights di Azure. Questa integrazione fornisce log, metriche e funzionalità di traccia distribuita avanzate dal portale di Azure.

Le procedure seguenti illustrano come usare lo streaming di log, l'analisi dei log, le metriche e la traccia distribuita con l'app di esempio distribuita negli argomenti di avvio rapido precedenti.

Prerequisiti

Registri

Esistono due modi per visualizzare i log in Azure Spring Apps: streaming dei log in tempo reale per ogni istanza dell'app o Log Analytics per i log aggregati con funzionalità di query avanzate.

Streaming dei log

È possibile usare lo streaming di log nell'interfaccia della riga di comando di Azure con il comando seguente.

az spring app logs --name solar-system-weather --follow

L'output è simile all'esempio seguente:

=> ConnectionId:0HM2HOMHT82UK => RequestPath:/weatherforecast RequestId:0HM2HOMHT82UK:00000003, SpanId:|e8c1682e-46518cc0202c5fd9., TraceId:e8c1682e-46518cc0202c5fd9, ParentId: => Microsoft.Azure.SpringCloud.Sample.SolarSystemWeather.Controllers.WeatherForecastController.Get (Microsoft.Azure.SpringCloud.Sample.SolarSystemWeather)
Executing action method Microsoft.Azure.SpringCloud.Sample.SolarSystemWeather.Controllers.WeatherForecastController.Get (Microsoft.Azure.SpringCloud.Sample.SolarSystemWeather) - Validation state: Valid
←[40m←[32minfo←[39m←[22m←[49m: Microsoft.Azure.SpringCloud.Sample.SolarSystemWeather.Controllers.WeatherForecastController[0]

=> ConnectionId:0HM2HOMHT82UK => RequestPath:/weatherforecast RequestId:0HM2HOMHT82UK:00000003, SpanId:|e8c1682e-46518cc0202c5fd9., TraceId:e8c1682e-46518cc0202c5fd9, ParentId: => Microsoft.Azure.SpringCloud.Sample.SolarSystemWeather.Controllers.WeatherForecastController.Get (Microsoft.Azure.SpringCloud.Sample.SolarSystemWeather)
Retrieved weather data from 4 planets
←[40m←[32minfo←[39m←[22m←[49m: Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker[2]

=> ConnectionId:0HM2HOMHT82UK => RequestPath:/weatherforecast RequestId:0HM2HOMHT82UK:00000003, SpanId:|e8c1682e-46518cc0202c5fd9., TraceId:e8c1682e-46518cc0202c5fd9, ParentId: => Microsoft.Azure.SpringCloud.Sample.SolarSystemWeather.Controllers.WeatherForecastController.Get (Microsoft.Azure.SpringCloud.Sample.SolarSystemWeather)
Executing ObjectResult, writing value of type 'System.Collections.Generic.KeyValuePair`2[[System.String, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.String, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]][]'.
←[40m←[32minfo←[39m←[22m←[49m: Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker[2]

Suggerimento

Usare az spring app logs -h per esplorare altri parametri e funzionalità di streaming dei log.

Log Analytics

  1. Nel portale di Azure passare alla pagina servizio | Panoramica e selezionare Log nella sezione Monitoraggio. Selezionare Esegui in una delle query di esempio per Azure Spring Apps.

    Screenshot del portale di Azure che mostra il riquadro Log con la pagina Query aperta ed Esegui evidenziata.

  2. Modificare la query per rimuovere le clausole Where che limitano la visualizzazione ai log degli errori e degli avvisi.

  3. Selezionare Esegui. Vengono visualizzati i log. Per altre informazioni, vedere Introduzione alle query dei log del Monitoraggio di Azure.

    Screenshot del portale di Azure che mostra il risultato della query di Log Analytics.

  4. Per altre informazioni sul linguaggio di query usato in Log Analytics, vedere Query di log di Monitoraggio di Azure. Per eseguire query su tutti i log di Log Analytics da un client centralizzato, vedere Azure Esplora dati.

Metrica

  1. Nel portale di Azure passare alla pagina servizio | Panoramica e selezionare Metriche nella sezione Monitoraggio. Aggiungere la prima metrica selezionando una delle metriche .NET in Prestazioni (.NET) o Richiesta (.NET) nell'elenco a discesa Metrica e Media per aggregazione per visualizzare la sequenza temporale per tale metrica.

    Screenshot del portale di Azure che mostra la pagina Metriche con i filtri disponibili.

  2. Selezionare Aggiungi filtro nella barra degli strumenti, selezionare per visualizzare App=solar-system-weather l'utilizzo della CPU solo per l'app solar-system-weather .

    Screenshot del portale di Azure che mostra la pagina Metriche con le opzioni Proprietà, Operatore e Valori del filtro evidenziate.

  3. Ignorare il filtro creato nel passaggio precedente, selezionare Applica suddivisione e selezionare App for Values (App per valori) per visualizzare l'utilizzo della CPU da parte di app diverse.

    Screenshot del portale di Azure che mostra la pagina Metriche con le opzioni di divisione Valori, Limite e Ordinamento evidenziate.

Traccia distribuita

  1. Nel portale di Azure passare alla pagina servizio | Panoramica e selezionare Distributed tracing (Traccia distribuita) nella sezione Monitoraggio. Selezionare quindi la scheda Visualizza mappa delle applicazioni a destra.

    Screenshot del portale di Azure che mostra la pagina di traccia distribuita.

  2. A questo punto è possibile visualizzare lo stato delle chiamate tra le app.

    Screenshot della portale di Azure che mostra la pagina Mappa applicazioni.

  3. Selezionare il collegamento tra solar-system-weather e planet-weather-provider per visualizzare altri dettagli, ad esempio le chiamate più lente da parte dei metodi HTTP.

    Screenshot del portale di Azure che mostra i dettagli della mappa dell'applicazione.

  4. Selezionare infine Esamina prestazioni per accedere a un'analisi delle prestazioni integrata più avanzata.

    Screenshot del portale di Azure che mostra la pagina Prestazioni.

Con la funzionalità di monitoraggio predefinita in Azure Spring Apps, è possibile eseguire il debug e il monitoraggio di problemi complessi. Azure Spring Apps integra Spring Cloud Sleuth con Application Insights di Azure. Questa integrazione fornisce log, metriche e funzionalità di traccia distribuita avanzate dal portale di Azure. Le procedure seguenti illustrano come usare Log Streaming, Log Analytics, Metriche e Traccia distribuita con le app PetClinic distribuite.

Prerequisiti

Registri

Esistono due modi per visualizzare i log in Azure Spring Apps: streaming dei log in tempo reale per ogni istanza dell'app o Log Analytics per i log aggregati con funzionalità di query avanzate.

Streaming dei log

È possibile usare lo streaming di log nell'interfaccia della riga di comando di Azure con il comando seguente.

az spring app logs \
    --resource-group <resource-group-name> \
    --service <service-instance-name> \
    --name api-gateway \
    --follow

I log vengono visualizzati come segue:

Screenshot dell'output del flusso di log dell'interfaccia della riga di comando di Azure.

Suggerimento

Usare az spring app logs -h per esplorare altri parametri e funzionalità di streaming dei log.

Per altre informazioni sul linguaggio di query usato in Log Analytics, vedere Query di log di Monitoraggio di Azure. Per eseguire query su tutti i log di Log Analytics da un client centralizzato, vedere Azure Esplora dati.

Log Analytics

  1. Passare alla pagina service | Overview (servizio | Panoramica) e selezionare Logs (Log) nella sezione Monitoring (Monitoraggio). Selezionare Esegui in una delle query di esempio per Azure Spring Apps.

    Screenshot della portale di Azure che mostra la pagina Query con Esegui evidenziata.

  2. Vengono quindi visualizzati i log filtrati. Per altre informazioni, vedere Introduzione alle query dei log del Monitoraggio di Azure.

    Screenshot del portale di Azure che mostra il risultato della query dei log filtrati.

Metrica

Passare alla pagina Application Insights e quindi passare alla pagina Metriche . È possibile visualizzare le metriche fornite dalle app Spring Boot, dai moduli Spring e dalle dipendenze.

Il grafico seguente mostra gateway_requests (Spring Cloud Gateway), hikaricp_connections (JDBC Connessione ions) e http_client_requests.

Screenshot del portale di Azure che mostra la pagina Metriche di Application Insights con un grafico dei valori selezionati.

Spring Boot registra diverse metriche principali, tra cui JVM, CPU, Tomcat e Logback. La configurazione automatica di Spring Boot consente la strumentazione delle richieste gestite da Spring MVC. Tutti e tre i controller REST (OwnerResource, PetResourcee VisitResource) vengono instrumentati dall'annotazione @Timed Micrometer a livello di classe.

L'applicazione customers-service dispone delle metriche personalizzate seguenti abilitate:

  • @Timed: petclinic.owner
  • @Timed: petclinic.pet

L'applicazione visits-service dispone delle metriche personalizzate seguenti abilitate:

  • @Timed: petclinic.visit

È possibile visualizzare queste metriche personalizzate nella pagina Metriche :

Screenshot della portale di Azure che mostra la pagina Metriche di Application Insights con metriche personalizzate.

È possibile usare la funzionalità Test di disponibilità in Application Insights e monitorare la disponibilità delle applicazioni:

Screenshot del portale di Azure che mostra la pagina Disponibilità di Application Insights con la sezione Test di disponibilità evidenziata.

Passare alla pagina Metriche attive per visualizzare le metriche in tempo reale con latenze basse (meno di un secondo):

Screenshot della portale di Azure che mostra i grafici delle latenze basse della pagina delle metriche  live di Application Insights.

Traccia

Aprire Application Insights creato da Azure Spring Apps e avviare il monitoraggio delle applicazioni Spring.

Passare alla pagina Mappa applicazioni:

Screenshot del portale di Azure che mostra la pagina Mappa delle applicazioni di Application Insights con i componenti della mappa.

Passare alla pagina Prestazioni :

Screenshot del portale di Azure che mostra la pagina Prestazioni di Application Insights con i dettagli dell'operazione.

Passare alla scheda Dipendenze , in cui è possibile visualizzare il numero di prestazioni per le dipendenze, in particolare le chiamate SQL:

Screenshot della portale di Azure che mostra la pagina Prestazioni di Application Insights con la tabella Depencies evidenziata.

Selezionare una chiamata SQL per visualizzare la transazione end-to-end nel contesto:

Screenshot della portale di Azure che mostra la pagina dei dettagli delle transazioni end-to-end.

Passare alla pagina Errori e alla scheda Eccezioni , in cui è possibile visualizzare una raccolta di eccezioni:

Screenshot del portale di Azure che mostra la pagina Errori di Application Insights.

Selezionare un'eccezione per visualizzare la transazione end-to-end e stacktrace nel contesto:

Screenshot del portale di Azure che mostra la pagina dei dettagli della transazione end-to-end con i dettagli dell'eccezione e lo stack di chiamate.

Pulire le risorse

Se si prevede di usare le guide di avvio rapido e le esercitazioni successive, è consigliabile non cancellare le risorse create. Quando non è più necessario, eliminare il gruppo di risorse per eliminare tutte le risorse contenute al suo interno. Per eliminare il gruppo di risorse usando l'interfaccia della riga di comando di Azure, usare i comandi seguenti:

echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."

In un argomento di avvio rapido precedente è stato anche impostato il nome del gruppo di risorse predefinito. Se non si prevede di continuare con l'argomento di avvio rapido successivo, cancellare tale impostazione predefinita eseguendo il comando dell'interfaccia della riga di comando seguente:

az config set defaults.group=

Passaggi successivi

Per esplorare altre funzionalità di monitoraggio di Azure Spring Apps, vedere: