Schéma du journal Container Insights

Container Insights stocke les données de journal collectées dans une table nommée ContainerLogV2. Cet article décrit le schéma de cette table, sa comparaison et sa migration depuis la table ContainerLog héritée.

Important

ContainerLogV2 est le schéma par défaut avec les versions 2.54.0 et ultérieures de ConfigMap pour l’interface CLI. ContainerLogV2 est le schéma d’ingestion par défaut pour les clients qui intègrent Container Insights à l’authentification d’identité managée en utilisant l’intégration ARM, Bicep, Terraform, Policy et du portail. ContainerLogV2 peut être explicitement activé via l’interface CLI version 2.51.0 ou ultérieure à l’aide des paramètres de collecte de données.

La prise en charge de la table ContainerLog sera mise hors service le 30 septembre 2026.

Comparaison des tables

Le tableau suivant souligne les principales différences entre l’utilisation des schémas ContainerLogV2 et ContainerLog.

Différences de fonctionnalités ContainerLog ContainerLogV2
schéma Détails sur ContainerLog. Détails sur ContainerLogV2.
Les colonnes supplémentaires sont :
- ContainerName
- PodName
- PodNamespace.
Intégration Configurable uniquement via ConfigMap. Configurable via ConfigMap et les DCR. 1
Tarification Compatible uniquement avec des journaux d’analyse à plein tarif. Prend en charge le niveau des journaux de base à faible coût en plus des journaux d’analyse.
Interrogation Nécessite plusieurs opérations de jointure avec des tables d’inventaire pour des requêtes standard. Inclut des métadonnées de pod et de conteneur supplémentaires afin de réduire la complexité des requêtes et les opérations de jointure.
Multiline Non prises en charge, les entrées multilignes sont fractionnées en plusieurs lignes. Prise en charge de la journalisation multiligne afin d’autoriser des entrées uniques consolidées pour une sortie multiligne.

1Configuration des DCR non prise en charge pour les clusters utilisant des clusters basés sur l’authentification du principal de service. Effectuez la migration de vos clusters avec le principal de service vers l’identité managée pour utiliser cette expérience.

Remarque

L’exportation vers Event Hub et le compte de stockage n’est pas prise en charge si le LogMessage entrant n’est pas un JSON valide. Pour un meilleur niveau de performance, nous vous recommandons d’émettre des journaux de conteneur au format JSON.

Évaluez l’impact sur les alertes existantes

Avant d’activer le schéma ContainerLogsV2, vous devez déterminer si vous avez des règles d’alerte reposant sur la table ContainerLog. Ces alertes doivent être mises à jour pour utiliser la nouvelle table.

Pour analyser les alertes qui référencent la table ContainerLog, exécutez la requête Azure Resource Graph suivante :

resources
| where type in~ ('microsoft.insights/scheduledqueryrules') and ['kind'] !in~ ('LogToMetric')
| extend severity = strcat("Sev", properties["severity"])
| extend enabled = tobool(properties["enabled"])
| where enabled in~ ('true')
| where tolower(properties["targetResourceTypes"]) matches regex 'microsoft.operationalinsights/workspaces($|/.*)?' or tolower(properties["targetResourceType"]) matches regex 'microsoft.operationalinsights/workspaces($|/.*)?' or tolower(properties["scopes"]) matches regex 'providers/microsoft.operationalinsights/workspaces($|/.*)?'
| where properties contains "ContainerLog"
| project id,name,type,properties,enabled,severity,subscriptionId
| order by tolower(name) asc

Activer le schéma ContainerLogV2

Vous pouvez activer le schéma ContainerLogV2 d’un cluster à l’aide des DCR (Règles de collecte de données) du cluster ou de ConfigMap. Si les deux paramètres sont activés, ConfigMap est prioritaire. Les journaux Stdout et stderr ne seront ingérés dans la table ContainerLog que lorsque la DCR et ConfigMap sont explicitement définies sur désactivé.

Journalisation sur plusieurs lignes dans Container Insights

Une fois la journalisation multiligne activée, les journaux de conteneur précédemment fractionnés sont assemblés et envoyés en tant qu’entrées uniques vers la table ContainerLogV2. Si la ligne de journal assemblée est supérieure à 64 Ko, elle sera tronquée en raison des limites de l’espace de travail Log Analytics. Cette fonctionnalité prend également en charge les traces .NET, Go, Python et Java, qui apparaissent en tant qu’entrées uniques dans la table ContainerLogV2. Activez la journalisation multiligne avec ConfigMap comme décrit dans Configurer la collecte de données dans Container Insights à l’aide de ConfigMap.

Remarque

La carte de configuration (configmap) comporte désormais une option de spécification de la langue, qui permet aux clients de sélectionner uniquement les langues qui les intéressent. Cette fonctionnalité peut être activée en modifiant les langues dans l’option stacktrace_languages de configmap.

Les captures d’écran suivantes montrent la journalisation multiligne de la trace d’exceptions Go :

Journalisation multiligne désactivée

Screenshot that shows Multi-line logging disabled.

Journalisation multiligne activée

Screenshot that shows Multi-line enabled.

Trace Java

Screenshot that shows Multi-line enabled for Java.

Trace Python

Screenshot that shows Multi-line enabled for Python.

Étapes suivantes