Analizzare log e metriche con le impostazioni di diagnostica
Nota
I piani Basic, Standard ed Enterprise saranno deprecati a partire dalla metà di marzo 2025, con un periodo di ritiro di 3 anni. È consigliabile eseguire la transizione ad App Azure Container. Per altre informazioni, vedere l'annuncio di ritiro di Azure Spring Apps.
Il piano Standard a consumo e dedicato sarà deprecato a partire dal 30 settembre 2024, con un arresto completo dopo sei mesi. È consigliabile eseguire la transizione ad App Azure Container. Per altre informazioni, vedere Eseguire la migrazione del consumo di Azure Spring Apps Standard e del piano dedicato alle app Azure Container.
Questo articolo si applica a: ✔️ Java ✔️ C#
Questo articolo si applica a: ✔️ Basic/Standard ✔️ Enterprise
Questo articolo illustra come analizzare i dati di diagnostica in Azure Spring Apps.
Usando la funzionalità di diagnostica di Azure Spring Apps, è possibile analizzare log e metriche con uno dei servizi seguenti:
- Usare Azure Log Analytics. Si verifica un ritardo durante l'esportazione dei log in Log Analytics.
- Salvare i log in un account di archiviazione per il controllo o l'ispezione manuale. È possibile specificare il tempo di conservazione (in giorni).
- Riprodurre in streaming i log all'hub eventi per l'inserimento tramite un servizio di terze parti o una soluzione di analisi personalizzata.
Scegliere la categoria di log e la categoria di metriche da monitorare.
Suggerimento
Se si desidera solo riprodurre in streaming i log, è possibile usare il comando dell'interfaccia della riga di comando di Azure az spring app logs.
Registri
Log | Descrizione |
---|---|
ApplicationConsole | Log della console di tutte le applicazioni dei clienti. |
SystemLogs | I valori LogType disponibili sono ConfigServer (solo Basic/Standard), ServiceRegistry (tutti i piani), ApiPortal (solo piano Enterprise), ApplicationConfigurationService (solo piano Enterprise), SpringCloudGateway (solo piano Enterprise) e SpringCloudGatewayOperator (solo piano Enterprise) |
IngressLogs | Log di ingresso di tutte le applicazioni del cliente, solo i log di accesso. |
BuildLogs | Log di compilazione di tutte le applicazioni del cliente per ogni fase di compilazione. |
Nota
Per proteggere l'applicazione da potenziali perdite di credenziali, tutti i contenuti del log con credenziali o altre informazioni riservate vengono mascherati con ***
. Ad esempio, qualsiasi contenuto del log con i modelli seguenti viene gestito come informazioni riservate e i valori corrispondenti vengono mascherati:
dbpass
,password
,key
,secret
,sig
esignature
seguito da:
o=
. Questi modelli vengono in genere visualizzati nei parametri URL e nei dump del payload. Ad esempiohttps://somestorage.blob.core.windows.net?sv=2021-08-06&st=2024-04-30T10%3A01%3A19Z&se=2024-04-30T11%3A01%3A19Z&sr=b&sp=r&sig=xxxxxxxxxxxxxx
diventahttps://somestorage.blob.core.windows.net?sv=2021-08-06&st=2024-04-30T10%3A01%3A19Z&se=2024-04-30T11%3A01%3A19Z&sr=b&sp=r&sig=***
- Stringhe codificate simili a token JWT nel formato:
eyJxxxxxx.eyJxxxxxx
Se si trovano valori mascherati nei log, assicurarsi di aggiornare il codice dell'applicazione per eliminare la perdita di credenziali.
Metrica
Per un elenco completo delle metriche, vedere la sezione Opzioni metriche utente di Metriche per Azure Spring Apps.
Per iniziare, abilitare uno di questi servizi per ricevere i dati. Per informazioni sulla configurazione di Log Analytics, vedere Introduzione a Log Analytics in Monitoraggio di Azure.
Configurate le impostazioni di diagnostica
Nel portale di Azure andare all'istanza di Azure Spring Apps.
Selezionare l'opzione Impostazioni di diagnostica e successivamente Aggiungi impostazione di diagnostica.
Immettere un nome per l'impostazione quindi scegliere dove inviare i log. È possibile selezionare qualsiasi combinazione tra le seguenti opzioni:
- Archivia in un account di archiviazione
- Streaming in un hub eventi
- Invia a Log Analytics
- Invia a soluzione partner
Scegliere la categoria di log e la categoria di metriche da monitorare quindi specificare il tempo di conservazione (in giorni). Il tempo di conservazione si applica solo all'account di archiviazione.
Seleziona Salva.
Nota
Potrebbe esserci un intervallo di fino a 15 minuti tra quando vengono generati log o metriche e quando vengono visualizzati nell'account di archiviazione, nell'hub eventi o in Log Analytics. Se l'istanza di Azure Spring Apps viene eliminata o spostata, l'operazione non verrà propagata alle risorse delle impostazioni di diagnostica. Le risorse delle impostazioni di diagnostica devono essere eliminate manualmente prima dell'operazione sul relativo elemento padre, l'istanza di Azure Spring Apps. In caso contrario, se viene effettuato il provisioning di una nuova istanza di Azure Spring Apps con lo stesso ID risorsa di quello eliminato o se l'istanza di Azure Spring Apps viene spostata di nuovo, le risorse delle impostazioni di diagnostica precedenti continuano a estenderla.
Visualizzare i log e le metriche
Esistono diversi metodi per visualizzare i log e le metriche, come descritto nelle intestazioni seguenti.
Usare il riquadro Log
Nel portale di Azure andare all'istanza di Azure Spring Apps.
Per aprire il riquadro Ricerca log, selezionare Log.
Nella casella di ricerca Tabelle usare una delle query seguenti:
Per visualizzare i log, immettere una query come l'esempio seguente:
AppPlatformLogsforSpring | limit 50
Per visualizzare le metriche, immettere una query come l'esempio seguente:
AzureMetrics | limit 50
Per visualizzare il risultato della ricerca, selezionare Esegui.
Usare Log Analytics
Nel riquadro sinistro del portale di Azure selezionare Log Analytics.
Selezionare l'area di lavoro Log Analytics scelta quando sono state aggiunte le impostazioni di diagnostica.
Per aprire il riquadro Ricerca log, selezionare Log.
Nella casella di ricerca Tabelle usare una delle query seguenti:
Per visualizzare i log, immettere una query come l'esempio seguente:
AppPlatformLogsforSpring | limit 50
Per visualizzare le metriche, immettere una query come l'esempio seguente:
AzureMetrics | limit 50
Per visualizzare il risultato della ricerca, selezionare Esegui.
È possibile eseguire ricerche nei log dell'applicazione o dell'istanza specifica impostando una condizione di filtro, come illustrato nell'esempio seguente:
AppPlatformLogsforSpring | where ServiceName == "YourServiceName" and AppName == "YourAppName" and InstanceName == "YourInstanceName" | limit 50
Nota
==
fa distinzione tra maiuscole e minuscole, ma=~
no.
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 Esplora dati di Azure.
Usare l'account di archiviazione
- Nel portale di Azure trovare Account di archiviazione nel pannello di spostamento sinistro o nella casella di ricerca.
- Selezionare l'account di archiviazione scelto quando sono state aggiunte le impostazioni di diagnostica.
- Per aprire il riquadro Contenitore BLOB, selezionare BLOB.
- Per esaminare i log delle applicazioni, cercare un contenitore denominato insights-logs-applicationconsole.
- Per esaminare le metriche dell'applicazione, cercare un contenitore denominato insights-metrics-pt1m.
Per altre informazioni sull'invio di informazioni di diagnostica a un account di archiviazione, vedere Archiviare e visualizzare i dati di diagnostica in Archiviazione di Azure.
Usare l'hub eventi
Nel portale di Azure trovare Hub eventi nel pannello di spostamento sinistro o nella casella di ricerca.
Cercare e selezionare l'hub eventi scelto quando sono state aggiunte le impostazioni di diagnostica.
Per aprire il riquadro Elenco hub eventi, selezionare Hub eventi.
Per esaminare i log delle applicazioni, cercare un hub eventi denominato insights-logs-applicationconsole.
Per esaminare le metriche dell'applicazione, cercare un hub eventi denominato insights-metrics-pt1m.
Per altre informazioni sull'invio di informazioni di diagnostica a un hub eventi, vedere Riproduzione in streaming dei dati di Diagnostica di Azure nel percorso critico usando Hub eventi.
Analizzare i log
Azure Log Analytics è in esecuzione con un motore Kusto in modo da poter eseguire query sui log per l'analisi. Per un'introduzione rapida all'esecuzione di query sui log con Kusto, vedere l'esercitazione su Log Analytics.
I log dell'applicazione forniscono informazioni cruciali e dettagliate sull'integrità, le prestazioni e altro ancora. Nelle sezioni successive sono riportate alcune semplici query che consentono di comprendere gli stati correnti e passati dell'applicazione.
Visualizzare i log dell'applicazione in App Spring di Azure
Per esaminare un elenco di log dell'applicazione in App Spring di Azure, ordinati in base all'ora con quelli più recenti visualizzati per primi, eseguire la query seguente:
AppPlatformLogsforSpring
| project TimeGenerated , ServiceName , AppName , InstanceName , Log
| sort by TimeGenerated desc
Mostra voci di log contenenti errori o eccezioni
Per esaminare le voci di log non ordinate che menzionano un errore o un'eccezione, eseguire la query seguente:
AppPlatformLogsforSpring
| project TimeGenerated , ServiceName , AppName , InstanceName , Log
| where Log contains "error" or Log contains "exception"
Usare questa query per trovare gli errori o modificare i termini della query per trovare codici di errore o eccezioni specifici.
Visualizzare il numero di errori ed eccezioni segnalati dall'applicazione nell'ultima ora
Per creare un grafico a torta che visualizza il numero di errori ed eccezioni registrati dall'applicazione nell'ultima ora, eseguire la query seguente:
AppPlatformLogsforSpring
| where TimeGenerated > ago(1h)
| where Log contains "error" or Log contains "exception"
| summarize count_per_app = count() by AppName
| sort by count_per_app desc
| render piechart
Visualizzare le voci di log in ingresso contenenti un host specifico
Per esaminare le voci di log generate da un host specifico, eseguire la query seguente:
AppPlatformIngressLogs
| where TimeGenerated > ago(1h) and Host == "ingress-asc.test.azuremicroservices.io"
| project TimeGenerated, RemoteIP, Host, Request, Status, BodyBytesSent, RequestTime, ReqId, RequestHeaders
| sort by TimeGenerated
Usare questa query per trovare la risposta Status
, RequestTime
e altre proprietà dei log di ingresso dell'host specifico.
Visualizzare le voci di log in ingresso per un ID richiesta specifico
Per esaminare le voci di log per un valore requestId
<request_ID> specifico, eseguire la query seguente:
AppPlatformIngressLogs
| where TimeGenerated > ago(1h) and ReqId == "<request_ID>"
| project TimeGenerated, RemoteIP, Host, Request, Status, BodyBytesSent, RequestTime, ReqId, RequestHeaders
| sort by TimeGenerated
Visualizzare le voci del log di compilazione per un'app specifica
Per esaminare le voci di log per un'app specifica durante il processo di compilazione, eseguire la query seguente:
AppPlatformBuildLogs
| where TimeGenerated > ago(1h) and PodName contains "<app-name>"
| sort by TimeGenerated
Visualizzare le voci del log di compilazione per un'app specifica in una fase di compilazione specifica
Per esaminare le voci di log per un'app specifica in una fase di compilazione specifica, eseguire la query seguente. Sostituire il segnaposto <app-name>
con il nome dell'applicazione. Sostituire il segnaposto <build-stage>
con uno dei valori seguenti, che rappresentano le fasi del processo di compilazione: prepare
, detect
, restore
, analyze
, build
, export
o completion
.
AppPlatformBuildLogs
| where TimeGenerated > ago(1h) and PodName contains "<app-name>" and ContainerName == "<build-stage>"
| sort by TimeGenerated
Visualizzare i log di VMware Spring Cloud Gateway nel piano Enterprise
Per esaminare le voci di log per i log di VMware Spring Cloud Gateway nel piano Enterprise, eseguire la query seguente:
AppPlatformSystemLogs
| where LogType == "SpringCloudGateway"
| project TimeGenerated , LogType, Level , ServiceName , Thread , Stack , Log , _ResourceId
| limit 100
Un altro componente, denominato Spring Cloud Gateway Operator, controlla il ciclo di vita di Spring Cloud Gateway e le route. Se si verificano problemi con la route che non ha effetto, controllare i log per questo componente. Per esaminare le voci di log per VMware Spring Cloud Gateway Operator nel piano Enterprise, eseguire la query seguente:
AppPlatformSystemLogs
| where LogType == "SpringCloudGatewayOperator"
| project TimeGenerated , LogType, Level , ServiceName , Thread , Stack , Log , _ResourceId
| limit 100
Visualizzare i log del servizio di configurazione dell'applicazione per Tanzu nel piano Enterprise
Per esaminare le voci di log per i log del servizio di configurazione dell'applicazione per Tanzu nel piano Enterprise, eseguire la query seguente:
AppPlatformSystemLogs
| where LogType == "ApplicationConfigurationService"
| project TimeGenerated , LogType, Level , ServiceName , Thread , Stack , Log , _ResourceId
| limit 100
Visualizzare i log del Registro di sistema del servizio Tanzu nel piano Enterprise
Per esaminare le voci di log per i log del Registro di sistema del servizio Tanzu nel piano Enterprise, eseguire la query seguente:
AppPlatformSystemLogs
| where LogType == "ServiceRegistry"
| project TimeGenerated , LogType, Level , ServiceName , Thread , Stack , Log , _ResourceId
| limit 100
Visualizzare i log del portale API per VMware Tanzu nel piano Enterprise
Per esaminare le voci di log per il portale API per i log di VMware Tanzu nel piano Enterprise, eseguire la query seguente:
AppPlatformSystemLogs
| where LogType == "ApiPortal"
| project TimeGenerated , LogType, Level , ServiceName , Thread , Stack , Log , _ResourceId
| limit 100
Altre informazioni sull'esecuzione di query sui log applicazioni
Monitoraggio di Azure offre un supporto completo per l'esecuzione di query sui log applicazioni tramite Log Analytics. Per altre informazioni su questo servizio, vedere Introduzione alle query di log in Monitoraggio di Azure. Per altre informazioni sulla creazione di query per analizzare i log dell'applicazione, vedere Panoramica delle query di log in Monitoraggio di Azure.
Punti di ingresso pratici nel portale di Azure
Seguire questa procedura per andare al riquadro Log Analytics con query predefinite:
Andare alla pagina Panoramica per l'istanza del servizio Azure Spring Apps e selezionare App nel riquadro di spostamento.
Trovare l'app di destinazione quindi selezionare il menu di scelta rapida.
Nel menu di scelta rapida a comparsa selezionare Visualizza log.
Questa azione consente di andare al riquadro Log Analytics con query predefinite.
Esistono altri punti di ingresso per visualizzare i log. È anche possibile trovare il pulsante Visualizza log per i componenti gestiti, ad esempio Compila servizio e Registro di sistema dei servizi.
Domande frequenti
Come si convertono le tracce dello stack Java su più righe in una singola riga?
Esiste una soluzione alternativa per convertire le tracce dello stack su più righe in una singola riga. È possibile modificare l'output del log Java per riformattare i messaggi di analisi dello stack, sostituendo i caratteri di nuova riga con un token. Se si usa la libreria di logback Java, è possibile riformattare i messaggi di analisi dello stack aggiungendo %replace(%ex){'[\r\n]+', '\\n'}%nopex
come segue:
<configuration>
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>
level: %level, message: "%logger{36}: %msg", exceptions: "%replace(%ex){'[\r\n]+', '\\n'}%nopex"%n
</pattern>
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="CONSOLE"/>
</root>
</configuration>
È quindi possibile sostituire il token con caratteri di nuova riga in Log Analytics, come illustrato nell'esempio seguente:
AppPlatformLogsforSpring
| extend Log = array_strcat(split(Log, '\\n'), '\n')
Potrebbe essere possibile usare la stessa strategia per altre librerie di log Java.