Métriques et journaux d’activité dans Azure Container Apps
Remarque
Les plans Essentiel, Standard et Entreprise seront déconseillés à compter de la mi-mars 2025, avec une période de mise hors service de 3 ans. Nous vous recommandons de passer à Azure Container Apps. Pour plus d’informations, consultez l’annonce de mise hors service d’Azure Spring Apps.
Le plan de consommation standard et dédiée sera déconseillé à compter du 30 septembre 2024, avec un arrêt complet après six mois. Nous vous recommandons de passer à Azure Container Apps. Pour plus d’informations, consultez Migrer le plan de consommation standard et dédiée Azure Spring Apps vers Azure Container Apps.
Cet article s’applique à :✅ Essentiel/Standard ✅ Entreprise
Lorsque vous passez d’Azure Spring Apps à Azure Container Apps, vous trouvez des fonctionnalités d’observabilité similaires, mais avec certaines différences clés. Cet article met en évidence ces différences et explique comment surveiller vos applications dans Azure Container Apps.
Prérequis
- Une application conteneur Azure existante. Pour plus d’informations, consultez Démarrage rapide : Déployer votre première application de conteneur avec le portail Azure.
- Azure CLI.
Journaux d’activité
Configurer les options de journalisation
Azure Container Apps vous permet de gérer la journalisation dans l’environnement Azure Container Apps.
Vous pouvez stocker des journaux dans Azure Log Analytics et Azure Monitor. Si vous choisissez Azure Monitor, vous trouverez un menu des paramètres de diagnostic dans les paramètres d’environnement, similaire à celui d’Azure Spring Apps.
Lorsque vous créez un environnement avec Azure CLI, comme illustré dans l’exemple suivant, un espace de travail Log Analytics généré automatiquement est approvisionné.
az containerapp env create \
--resource-group MyResourceGroup \
--name MyContainerappEnvironment \
--location eastus2
Vous pouvez également utiliser la commande suivante pour créer un environnement avec un espace de travail Log Analytics existant :
az containerapp env create \
--resource-group MyResourceGroup \
--name MyContainerappEnvironment \
--logs-workspace-id myLogsWorkspaceID \
--logs-workspace-key myLogsWorkspaceKey \
--location eastus2
Analyser les journaux d’activité
Azure Container Apps vous permet de diffuser en continu des journaux à partir de votre console de conteneur. La liste suivante décrit les principales différences dans la journalisation :
Journaux de console : pour les journaux de console, interrogez le tableau
ContainerAppConsoleLogs_CL
dans Azure Container Apps au lieu du tableauApplicationConsole
utilisé dans Azure Spring Apps.Journaux système : Azure Spring Apps fournit
SystemLogs
pour Config Server, le Registre des services, le portail d’API, le service de configuration d’application et Spring Cloud Gateway. Dans Azure Container Apps, vous devez approvisionner ces composants en tant qu’applications distinctes et interroger leurs journaux dans le tableauContainerAppConsoleLogs_CL
, en spécifiant le nom de chaque application dans votre requête.Journaux de génération : les journaux de génération à partir de builds locales avec Paketo Buildpacks ne sont pas disponibles dans Azure Container Apps, contrairement à Azure Spring Apps.
Afficher les journaux d’activité
Par défaut, Azure Container Apps envoie des journaux directement à Azure Log Analytics. Toutefois, si vous choisissez de stocker les journaux d’activité dans Azure Monitor, les noms de tableaux et de colonnes peuvent différer. Dans Azure Monitor, les noms de tableaux et de colonnes n’incluent pas de suffixes. Par exemple, utilisez ContainerAppConsoleLogs
au lieu de ContainerAppConsoleLogs_CL
et Log
au lieu de Log_s
lors de la création de requêtes pour les journaux stockés dans Azure Monitor.
Pour consulter les journaux de console dans Azure Container Apps, utilisez la requête suivante comme exemple :
ContainerAppConsoleLogs_CL
| limit 50
Azure Log Analytics s’exécute avec un moteur Kusto afin que vous puissiez interroger vos journaux à des fins d’analyse. Pour obtenir une présentation de l’interrogation des journaux à l’aide de Kusto, consultez le tutoriel sur Log Analytics.
Afficher les journaux d’application
Pour consulter une liste des journaux d’application triés par heure avec les journaux les plus récents affichés en premier, utilisez la requête suivante :
ContainerAppConsoleLogs_CL
| project TimeGenerated, EnvironmentName_s, ContainerAppName_s, RevisionName_s, Log_s
| sort by TimeGenerated desc
Afficher les entrées de journal contenant des erreurs ou des exceptions
Pour examiner les entrées de journal non triées qui mentionnent une erreur ou une exception, utilisez la requête suivante :
ContainerAppConsoleLogs_CL
| project TimeGenerated, EnvironmentName_s, ContainerAppName_s, RevisionName_s, Log_s
| where Log_s contains "error" or Log_s contains "exception"
Utilisez cette requête pour rechercher des erreurs, ou modifiez les termes de la requête afin de rechercher des codes d’erreur ou des exceptions spécifiques.
Afficher le nombre d’erreurs et d’exceptions signalées par votre application au cours de la dernière heure
Pour créer un graphique à secteurs indiquant le nombre d’erreurs et d’exceptions journalisées par votre application au cours de la dernière heure, utilisez la requête suivante :
ContainerAppConsoleLogs_CL
| where TimeGenerated > ago(1h)
| where Log_s contains "error" or Log_s contains "exception"
| summarize count_per_app = count() by ContainerAppName_s
| sort by count_per_app desc
| render piechart
Afficher les journaux d’activité Spring Cloud Gateway
Pour évaluer les entrées de journal pour les journaux d’activité Spring Cloud Gateway, utilisez la requête suivante :
ContainerAppSystemLogs_CL
| where ComponentType_s == "SpringCloudGateway"
| project TimeGenerated, ComponentType_s, EnvironmentName_s, ComponentName_s, Log_s
| limit 100
Afficher les journaux d’activité du serveur Eureka
Pour évaluer les entrées de journal pour les journaux d’activité du serveur Eureka, utilisez la requête suivante :
ContainerAppSystemLogs_CL
| where ComponentType_s == "SpringCloudEureka"
| project TimeGenerated, ComponentType_s, EnvironmentName_s, ComponentName_s, Log_s
| limit 100
Métriques
Les tableaux suivants mappent les métriques entre Azure Spring Apps et Azure Container Apps :
Courant
Nom de la métrique d’Azure Spring Apps | Nom de la métrique d’Azure Container Apps |
---|---|
Utilisation du processeur de l’application | N/A |
Utilisation de la mémoire de l’application | N/A |
Entrées réseau de l’application | N/A |
Sorties réseau de l’application | N/A |
Mesures d’erreur
Nom de la métrique d’Azure Spring Apps | Nom de la métrique d’Azure Container Apps |
---|---|
tomcat.global.error |
N/A |
Mesures de performances
Nom de la métrique d’Azure Spring Apps | Nom de la métrique d’Azure Container Apps |
---|---|
system.cpu.usage |
Pourcentage d’utilisation de l’UC (préversion) |
process.cpu.usage |
N/A |
Utilisation de la mémoire de l’application | N/A |
jvm.memory.committed |
jvm.memory.committed |
jvm.memory.used |
jvm.memory.used |
jvm.memory.max |
N/A |
Métriques JVM supplémentaires | N/A |
Métriques de performance .NET
Nom de la métrique d’Azure Spring Apps | Nom de la métrique d’Azure Container Apps |
---|---|
Utilisation de l’UC | Pourcentage d’utilisation de l’UC (préversion) |
Plage de travail | Plage de travail de la mémoire en octets |
Taille du tas GC | N/A |
Nombre de nettoyages de mémoire Gén 0 | N/A |
Métriques GC supplémentaires | N/A |
Métriques de demande
Nom de la métrique d’Azure Spring Apps | Nom de la métrique d’Azure Container Apps |
---|---|
tomcat.global.sent |
N/A |
tomcat.global.request.total.count |
Demandes |
Métriques par requête .NET
Nom de la métrique d’Azure Spring Apps | Nom de la métrique d’Azure Container Apps |
---|---|
Demandes par seconde | N/A |
Nombre total de requêtes | Demandes |
Métriques de session
Nom de la métrique d’Azure Spring Apps | Nom de la métrique d’Azure Container Apps |
---|---|
tomcat.sessions.active.max |
N/A |
tomcat.sessions.alive.max |
N/A |
Métriques Java pour les applications Java dans Azure Container Apps
Si vous choisissez Java comme pile de développement pour Azure Container Apps, l’analyse des métriques de machine virtuelle Java (JVM) est essentielle pour garantir l’intégrité et les performances de vos applications. Pour plus d'informations, consultez les mesures pour les applications Java dans Azure Container Apps.
Composants managés
Pour connaître les données d’analyse des composants managés, consultez les articles suivants :
Intégration
Azure Container Apps offre plusieurs fonctionnalités d’observabilité intégrées pour vous aider à analyser et diagnostiquer l’état de votre application. Toutefois, si vous souhaitez utiliser Azure Monitor Application Insights ou d’autres analyses des performances des applications (APM), vous devez ajouter de l’instrumentation à votre code d’application.
Intégrer à l’analyse des performances des applications (APM)
Pour l’intégration à Azure Monitor Application Insights ou à d’autres APM, consultez Intégrer l’analyse des performances des applications dans des images conteneur.
Agents OpenTelemetry (aperçu)
Vous pouvez envoyer des données d’observabilité dans un format OpenTelemetry à des destinations telles qu’Azure Monitor Application Insights, Datadog ou tout point de terminaison compatible OTLP à l’aide d’un agent de données OpenTelemetry avec votre environnement Azure Container Apps. L’agent managé simplifie la configuration en vous permettant de modifier les points de terminaison de destination sans exécuter ou reconfigurer manuellement l’agent. Pour ce faire, configurez l’agent dans votre environnement de conteneur à l’aide de modèles ARM, Bicep ou Azure CLI, et préparez votre application en installant le Kit de développement logiciel (SDK) OpenTelemetry et par instrumentation de votre code pour les métriques, les journaux ou les traces. Veillez à configurer le service de destination au préalable, par exemple Application Insights. Chaque destination a des exigences spécifiques et l’agent envoie des données uniquement si elle est correctement configurée et instrumentée. Pour plus d’informations, consultez Recueillir et lire des données OpenTelemetry dans Azure Container Apps.
Tableaux de bord et alertes personnalisés
Lorsque vous déployez des applications sur Azure Container Apps, vos tableaux de bord personnalisés peuvent s’appuyer sur deux approches d’approvisionnement des données différentes :
Agents APM intégrés aux applications : si vous avez intégré des agents APM tiers à votre application pendant le processus de génération, ces agents envoient des métriques et des journaux directement à la plateforme APM. Dans ce cas, tant que le code de votre application reste inchangé, vous n’avez pas besoin de modifier vos tableaux de bord.
Tableaux de bord basés sur Azure Monitor : si vos tableaux de bord utilisent des métriques et des journaux d’activité à partir d’Azure Monitor, par exemple via l’API Application Insights, Azure Event Hubs ou le Stockage Azure, vous devrez peut-être les mettre à jour pour refléter les noms de métriques spécifiques à Azure Container Apps, les espaces de noms ou les structures de journal. Veillez à passer en revue et à mettre à jour vos tableaux de bord en fonction des mappages de métriques et des structures de données spécifiques à Azure Container Apps.
Vérifiez soigneusement les configurations de votre tableau de bord pour vous assurer qu’elles restent précises après la transition vers Azure Container Apps.
Résolution des problèmes
Azure Container Apps ne fournit pas d’API pour générer un vidage de tas ou de conversation pour les applications Java. Pour créer ces vidages, vous devez vous connecter à l’application conteneur via la console. Ensuite, utilisez la commande jmap
ou jstack
pour générer les fichiers de vidage à l’intérieur du conteneur. Après cela, copiez les fichiers générés sur votre ordinateur local pour une analyse plus approfondie.
Vous pouvez également utiliser la commande jcmd
pour effectuer la même opération et démarrer Java Flight Recorder (JFR) dans une application en cours d’exécution. Pour plus d’informations sur l’accès à l’application conteneur via la console, consultez Se connecter à une console de conteneur dans Azure Container Apps.
Limitations connues
- Journaux structurés : Azure Container Apps ne prend pas en charge les journaux d’activité des applications structurées. Si les journaux d’activité de votre application suivent le schéma Azure Spring Apps, la chaîne JSON complète apparaît dans la colonne
Log_s
deContainerAppConsoleLogs_CL
. - Journaux d’entrée : bien qu’Azure Spring Apps dispose de journaux d’accès intégrés, ce n’est pas le cas d’Azure Container Apps. Vous devez implémenter la journalisation des accès dans votre code d’application pour capturer ces données.
- Azure Container Apps ne fournit pas d’événements de cycle de vie des applications.
- Azure Container Apps n’a pas de prise en charge intégrée des métriques d’entrée. Vous devez implémenter le suivi personnalisé dans vos applications.