Analizzare log e metriche con le impostazioni di diagnostica

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: ✔️ 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).
  • Trasmettere 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 vuole solo trasmettere 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 disponibili LogType sono ConfigServer(solo Basic/Standard), ServiceRegistry(tutti i piani), (solo piano Enterprise), ApiPortal(solo piano Enterprise), ApplicationConfigurationService(solo piano Enterprise) SpringCloudGateway e SpringCloudGatewayOperator (solo piano Enterprise)
IngressLogs Log di ingresso di tutte le applicazioni del cliente, solo i log di accesso.
BuildLogs Compilare i log di tutte le applicazioni del cliente per ogni fase di compilazione.

Metrica

Per un elenco completo delle metriche, vedere la sezione Opzioni delle metriche utente di Metriche per App Spring di Azure.

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.

Configurare le impostazioni di diagnostica

  1. Nella portale di Azure passare all'istanza di Azure Spring Apps.

  2. Selezionare l'opzione Impostazioni di diagnostica e quindi selezionare Aggiungi impostazione di diagnostica.

  3. Immettere un nome per l'impostazione e quindi scegliere dove inviare i log. È possibile selezionare qualsiasi combinazione delle tre opzioni seguenti:

    • Archivia in un account di archiviazione
    • Streaming in un hub eventi
    • Invia a Log Analytics
    • Inviare alla soluzione partner
  4. Scegliere la categoria di log e la categoria di metriche da monitorare e quindi specificare il tempo di conservazione (in giorni). Il tempo di conservazione si applica solo all'account di archiviazione.

  5. 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 pannello Log

  1. Nella portale di Azure passare all'istanza di Azure Spring Apps.

  2. Per aprire il riquadro Ricerca log, selezionare Log.

  3. Nella casella di ricerca Tabelle

    • Per visualizzare i log, immettere una query semplice, ad esempio:
    AppPlatformLogsforSpring
    | limit 50
    
    • Per visualizzare le metriche, immettere una query semplice, ad esempio:
    AzureMetrics
    | limit 50
    
  4. Per visualizzare il risultato della ricerca, selezionare Esegui.

Usare Log Analytics

  1. Nel riquadro sinistro della portale di Azure selezionare Log Analytics.

  2. Selezionare l'area di lavoro Log Analytics scelta quando sono state aggiunte le impostazioni di diagnostica.

  3. Per aprire il riquadro Ricerca log, selezionare Log.

  4. Nella casella di ricerca Tabelle ,

    • per visualizzare i log, immettere una query semplice, ad esempio:
    AppPlatformLogsforSpring
    | limit 50
    
    • per visualizzare le metriche, immettere una query semplice, ad esempio:
    AzureMetrics
    | limit 50
    
  5. Per visualizzare il risultato della ricerca, selezionare Esegui.

  6. È possibile eseguire ricerche nei log dell'applicazione o dell'istanza specifica impostando una condizione di filtro:

    AppPlatformLogsforSpring
    | where ServiceName == "YourServiceName" and AppName == "YourAppName" and InstanceName == "YourInstanceName"
    | limit 50
    

    Nota

    == fa distinzione tra maiuscole e minuscole, ma =~ non lo è.

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.

Usare l'account di archiviazione

  1. Nella portale di Azure trovare gli account Archiviazione nel pannello di spostamento a sinistra o nella casella di ricerca.
  2. Selezionare l'account di archiviazione scelto quando sono state aggiunte le impostazioni di diagnostica.
  3. Per aprire il riquadro Contenitore BLOB, selezionare BLOB.
  4. Per esaminare i log delle applicazioni, cercare un contenitore denominato insights-logs-applicationconsole.
  5. 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

  1. Nella portale di Azure trovare Hub eventi nel pannello di spostamento sinistro o nella casella di ricerca.

  2. Cercare e selezionare l'hub eventi scelto quando sono state aggiunte le impostazioni di diagnostica.

  3. Per aprire il riquadro Elenco hub eventi, selezionare Hub eventi.

  4. Per esaminare i log delle applicazioni, cercare un hub eventi denominato insights-logs-applicationconsole.

  5. 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 Streaming di dati Diagnostica di Azure nel percorso critico tramite 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, RequestTimee 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 <specifico requestId request_ID>, 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 con il <app-name> nome dell'applicazione. Sostituire il <build-stage> segnaposto con uno dei valori seguenti, che rappresentano le fasi del processo di compilazione: prepare, detect, analyzerestore, 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.

Domande frequenti

Ricerca per categorie convertire 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 indicato di seguito:

AppPlatformLogsforSpring
| extend Log = array_strcat(split(Log, '\\n'), '\n')

È possibile usare la stessa strategia per altre librerie di log Java.

Passaggi successivi