Surveiller les journaux dans Azure Container Apps avec Log Analytics
Azure Container Apps est intégré à Azure Monitor Log Analytics pour surveiller et analyser les journaux de votre application conteneur. Lorsqu’il est sélectionné comme solution de monitoring des journaux, votre environnement Container Apps inclut un espace de travail Log Analytics qui fournit un emplacement commun pour stocker les données des journaux du système et des applications de toutes les applications de conteneurs s’exécutant dans l’environnement.
Les entrées de journal sont accessibles en interrogeant des tables Log Analytics via le Portail Microsoft Azure ou un interpréteur de commandes à l’aide d’Azure CLI.
Il existe deux types de journaux d’activité pour Container Apps.
- Les journaux de console, émis par votre application.
- Les journaux système émis par le service Container Apps.
Journaux système
Le service Container Apps fournit des messages de journal système au niveau de l’application conteneur. Les journaux système émettent les messages suivants :
Source | Type | Message |
---|---|---|
Dapr | Info | Création réussie du composant darp<component-name>avec l’étendue <dapr-component-scope > |
Dapr | Info | Mise à jour du composant dapr <component-name> réussie avec l’étendue <type-de-composant> |
Dapr | Erreur | Erreur lors de la création du composant darp <component-name> |
Montages de volumes | Info | Volume <volume-name> monté avec succès pour la révision<étendue-de-la-révision> |
Montages de volumes | Erreur | Erreur de montage du volume <volume-name> |
Liaison de domaine | Info | Domaine <domain> lié avec succès au conteneur d’application <nom-du-conteneur-d’application> |
Authentification | Info | Authentification activée sur l’application. Création d’une configuration d’authentification |
Authentification | Info | Configuration d’authentification créée avec succès |
Poids du trafic | Info | Définition d’un poids de trafic de <pourcentage>% pour la révision<revision-name\> |
Approvisionnement de révision | Info | Création d’une nouvelle révision : <revision-name> |
Approvisionnement de révision | Info | <Nom de révision> provisionné avec succès |
Approvisionnement de révision | Info | Désactivation des anciennes révisions depuis « ActiveRevisionsMode=Single » |
Approvisionnement de révision | Erreur | Erreur d’approvisionnement de révision<revision-name>. ErrorCode : <[ErrImagePull]|[ Délai d’expiration]| [ContainerCrashing]> |
Les données du journal système sont accessibles en interrogeant la ContainerAppSystemLogs_CL
table. Les colonnes spécifiques de Container Apps les plus utilisées dans la table sont les suivantes :
Colonne | Description |
---|---|
ContainerAppName_s |
Nom de l’application conteneur |
EnvironmentName_s |
Nom de l’environnement Container Apps |
Log_s |
Message de journal |
RevisionName_s |
Nom de la révision |
Journaux de la console
Les journaux de console proviennent des messages de conteneursstderr
etstdout
de votre application de conteneur et des sidecars Dapr. Vous pouvez afficher les journaux de console en interrogeant la ContainerAppConsoleLogs_CL
table.
Conseil
L’instrumentation de votre code avec des messages de journal bien définis peut vous aider à comprendre comment votre code fonctionne et pour déboguer les problèmes. Pour en savoir plus sur les meilleures pratiques, consultez Conception pour les opérations.
Les colonnes spécifiques Container Apps les plus couramment utilisées dans ContainerAppConsoleLogs_CL sont les suivantes :
Colonne | Description |
---|---|
ContainerAppName_s |
Nom de l’application conteneur |
ContainerGroupName_g |
Nom du réplica |
ContainerId_s |
Identificateur du conteneur |
ContainerImage_s |
Nom d'image du conteneur |
EnvironmentName_s |
Nom de l’environnement Container Apps |
Log_s |
Message de journal |
RevisionName_s |
Nom de la révision |
Journal des requêtes avec Log Analytics
Log Analytics est un outil du portail Azure que vous pouvez utiliser pour afficher et analyser les données de journaux. Avec Log Analytics, vous pouvez écrire des requêtes Kusto, puis trier, filtrer et visualiser les résultats dans des graphiques pour repérer les tendances et identifier les problèmes. Vous pouvez travailler de manière interactive avec les résultats de la requête ou les utiliser avec d’autres fonctionnalités comme les alertes, les tableaux de bord et les classeurs.
Portail Azure
Pour démarrer Log Analytics, sélectionnez Journaux dans le menu de la barre latérale de la page de votre application conteneur. Vous pouvez également démarrer Log Analytics à partir de Moniteur>Journaux.
Vous pouvez interroger les journaux à l’aide des tables répertoriées dans l’onglet Tables de catégorie CustomLogs. Les tables de cette catégorie sont les ContainerAppSystemlogs_CL
tables et ContainerAppConsoleLogs_CL
les tables.
Voici un exemple de requête Kusto qui affiche les entrées de journal de la console pour l’application conteneur nommée 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
Voici un exemple de requête Kusto qui affiche les entrées de journal du système pour l’application conteneur nommée 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
Pour plus d’informations sur Log Analytics et les requêtes de journal, consultez le tutoriel Log Analytics.
Azure CLI/PowerShell
Vous pouvez interroger les journaux Container Apps en utilisant Azure CLI.
Ces exemples de requêtes Azure CLI génèrent une table contenant des enregistrements de journal pour l’album-api du nom de l’application conteneur. Les colonnes de la table sont spécifiées par les paramètres après l’opérateur project
. La variable$WORKSPACE_CUSTOMER_ID
contient le GUID de l’espace de travail Log Analytics.
Cet exemple interroge la tableContainerAppConsoleLogs_CL
:
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
Cet exemple interroge la tableContainerAppSystemLogs_CL
:
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