Extraction de tags dans Kubernetes

L’Agent Datadog peut automatiquement attribuer des balises aux métriques, aux traces et aux journaux émis par un pod (ou un conteneur individuel au sein d’un pod) en fonction des étiquettes ou des annotations.

Balises prêtes à l’emploi

La liste des balises attribuées automatiquement dépend de la configuration de cardinalité de l’Agent. Cardinalité des balises est ajoutée avant l’ingestion et peut avoir un impact sur la facturation, car différentes configurations de cardinalité influencent le nombre de métriques émises.

BaliseCardinalitéSourceExigence
container_idÉlevéÉtat du podN/A
display_container_nameÉlevéÉtat du podN/A
pod_nameOrchestrateurMétadonnées du podN/A
oshift_deploymentOrchestrateurAnnotation du pod openshift.io/deployment.nameL’environnement OpenShift et l’annotation du pod doivent exister
kube_ownerref_nameOrchestrateurPropriétaire du podLe pod doit avoir un propriétaire
kube_jobOrchestrateurPropriétaire du podLe pod doit être attaché à un cronjob
kube_jobFaiblePropriétaire du podLe pod doit être attaché à un job
kube_replica_setFaiblePropriétaire du podLe pod doit être attaché à un ensemble de réplicas
kube_serviceFaibleDécouverte de service KubernetesLe pod est derrière un service Kubernetes
kube_daemon_setFaiblePropriétaire du podLe pod doit être attaché à un DaemonSet
kube_container_nameFaibleÉtat du podN/A
kube_namespaceFaibleMétadonnées du podN/A
kube_app_nameFaibleÉtiquette du pod app.kubernetes.io/nameL’étiquette du pod doit exister
kube_app_instanceFaibleÉtiquette de pod app.kubernetes.io/instanceL’étiquette de pod doit exister
kube_app_versionFaibleÉtiquette de pod app.kubernetes.io/versionL’étiquette de pod doit exister
kube_app_componentFaibleÉtiquette de pod app.kubernetes.io/componentL’étiquette de pod doit exister
kube_app_part_ofFaibleÉtiquette de pod app.kubernetes.io/part-ofL’étiquette de pod doit exister
kube_app_managed_byFaibleÉtiquette de pod app.kubernetes.io/managed-byL’étiquette de pod doit exister
envFaibleÉtiquette de pod tags.datadoghq.com/env ou variable d’environnement de conteneur (DD_ENV ou OTEL_RESOURCE_ATTRIBUTES)Tagging de service unifié activé
versionFaibleÉtiquette de pod tags.datadoghq.com/version ou variable d’environnement de conteneur (DD_VERSION ou OTEL_RESOURCE_ATTRIBUTES)Tagging de service unifié activé
serviceFaibleÉtiquette de pod tags.datadoghq.com/service ou variable d’environnement de conteneur (DD_SERVICE, OTEL_RESOURCE_ATTRIBUTES, ou OTEL_SERVICE_NAME)Tagging de service unifié activé
pod_phaseFaibleÉtat du podN/A
oshift_deployment_configFaibleAnnotation du pod openshift.io/deployment-config.nameL’environnement OpenShift et l’annotation du pod doivent exister
kube_ownerref_kindFaibleRéférence du propriétaire du podLe pod doit avoir un propriétaire
kube_deploymentFaibleRéférence du propriétaire du podLe pod doit être attaché à un déploiement
kube_argo_rolloutFaibleRéférence du propriétaire du podLe pod doit être attaché à un déploiement argo
kube_replication_controllerFaibleRéférence du propriétaire du podLe pod doit être attaché à un contrôleur de réplication
kube_stateful_setFaibleRéférence du propriétaire du podLe pod doit être attaché à un statefulset
persistentvolumeclaimFaibleSpécification du podUn PVC doit être attaché au pod
kube_cronjobFaibleRéférence du propriétaire du podLe pod doit être attaché à un cronjob
image_nameFaibleSpécification du podN/A
short_imageFaibleSpécification du podN/A
image_tagFaibleSpécification du podN/A
eks_fargate_nodeFaibleSpécification du podEnvironnement EKS Fargate
kube_runtime_classFaibleSpécification du podLe pod doit être attaché à une classe d’exécution
gpu_vendorFaibleSpécification du podLe conteneur doit être attaché à une ressource GPU
image_idFaibleID de l’image du conteneurN/A
kube_autoscaler_kindFaibleType d’autoscaler KubernetesL’autoscaler Kubernetes doit être utilisé
kube_priority_classFaibleClasse de priorité du podLe pod doit avoir une classe de priorité définie
kube_qosFaibleClasse de qualité de service du podN/A

Étiquette hôte

L’Agent peut ajouter des informations sur l’environnement Kubernetes sous la forme de tags de host.

ÉtiquetteCardinalitéSourceExigence
kube_cluster_nameFaibleDD_CLUSTER_NAME variable d’environnement ou intégration du fournisseur de cloudDD_CLUSTER_NAME variable d’environnement ou intégration du fournisseur de cloud activée
kube_node_roleFaibleÉtiquette de nœud node-role.kubernetes.io/<role>L’étiquette de nœud doit exister
kube_nodeFaibleNodeName champ dans les spécifications d’un pod
orch_cluster_idFaibleMétadonnées du cluster orchestrateurEnvironnement orchestrateur
kube_distributionFaibleÉtiquettes de nœud et NodeSystemInfo

Autodécouverte des tags

À partir de l’Agent v6.10+, l’Agent peut autodécouvrir des étiquettes à partir des annotations de pod. Cela permet à l’Agent d’associer des étiquettes à toutes les données émises par l’ensemble des pods ou un conteneur individuel au sein de ce pod.

En tant que meilleure pratique dans les environnements conteneurisés, Datadog recommande d’utiliser un étiquetage de service unifié pour aider à unifier les étiquettes. L’étiquetage de service unifié relie la télémétrie Datadog grâce à l’utilisation de trois étiquettes standard : env, service et version. Pour apprendre à configurer votre environnement avec un étiquetage unifié, référez-vous à la documentation dédiée à l’étiquetage de service unifié.

Pour appliquer une étiquette <TAG_KEY>:<TAG_VALUE> à toutes les données émises par un pod donné et collectées par l’Agent, utilisez l’annotation suivante sur votre pod :

annotations:
  ad.datadoghq.com/tags: '{"<TAG_KEY>": "<TAG_VALUE>","<TAG_KEY_1>": "<TAG_VALUE_1>"}'

Si vous souhaitez appliquer une étiquette <TAG_KEY>:<TAG_VALUE> à un conteneur individuel <CONTAINER_NAME> au sein d’un pod, utilisez l’annotation suivante sur votre pod :

annotations:
  ad.datadoghq.com/<CONTAINER_NAME>.tags: '{"<TAG_KEY>": "<TAG_VALUE>","<TAG_KEY_1>": "<TAG_VALUE_1>"}'

À partir de la version 7.17+ de l’Agent, celui-ci peut découvrir automatiquement des balises à partir des étiquettes Docker. Ce processus permet à l’Agent d’associer des balises personnalisées à toutes les données émises par un conteneur, sans modifier la configuration de l’Agent.

com.datadoghq.ad.tags: '["<TAG_KEY>:TAG_VALUE", "<TAG_KEY_1>:<TAG_VALUE_1>"]'

À partir de la version 7.77+ de l’Agent, les annotations de balises prennent en charge les variables de modèle d’autodécouverte pour un balisage dynamique basé sur les métadonnées d’exécution. À l’exception de %%env_<VAR>%%, toutes les variables de modèle sont prises en charge.

annotations:
  ad.datadoghq.com/tags: '{"pod_ip":"%%host%%","pod_name":"%%kube_pod_name%%","namespace":"%%kube_namespace%%"}'
  ad.datadoghq.com/nginx.tags: '{"container_port":"%%port_80%%"}'

Extraction d’étiquettes

À partir de la version 7.64+, l’Agent et l’Agent de Cluster peuvent être configurés pour collecter des étiquettes et des annotations à partir des ressources Kubernetes et les utiliser comme balises à partir d’une configuration commune. Datadog recommande d’utiliser les options suivantes pour garantir un reporting cohérent entre l’étiquetage de base de l’Agent, le reporting KSM de l’Agent de Cluster et le reporting Orchestrator Explorer des deux Agents :

  • kubernetesResourcesLabelsAsTags
  • kubernetesResourcesAnnotationsAsTags

Ces options doivent être utilisées à la place des anciennes options de l’Agent podLabelsAsTags, nodeLabelsAsTags, namespaceLabelsAsTags, et de tout remplacement de configuration KSM.

Ces configurations font référence au type de ressource de l’objet à partir duquel extraire des métadonnées. Chaque type de ressource doit être spécifié au format resourceType.apiGroup, où resourceType est le nom au pluriel de la ressource. Les ressources dans le groupe API vide (par exemple, les pods et les nœuds) peuvent être spécifiées en utilisant uniquement le nom resourceType.

Par exemple, exécutez kubectl api-resources pour récupérer cette information :

NomVersion APIConfiguration de ressource Datadog
podsv1pods
nœudsv1nœuds
espaces de nomsv1espaces de noms
déploiementsapps/v1déploiements.apps
rôlesrbac.authorization.k8s.io/v1rôles.rbac.authorization.k8s.io

Notes :

  • Les tags ne se propagent pas entre la charge de travail et les ressources enfants. Par exemple, les étiquettes sur un déploiement ne sont pas automatiquement appliquées aux journaux de ses Pods enfants. Pour taguer les données des Pods, configurez l’extraction des étiquettes directement sur les Pods.
  • Les tags se propagent de l’espace de noms vers les pods et les conteneurs à l’intérieur de ceux-ci.
  • Utilisez Datadog Agent 7.73+ pour utiliser des jokers dans les règles d’extraction des tags pour vos métriques KSM.

Les étiquettes des ressources Kubernetes en tant que tags

Cette option est utilisée pour extraire une étiquette donnée sur vos ressources Kubernetes et l’envoyer en tant que tag Datadog.

Pour extraire une étiquette de ressource donnée <LABEL> et la transformer en clé de tag <TAG_KEY> dans Datadog, ajoutez la configuration suivante à la configuration de votre opérateur DatadogAgent dans datadog-agent.yaml :

apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
  name: datadog
spec:
  global:
    kubernetesResourcesLabelsAsTags:
      <RESOURCE>:
        <LABEL>: <TAG_KEY>

Par exemple, pour extraire les étiquettes de ressource des nœuds, des pods et des déploiements :

apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
  name: datadog
spec:
  global:
    kubernetesResourcesLabelsAsTags:
      nodes:
        kubernetes.io/arch: arch
      pods:
        role: pod_role
      deployments.apps:
        team: kube_team

Pour extraire une étiquette de ressource donnée <LABEL> et la transformer en clé de tag <TAG_KEY> dans Datadog, ajoutez la configuration suivante à votre fichier Helm datadog-values.yaml :

datadog:
  kubernetesResourcesLabelsAsTags:
    <RESOURCE>:
      <LABEL>: <TAG_KEY>

Par exemple, pour extraire les étiquettes de ressource des nœuds, des pods et des déploiements :

datadog:
  kubernetesResourcesLabelsAsTags:
    nodes:
      kubernetes.io/arch: arch
    pods:
      role: pod_role
    deployments.apps:
      team: kube_team

Pour extraire une étiquette de ressource donnée <LABEL> et la transformer en clé de tag <TAG_KEY> dans Datadog, ajoutez la variable d’environnement suivante à à la fois vos conteneurs Agent et Cluster Agent.

- name: DD_KUBERNETES_RESOURCES_LABELS_AS_TAGS
  value: '{"<RESOURCE>":{"<LABEL>":"<TAG_KEY>"}}'

Par exemple, pour extraire les étiquettes de ressource des nœuds, des pods et des déploiements :

- name: DD_KUBERNETES_RESOURCES_LABELS_AS_TAGS
  value: '{"deployments.apps":{"team":"kube_team"},"nodes":{"kubernetes.io/arch":"arch"},"pods":{"role":"pod_role"}}'

Pour Agent 7.73.0+, utilisez la configuration suivante pour ajouter toutes les étiquettes de ressource en tant que tags à vos métriques. Dans cet exemple, les noms des tags sont préfixés par <PREFIX>_ :

    #(...)
    kubernetesResourcesLabelsAsTags:
      pods:
        "*": <PREFIX>_%%label%%

Notes : Les métriques personnalisées peuvent avoir un impact sur la facturation. Consultez la page de facturation des métriques personnalisées pour plus d’informations.

Fusion avec les configurations héritées

Cette option de configuration est fusionnée avec d’autres configurations définies dans podLabelsAsTags, namespaceLabelsAsTags et nodeLabelsAsTags. En cas de conflit, kubernetesResourcesLabelsAsTags a la priorité lors de la fusion des configurations.

Par exemple, si vous avez les configurations suivantes :

datadog:
  kubernetesResourcesLabelsAsTags:
    pods:
      label-1: tag-a
      label-2: tag-b

  podLabelsAsTags:
    label-2: legacy-tag-c
    label-3: legacy-tag-d

Le mappage suivant est utilisé pour extraire des balises des étiquettes de pod :

label-1: tag-a
label-2: tag-b
label-3: legacy-tag-d

Annotations des ressources Kubernetes en tant que tags

Cette option extrait une annotation spécifiée de vos ressources Kubernetes et l’envoie en tant que tag Datadog.

Pour extraire une annotation de ressource donnée <ANNOTATION> et la transformer en clé de tag <TAG_KEY> dans Datadog, ajoutez la configuration suivante à la configuration de votre opérateur DatadogAgent dans datadog-agent.yaml :

apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
  name: datadog
spec:
  global:
    kubernetesResourcesAnnotationsAsTags:
      <RESOURCE>:
        <ANNOTATION>: <TAG_KEY>

Par exemple, pour extraire des annotations de ressources des nœuds, des pods et des déploiements :

apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
  name: datadog
spec:
  global:
    kubernetesResourcesAnnotationsAsTags:
      nodes:
        kubernetes.io/arch: arch
      pods:
        role: pod_role
      deployments.apps:
        team: kube_team

Pour extraire une annotation de ressource donnée <ANNOTATION> et la transformer en clé de tag <TAG_KEY> dans Datadog, ajoutez la configuration suivante à votre fichier Helm datadog-values.yaml :

datadog:
  kubernetesResourcesAnnotationsAsTags:
    <RESOURCE>:
      <ANNOTATION>: <TAG_KEY>

Par exemple, pour extraire des annotations de ressources des nœuds, des pods et des déploiements :

datadog:
  kubernetesResourcesAnnotationsAsTags:
    nodes:
      kubernetes.io/arch: arch
    pods:
      role: pod_role
    deployments.apps:
      team: kube_team

Pour extraire une annotation de ressource donnée <ANNOTATION> et la transformer en clé de tag <TAG_KEY> dans Datadog, ajoutez la variable d’environnement suivante à à la fois vos conteneurs Agent et Cluster Agent.

- name: DD_KUBERNETES_RESOURCES_ANNOTATIONS_AS_TAGS
  value: '{"<RESOURCE>":{"<ANNOTATION>":"<TAG_KEY>"}}'

Par exemple, pour extraire des annotations de ressources des nœuds, des pods et des déploiements :

- name: DD_KUBERNETES_RESOURCES_ANNOTATIONS_AS_TAGS
  value: '{"deployments.apps":{"team":"kube_team"},"nodes":{"kubernetes.io/arch":"arch"},"pods":{"role":"pod_role"}}'

Pour Agent 7.73.0+, utilisez la configuration suivante pour ajouter toutes les annotations de ressources en tant que tags à vos métriques. Dans cet exemple, les noms des tags sont préfixés par <PREFIX>_ :

    #(...)
    kubernetesResourcesAnnotationsAsTags:
      pods:
        "*": <PREFIX>_%%annotation%%

Notes : Les métriques personnalisées peuvent avoir un impact sur la facturation. Consultez la page de facturation des métriques personnalisées pour plus d’informations.

Cette option de configuration est fusionnée avec d’autres configurations définies dans podAnnotationsAsTags. En cas de conflit, kubernetesResourcesAnnotationsAsTags a la priorité lors de la fusion des configurations.

Par exemple, si vous avez les configurations suivantes :

datadog:
  kubernetesResourcesAnnotationsAsTags:
    pods:
      annotation-1: tag-a
      annotation-2: tag-b

  podAnnotationsAsTags:
    annotation-2: legacy-tag-c
    annotation-3: legacy-tag-d

Le mappage suivant est utilisé pour extraire des tags des annotations de pod :

annotation-1: tag-a
annotation-2: tag-b
annotation-3: legacy-tag-d

Étiquettes de nœud en tant que tags

Si vous êtes sur la version de l’agent 7.58.0+, il est conseillé d’utiliser les étiquettes des ressources Kubernetes en tant que tags pour configurer les étiquettes en tant que tags.

À partir de l’Agent v6.0+, l’Agent peut collecter des étiquettes pour un nœud donné et les utiliser comme tags à attacher à toutes les métriques, traces et journaux émis associés à ce host dans Datadog :

Pour extraire une étiquette de nœud donnée <NODE_LABEL> et la transformer en clé de tag <TAG_KEY> dans Datadog, ajoutez la configuration suivante à la configuration de votre opérateur DatadogAgent dans datadog-agent.yaml :

apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
  name: datadog
spec:
  global:
    nodeLabelsAsTags:
      <NODE_LABEL>: <TAG_KEY>

Par exemple, vous pourriez configurer :

apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
  name: datadog
spec:
  global:
    nodeLabelsAsTags:
      kubernetes.io/arch: arch

Pour Agent v7.24.0+, utilisez la configuration de variable d’environnement suivante pour ajouter toutes les étiquettes de nœud en tant que tags à vos métriques. Dans cet exemple, les noms des tags sont préfixés par <PREFIX>_ :

apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
  name: datadog
spec:
  global:
    nodeLabelsAsTags:
      "*": <PREFIX>_%%label%% # Note: wildcards do not work for KSM metrics before version 7.73

Pour extraire une étiquette de nœud donnée <NODE_LABEL> et la transformer en clé de tag <TAG_KEY> dans Datadog, ajoutez la configuration suivante à votre fichier Helm datadog-values.yaml :

datadog:
  nodeLabelsAsTags:
    <NODE_LABEL>: <TAG_KEY>

Par exemple, vous pourriez configurer :

datadog:
  nodeLabelsAsTags:
    kubernetes.io/arch: arch

Pour Agent v7.24.0+, utilisez la configuration de variable d’environnement suivante pour ajouter toutes les étiquettes de nœud en tant que tags à vos métriques. Dans cet exemple, les noms des tags sont préfixés par <PREFIX>_ :

datadog:
  nodeLabelsAsTags:
    "*": <PREFIX>_%%label%% # Note: wildcards do not work for KSM metrics before version 7.73

Pour extraire une étiquette de nœud donnée <NODE_LABEL> et la transformer en clé de tag <TAG_KEY> dans Datadog, ajoutez la variable d’environnement suivante à l’Agent Datadog :

DD_KUBERNETES_NODE_LABELS_AS_TAGS='{"<NODE_LABEL>": "<TAG_KEY>"}'

Par exemple, vous pourriez configurer :

DD_KUBERNETES_NODE_LABELS_AS_TAGS='{"kubernetes.io/arch":"arch"}'

Pour Agent v7.24.0+, utilisez la configuration de variable d’environnement suivante pour ajouter toutes les étiquettes de nœud en tant que tags à vos métriques. Dans cet exemple, les noms des tags sont préfixés par <PREFIX>_ :

DD_KUBERNETES_NODE_LABELS_AS_TAGS='{"*":"<PREFIX>_%%label%%"}' # Note: wildcards do not work for KSM metrics before version 7.73

Remarque : Les métriques personnalisées peuvent avoir un impact sur la facturation. Consultez la page de facturation des métriques personnalisées pour plus d’informations.

Étiquettes de pod en tant que tags

Si vous utilisez la version de l’agent 7.58.0 ou supérieure, il est conseillé d’utiliser les étiquettes des ressources Kubernetes en tant que tags pour configurer les étiquettes de pod en tant que tags.

À partir de la version 6.0 de l’Agent, l’Agent peut collecter des étiquettes pour un pod donné et les utiliser comme tags à attacher à toutes les métriques, traces et journaux émis par ce pod :

Pour extraire une étiquette de pod donnée <POD_LABEL> et la transformer en clé de tag <TAG_KEY> dans Datadog, ajoutez la configuration suivante à la configuration de votre opérateur DatadogAgent dans datadog-agent.yaml :

apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
  name: datadog
spec:
  global:
    podLabelsAsTags:
      <POD_LABEL>: <TAG_KEY>

Par exemple, vous pourriez configurer :

apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
  name: datadog
spec:
  global:
    podLabelsAsTags:
      app: kube_app

Pour l’Agent v7.24.0 ou supérieur, utilisez la configuration de variable d’environnement suivante pour ajouter toutes les étiquettes de pod en tant que tags à vos métriques. Dans cet exemple, les noms des tags sont préfixés par <PREFIX>_ :

apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
  name: datadog
spec:
  global:
    podLabelsAsTags:
      "*": <PREFIX>_%%label%% # Note: wildcards do not work for KSM metrics before version 7.73

Pour extraire une étiquette de pod donnée <POD_LABEL> et la transformer en clé de tag <TAG_KEY> dans Datadog, ajoutez la configuration suivante à votre fichier Helm datadog-values.yaml :

datadog:
  podLabelsAsTags:
    <POD_LABEL>: <TAG_KEY>

Par exemple, vous pourriez configurer :

datadog:
  podLabelsAsTags:
    app: kube_app

Pour l’Agent v7.24.0 ou supérieur, utilisez la configuration de variable d’environnement suivante pour ajouter toutes les étiquettes de pod en tant que tags à vos métriques, sauf celles de KSM (kubernetes_state.*). Dans cet exemple, les noms des tags sont préfixés par <PREFIX>_ :

datadog:
  podLabelsAsTags:
    "*": <PREFIX>_%%label%% # Note: wildcards do not work for KSM metrics

Pour extraire une étiquette de pod donnée <POD_LABEL> et la transformer en clé de tag <TAG_KEY> dans Datadog, ajoutez la variable d’environnement suivante à l’Agent Datadog :

DD_KUBERNETES_POD_LABELS_AS_TAGS='{"<POD_LABEL>": "<TAG_KEY>"}'

Par exemple, vous pourriez configurer :

DD_KUBERNETES_POD_LABELS_AS_TAGS='{"app":"kube_app"}'

Pour l’Agent v7.24.0 ou supérieur, utilisez la configuration de variable d’environnement suivante pour ajouter toutes les étiquettes de pod en tant que tags à vos métriques, sauf celles de KSM (kubernetes_state.*). Dans cet exemple, les noms des tags sont préfixés par <PREFIX>_ :

DD_KUBERNETES_POD_LABELS_AS_TAGS='{"*":"<PREFIX>_%%label%%"}'

Remarque : Les métriques personnalisées peuvent avoir un impact sur la facturation. Consultez la page de facturation des métriques personnalisées pour plus d’informations.

Annotations de pod en tant que tags

Si vous utilisez la version de l’agent 7.58.0 ou supérieure, il est conseillé d’utiliser les étiquettes des ressources Kubernetes en tant que tags pour configurer les annotations de pod en tant que tags.

À partir de la version 6.0 de l’Agent, l’Agent peut collecter des annotations pour un pod donné et les utiliser comme balises à attacher à toutes les métriques, traces et journaux émis par ce pod :

Pour extraire une annotation de pod donnée <POD_ANNOTATION> et la transformer en clé de balise <TAG_KEY> dans Datadog, ajoutez la configuration suivante à la DatadogAgent configuration de votre opérateur dans datadog-agent.yaml :

apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
  name: datadog
spec:
  global:
    podAnnotationsAsTags:
      <POD_ANNOTATION>: <TAG_KEY>

Par exemple, vous pourriez configurer :

apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
  name: datadog
spec:
  global:
    podAnnotationsAsTags:
      app: kube_app

Pour l’Agent v7.24.0 ou supérieur, utilisez la configuration de variable d’environnement suivante pour ajouter toutes les annotations de pod en tant que balises à vos métriques, sauf celles de KSM (kubernetes_state.*). Dans cet exemple, les noms des balises sont préfixés par <PREFIX>_ :

apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
  name: datadog
spec:
  global:
    podAnnotationsAsTags:
      "*": <PREFIX>_%%annotation%% # Note: wildcards do not work for KSM metrics

Pour extraire une annotation de pod donnée <POD_ANNOTATION> et la transformer en clé de balise <TAG_KEY> dans Datadog, ajoutez la configuration suivante à votre fichier Helm datadog-values.yaml :

datadog:
  podAnnotationsAsTags:
    <POD_ANNOTATION>: <TAG_KEY>

Par exemple, vous pourriez configurer :

datadog:
  podAnnotationsAsTags:
    app: kube_app

Pour l’Agent v7.24.0 ou supérieur, utilisez la configuration de variable d’environnement suivante pour ajouter toutes les annotations de pod en tant que balises à vos métriques, sauf celles de KSM (kubernetes_state.*). Dans cet exemple, les noms des balises sont préfixés par <PREFIX>_ :

datadog:
  podAnnotationsAsTags:
    "*": <PREFIX>_%%annotation%% # Note: wildcards do not work for KSM metrics

Pour extraire une annotation de pod donnée <POD_ANNOTATION> et la transformer en clé de balise <TAG_KEY> dans Datadog, ajoutez la variable d’environnement suivante à l’Agent Datadog :

DD_KUBERNETES_POD_ANNOTATIONS_AS_TAGS='{"<POD_ANNOTATION>": "<TAG_KEY>"}'

Par exemple, vous pourriez configurer :

DD_KUBERNETES_POD_ANNOTATIONS_AS_TAGS='{"app":"kube_app"}'

Pour l’Agent v7.24.0 ou supérieur, utilisez la configuration de variable d’environnement suivante pour ajouter toutes les annotations de pod en tant que balises à vos métriques, sauf celles de KSM (kubernetes_state.*). Dans cet exemple, les noms des balises sont préfixés par <PREFIX>_ :

DD_KUBERNETES_POD_ANNOTATIONS_AS_TAGS='{"*":"<PREFIX>_%%annotation%%"}'

Remarque : Les métriques personnalisées peuvent avoir un impact sur la facturation. Consultez la page de facturation des métriques personnalisées pour plus d’informations.

Étiquettes de namespace en tant que balises

Si vous utilisez la version de l’Agent 7.58.0 ou supérieure, il est conseillé d’utiliser les étiquettes des ressources Kubernetes en tant que balises pour configurer les étiquettes de namespace en tant que balises.

À partir de l’Agent 7.55.0+, l’Agent peut collecter des étiquettes pour un espace de noms donné et les utiliser comme balises à attacher à toutes les métriques, traces et journaux émis par tous les pods dans cet espace de noms :

Pour extraire une étiquette d’espace de noms donnée <NAMESPACE_LABEL> et la transformer en clé de balise <TAG_KEY> dans Datadog, ajoutez la configuration suivante à la configuration de votre opérateur DatadogAgent dans datadog-agent.yaml :

apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
  name: datadog
spec:
  global:
    namespaceLabelsAsTags:
      <NAMESPACE_LABEL>: <TAG_KEY>

Par exemple, vous pourriez configurer :

apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
  name: datadog
spec:
  global:
    namespaceLabelsAsTags:
      app: kube_app

Pour l’Agent v7.24.0+, utilisez la configuration de variable d’environnement suivante pour ajouter toutes les étiquettes d’espace de noms en tant que balises à vos métriques, sauf celles de KSM (kubernetes_state.*). Dans cet exemple, les noms des balises sont préfixés par <PREFIX>_ :

apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
  name: datadog
spec:
  global:
    namespaceLabelsAsTags:
      "*": <PREFIX>_%%label%% # Note: wildcards do not work for KSM metrics

Pour extraire une étiquette d’espace de noms donnée <NAMESPACE_LABEL> et la transformer en clé de balise <TAG_KEY> dans Datadog, ajoutez la configuration suivante à votre fichier Helm datadog-values.yaml :

datadog:
  namespaceLabelsAsTags:
    <NAMESPACE_LABEL>: <TAG_KEY>

Par exemple, vous pourriez configurer :

datadog:
  namespaceLabelsAsTags:
    app: kube_app

Pour l’Agent v7.24.0+, utilisez la configuration de variable d’environnement suivante pour ajouter toutes les étiquettes d’espace de noms en tant que balises à vos métriques, sauf celles de KSM (kubernetes_state.*). Dans cet exemple, les noms des balises sont préfixés par <PREFIX>_ :

datadog:
  namespaceLabelsAsTags:
    "*": <PREFIX>_%%label%% # Note: wildcards do not work for KSM metrics

Pour extraire une étiquette d’espace de noms donnée <NAMESPACE_LABEL> et la transformer en clé de balise <TAG_KEY> dans Datadog, ajoutez la variable d’environnement suivante à l’Agent Datadog :

DD_KUBERNETES_NAMESPACE_LABELS_AS_TAGS='{"<NAMESPACE_LABEL>": "<TAG_KEY>"}'

Par exemple, vous pourriez configurer :

DD_KUBERNETES_NAMESPACE_LABELS_AS_TAGS='{"app":"kube_app"}'

Pour l’Agent v7.24.0+, utilisez la configuration de variable d’environnement suivante pour ajouter toutes les étiquettes d’espace de noms en tant que balises à vos métriques, sauf celles de KSM (kubernetes_state.*). Dans cet exemple, les noms des balises sont préfixés par <PREFIX>_ :

DD_KUBERNETES_NAMESPACE_LABELS_AS_TAGS='{"*":"<PREFIX>_%%label%%"}'

Remarque : Les métriques personnalisées peuvent avoir un impact sur la facturation. Consultez la page de facturation des métriques personnalisées pour plus d’informations.

Variables d’environnement de conteneur en tant que balises

À partir de l’Agent v7.32+, l’Agent peut collecter des variables d’environnement de conteneur et les utiliser comme balises à attacher à toutes les métriques, traces et journaux correspondant au conteneur. Les conteneurs docker et containerd sont tous deux pris en charge :

Pour extraire une variable d’environnement donnée <ENV_VAR> et la transformer en clé de balise <TAG_KEY> dans Datadog, ajoutez la configuration suivante à la configuration de votre opérateur DatadogAgent dans datadog-agent.yaml :

apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
  name: datadog
spec:
  #(...)
  override:
    nodeAgent:
      env:
        - name: DD_CONTAINER_ENV_AS_TAGS
          value: '{"<ENV_VAR>": "<TAG_KEY>"}'

Par exemple, vous pourriez configurer :

apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
  name: datadog
spec:
  #(...)
  override:
    nodeAgent:
      env:
        - name: DD_CONTAINER_ENV_AS_TAGS
          value: '{"app":"kube_app"}'

Pour extraire une variable d’environnement donnée <ENV_VAR> et la transformer en clé de balise <TAG_KEY> dans Datadog, ajoutez la configuration suivante à votre fichier Helm datadog-values.yaml :

datadog:
  env:
    - name: DD_CONTAINER_ENV_AS_TAGS
      value: '{"<ENV_VAR>": "<TAG_KEY>"}'

Par exemple, vous pourriez configurer :

datadog:
  env:
    - name: DD_CONTAINER_ENV_AS_TAGS
      value: '{"app":"kube_app"}'

Pour extraire une variable d’environnement donnée <ENV_VAR> et la transformer en clé de balise <TAG_KEY> dans Datadog, ajoutez la variable d’environnement suivante à l’Agent Datadog :

DD_CONTAINER_ENV_AS_TAGS='{"<ENV_VAR>": "<TAG_KEY>"}'

Exemple :

DD_CONTAINER_ENV_AS_TAGS='{"app":"kube_app"}'

Remarque : Les métriques personnalisées peuvent avoir un impact sur la facturation. Voir Facturation des métriques personnalisées pour plus de détails.

Étiquettes de conteneur en tant que balises

À partir de l’Agent v7.33+, l’Agent peut collecter des étiquettes de conteneur et les utiliser comme balises. L’agent attache les balises à toutes les métriques, traces et journaux associés au conteneur.

L’Agent peut générer des balises à partir des étiquettes de conteneur pour les conteneurs docker et containerd. Dans le cas de containerd, la version minimale prise en charge est v1.5.6, car les versions précédentes ne propagent pas correctement les étiquettes.

Pour extraire une étiquette de conteneur donnée <CONTAINER_LABEL> et la transformer en clé de balise <TAG_KEY> dans Datadog, ajoutez la configuration suivante à la configuration de votre opérateur DatadogAgent dans datadog-agent.yaml :

apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
  name: datadog
spec:
  #(...)
  override:
    nodeAgent:
      env:
        - name: DD_CONTAINER_LABELS_AS_TAGS
          value: '{"<CONTAINER_LABEL>": "<TAG_KEY>"}'

Par exemple, vous pourriez configurer :

apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
  name: datadog
spec:
  #(...)
  override:
    nodeAgent:
      env:
        - name: DD_CONTAINER_LABELS_AS_TAGS
          value: '{"app":"kube_app"}'

Pour extraire une étiquette de conteneur donnée <CONTAINER_LABEL> et la transformer en clé de balise <TAG_KEY> dans Datadog, ajoutez la configuration suivante à votre fichier Helm datadog-values.yaml :

datadog:
  env:
    - name: DD_CONTAINER_LABELS_AS_TAGS
      value: '{"<CONTAINER_LABEL>": "<TAG_KEY>"}'

Par exemple, vous pourriez configurer :

datadog:
  env:
    - name: DD_CONTAINER_LABELS_AS_TAGS
      value: '{"app":"kube_app"}'

Pour extraire une étiquette de conteneur donnée <CONTAINER_LABEL> et la transformer en clé de balise <TAG_KEY>, ajoutez la variable d’environnement suivante à l’Agent Datadog :

DD_CONTAINER_LABELS_AS_TAGS='{"<CONTAINER_LABEL>":"<TAG_KEY>"}'

Exemple :

DD_CONTAINER_LABELS_AS_TAGS='{"app":"kube_app"}'

Remarque : Les métriques personnalisées peuvent avoir un impact sur la facturation. Voir Facturation des métriques personnalisées pour plus de détails.

Lectures complémentaires