Monitorare i log in App Azure Container con Log Analytics
App Azure Container è integrato con Log Analytics di Monitoraggio di Azure per monitorare e analizzare i log dell'app contenitore. Se questa opzione è selezionata come soluzione di monitoraggio dei log, l'ambiente App contenitore include un'area di lavoro Log Analytics che offre una posizione comune per archiviare i dati del sistema e del log applicazioni da tutte le app contenitore in esecuzione nell'ambiente.
Le voci di log sono accessibili eseguendo query sulle tabelle di Log Analytics tramite il portale di Azure o una shell dei comandi tramite l'interfaccia della riga di comando di Azure.
Esistono due tipi di log per App contenitore.
- Log della console, generati dall'app.
- Log di sistema, generati dal servizio App contenitore.
Log di sistema
Il servizio App contenitore fornisce messaggi di log di sistema a livello di app contenitore. I log di sistema generano i messaggi seguenti:
Origine | Tipo | Message |
---|---|---|
Dapr | Info | Creazione del nome> componente dapr <con ambito <dapr-component-scope> |
Dapr | Info | Aggiornamento corretto del nome> componente dapr <con il tipo di componente ambito <> |
Dapr | Errore | Errore durante la creazione del nome del componente <dapr> |
Montaggi di volumi | Info | Volume-name> montato <correttamente per revision-scope revisione <> |
Montaggi di volumi | Errore | Errore durante il montaggio del volume-name <> |
Associazione di dominio | Info | Dominio <> associato correttamente al nome dell'app contenitore dell'app <contenitore> |
Authentication | Info | Autenticazione abilitata nell'app. Creazione della configurazione di autenticazione |
Authentication | Info | Configurazione dell'autenticazione creata correttamente |
Peso del traffico | Info | Impostazione del peso del traffico percentuale <>per revision-name<\> |
Provisioning delle revisioni | Info | Creazione di una nuova revisione: <revision-name> |
Provisioning delle revisioni | Info | Nome revisione <con provisioning completato> |
Provisioning delle revisioni | Info | Disattivazione delle revisioni precedenti da 'ActiveRevisionsMode=Single' |
Provisioning delle revisioni | Errore | Errore durante il provisioning del nome> revisione revisione<. ErrorCode: <[ErrImagePull]|[ Timeout]|[ContainerCrashing]> |
I dati del log di sistema sono accessibili eseguendo query sulla ContainerAppSystemLogs_CL
tabella. Le colonne specifiche di App contenitore più usate nella tabella sono:
Colonna | Descrizione |
---|---|
ContainerAppName_s |
Nome dell'app contenitore |
EnvironmentName_s |
Nome dell'ambiente app contenitore |
Log_s |
Registra messaggio |
RevisionName_s |
Nome revisione |
Log della console
I log della stderr
console provengono dai messaggi e stdout
dai contenitori nell'app contenitore e dai sidecar Dapr. È possibile visualizzare i log della console eseguendo query sulla ContainerAppConsoleLogs_CL
tabella.
Suggerimento
Instrumentare il codice con messaggi di log ben definiti consente di comprendere le prestazioni del codice e di eseguire il debug dei problemi. Per altre informazioni sulle procedure consigliate, vedere Progettazione per le operazioni.
Le colonne specifiche di App contenitore più comunemente usate in ContainerAppConsoleLogs_CL includono:
Colonna | Descrizione |
---|---|
ContainerAppName_s |
Nome dell'app contenitore |
ContainerGroupName_g |
Nome replica |
ContainerId_s |
Identificatore del contenitore |
ContainerImage_s |
Nome dell'immagine del contenitore |
EnvironmentName_s |
Nome dell'ambiente app contenitore |
Log_s |
Registra messaggio |
RevisionName_s |
Nome revisione |
Log query con Analisi dei Log
Log Analytics è uno strumento nella portale di Azure che è possibile usare per visualizzare e analizzare i dati di log. Con Log Analytics è possibile scrivere query Kusto e quindi ordinare, filtrare e visualizzare i risultati nei grafici per individuare le tendenze e identificare i problemi. È possibile lavorare in modo interattivo con i risultati della query o usarli con altre funzionalità, ad esempio avvisi, dashboard e cartelle di lavoro.
Azure portal
Avviare Log Analytics dai log nel menu della barra laterale nella pagina dell'app contenitore. È anche possibile avviare Log Analytics dai log di monitoraggio>.
È possibile eseguire query sui log usando le tabelle elencate nella scheda Tabelle delle categorie CustomLogs. Le tabelle in questa categoria sono le ContainerAppSystemlogs_CL
tabelle e ContainerAppConsoleLogs_CL
.
Di seguito è riportata una query Kusto che visualizza le voci di log della console per l'app contenitore denominata album-api.
ContainerAppConsoleLogs_CL
| where ContainerAppName_s == 'album-api'
| project Time=TimeGenerated, AppName=ContainerAppName_s, Revision=RevisionName_s, Container=ContainerName_s, Message=Log_s
| take 100
Di seguito è riportata una query Kusto che visualizza le voci di log di sistema per l'app contenitore denominata album-api.
ContainerAppSystemLogs_CL
| where ContainerAppName_s == 'album-api'
| project Time=TimeGenerated, EnvName=EnvironmentName_s, AppName=ContainerAppName_s, Revision=RevisionName_s, Message=Log_s
| take 100
Per altre informazioni su Log Analytics e sulle query di log, vedere l'esercitazione su Log Analytics.
Interfaccia della riga di comando di Azure/PowerShell
È possibile eseguire query sui log di App contenitore usando l'interfaccia della riga di comando di Azure.
Questo esempio di query dell'interfaccia della riga di comando di Azure restituisce una tabella contenente i record di log per l'album-api del nome dell'app contenitore. Le colonne della tabella vengono specificate dai parametri dopo l'operatore project
. La $WORKSPACE_CUSTOMER_ID
variabile contiene il GUID dell'area di lavoro Log Analytics.
Questo esempio esegue una query sulla ContainerAppConsoleLogs_CL
tabella:
az monitor log-analytics query --workspace $WORKSPACE_CUSTOMER_ID --analytics-query "ContainerAppConsoleLogs_CL | where ContainerAppName_s == 'album-api' | project Time=TimeGenerated, AppName=ContainerAppName_s, Revision=RevisionName_s, Container=ContainerName_s, Message=Log_s, LogLevel_s | take 5" --out table
Questo esempio esegue una query sulla ContainerAppSystemLogs_CL
tabella:
az monitor log-analytics query --workspace $WORKSPACE_CUSTOMER_ID --analytics-query "ContainerAppSystemLogs_CL | where ContainerAppName_s == 'album-api' | project Time=TimeGenerated, AppName=ContainerAppName_s, Revision=RevisionName_s, Message=Log_s, LogLevel_s | take 5" --out table