Extracción de etiquetas de Kubernetes
El Datadog Agent puede asignar automáticamente etiquetas a métricas, trazas y logs emitidos por un pod (o un contenedor individual dentro de un pod) basándose en etiquetas o anotaciones.
Etiquetas predefinidas
La lista de etiquetas asignadas automáticamente depende de la configuración de cardinalidad del Agent. La cardinalidad de las etiquetas se añade antes de la ingesta y puede afectar a la facturación, ya que las distintas configuraciones de cardinalidad influyen en el número de métricas emitidas.
| Etiqueta | Cardinalidad | Fuente | Requisito |
|---|
container_id | Alta | Estado del pod | N/A |
display_container_name | Alta | Estado del pod | N/A |
pod_name | Orquestador | Metadatos del pod | N/A |
oshift_deployment | Orquestador | Anotación del pod openshift.io/deployment.name | El entorno de OpenShift y la anotación del pod debe existir |
kube_ownerref_name | Orquestador | Referencia del propietario del pod | El pod debe tener un propietario |
kube_job | Orquestador | Referencia del propietario del pod | El pod debe estar adjunto a un cronjob |
kube_job | Baja | Referencia del propietario del pod | El pod debe estar adjunto a un trabajo |
kube_replica_set | Baja | Referencia del propietario del pod | El pod debe estar adjunto a un conjunto de réplica |
kube_service | Baja | Detección de servicios de Kubernetes | El pod está detrás de un servicio de Kubernetes |
kube_daemon_set | Baja | Referencia del propietario del pod | El pod debe estar adjunto a un DaemonSet |
kube_container_name | Baja | Estado del pod | N/A |
kube_namespace | Baja | Metadatos del pod | N/A |
kube_app_name | Baja | Etiqueta del pod app.kubernetes.io/name | La etiqueta del pod debe existir |
kube_app_instance | Baja | Etiqueta del pod app.kubernetes.io/instance | La etiqueta del pod debe existir |
kube_app_version | Baja | Etiqueta del pod app.kubernetes.io/version | La etiqueta del pod debe existir |
kube_app_component | Baja | Etiqueta del pod app.kubernetes.io/component | La etiqueta del pod debe existir |
kube_app_part_of | Baja | Etiqueta del pod app.kubernetes.io/part-of | La etiqueta del pod debe existir |
kube_app_managed_by | Baja | Etiqueta del pod app.kubernetes.io/managed-by | La etiqueta del pod debe existir |
env | Baja | Etiqueta del pod tags.datadoghq.com/env o variable de entorno del contenedor (DD_ENV o OTEL_RESOURCE_ATTRIBUTES) | Etiquetado unificado de servicios activado |
version | Baja | Etiqueta del pod tags.datadoghq.com/version o variable de entorno del contenedor (DD_VERSION o OTEL_RESOURCE_ATTRIBUTES) | Etiquetado unificado de servicios activado |
service | Baja | Etiqueta del pod tags.datadoghq.com/service o variable de entorno del contenedor (DD_SERVICE, OTEL_RESOURCE_ATTRIBUTES o OTEL_SERVICE_NAME) | Etiquetado unificado de servicios activado |
pod_phase | Baja | Estado del pod | N/A |
oshift_deployment_config | Baja | Anotación del pod openshift.io/deployment-config.name | El entorno de OpenShift y la anotación del pod debe existir |
kube_ownerref_kind | Baja | Referencia del propietario del pod | El pod debe tener un propietario |
kube_deployment | Baja | Referencia del propietario del pod | El pod debe estar adjunto a un despliegue |
kube_replication_controller | Baja | Referencia del propietario del pod | El pod debe estar adjunto a un controlador de replicación |
kube_stateful_set | Baja | Referencia del propietario del pod | El pod debe estar adjunto a un statefulset |
persistentvolumeclaim | Baja | Especificación del pod | Un PVC debe estar adjunto al pod |
kube_cronjob | Baja | Referencia del propietario del pod | El pod debe estar adjunto a un cronjob |
image_name | Baja | Especificación del pod | N/A |
short_image | Baja | Especificación del pod | N/A |
image_tag | Baja | Especificación del pod | N/A |
eks_fargate_node | Baja | Especificación del pod | Entorno de EKS Fargate |
kube_runtime_class | Baja | Especificación del pod | El pod debe estar adjunto a una clase de tiempo de ejecución |
gpu_vendor | Baja | Especificación del pod | El contenedor debe estar adjunto a un recurso de GPU |
image_id | Baja | ID de imagen del contenedor | N/A |
kube_autoscaler_kind | Baja | Tipo de escalador automático de Kubernetes | Se debe utilizar un escalador automático de Kubernetes |
kube_priority_class | Baja | Clase de prioridad del pod | El pod debe tener un conjunto de clase de prioridad |
kube_qos | Baja | Clase de calidad de servicio del pod | N/A |
Etiqueta de host
El Agent puede adjuntar información del entorno de Kubernetes como “etiquetas de host”.
| Etiqueta | Cardinalidad | Fuente | Requisito |
|---|
kube_cluster_name | Baja | Variable de entorno DD_CLUSTER_NAME o integración del proveedor de nube | Variable de entorno DD_CLUSTER_NAME o integración del proveedor de nube activado |
kube_node_role | Baja | Etiqueta de nodo node-role.kubernetes.io/<role> | La etiqueta de nodo debe existir |
kube_node | Baja | Campo NodeName en las especificaciones de un pod | |
orch_cluster_id | Baja | Metadatos del clúster del orquestador | Entorno del orquestador |
Autodiscovery de etiqueta
A partir de Agent v6.10+, Agent puede hacer Autodiscovery de etiquetas a partir de anotaciones de pod. Permite al Agent asociar etiquetas a todos los datos emitidos por los pods completos o un contenedor individual dentro de este pod.
Como práctica recomendada en los entornos en contenedores, Datadog recomienda utilizar el etiquetado de servicios unificado para ayudar a unificar etiquetas. El etiquetado de servicios unificado une la telemetría de Datadog mediante el uso de tres etiquetas estándar: env, service y version. Para saber cómo configurar tu entorno con el etiquetado unificado, consulta la documentación dedicada de etiquetado de servicio unificado.
Para aplicar una etiqueta <TAG_KEY>:<TAG_VALUE> a todos los datos emitidos por un pod determinado y recopilados por el Agent, utiliza la siguiente anotación en tu pod:
annotations:
ad.datadoghq.com/tags: '{"<TAG_KEY>": "<TAG_VALUE>","<TAG_KEY_1>": "<TAG_VALUE_1>"}'
Si deseas aplicar una etiqueta <TAG_KEY>:<TAG_VALUE> a un contenedor <CONTAINER_NAME> individual dentro de un pod, utiliza la siguiente anotación en tu pod:
annotations:
ad.datadoghq.com/<CONTAINER_NAME>.tags: '{"<TAG_KEY>": "<TAG_VALUE>","<TAG_KEY_1>": "<TAG_VALUE_1>"}'
A partir de Agent v7.17+, Agent puede hacer Autodiscovery de etiquetas a partir de las labels (etiquetas) de Docker. Este proceso permite al Agent asociar etiquetas personalizadas a todos los datos emitidos por un contenedor, sin modificar la configuración del Agent.
com.datadoghq.ad.tags: '["<TAG_KEY>:TAG_VALUE", "<TAG_KEY_1>:<TAG_VALUE_1>"]'
Etiquetas de recursos de Kubernetes como etiquetas
A partir del Agent v7.58+, el Agent puede configurarse para recopilar etiquetas (labels) de cualquier recurso de Kubernetes y utilizarlas como etiquetas (tags) para adjuntarlas a todas las métricas, trazas y logs asociadas a ese recurso.
Esta opción de configuración es más genérica y debería preferirse a las siguientes opciones:
- podLabelsAsTags
- nodeLabelsAsTags
- namespaceLabelsAsTags
Cada tipo de recurso debe especificarse en el formato resourceType.apiGroup, donde resourceType es el nombre en plural del recurso.
Si un recurso específico se encuentra en el grupo de API vacío (por ejemplo, pods y nodes), puede especificarse utilizando resourceType.
Para extraer una determinada etiqueta (label) de nodo <NODE_LABEL> y transformarlas como claves de etiqueta (tag) <NODE_TAG_KEY> dentro de Datadog, añade la siguiente configuración a la configuración DatadogAgent del operador en datadog-agent.yaml:
apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
name: datadog
spec:
global:
kubernetesResourcesLabelsAsTags:
nodes:
<NODE_LABEL>: <NODE_TAG_KEY>
Por ejemplo:
apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
name: datadog
spec:
global:
kubernetesResourcesLabelsAsTags:
nodes:
kubernetes.io/arch: arch
pods:
baz: qux
Para Agent v7.24.0+, utiliza la siguiente configuración de variable de entorno para añadir todas las etiquetas (labels) de recurso como etiquetas a tus métricas. En este ejemplo, los nombres de etiquetas llevan el prefijo <PREFIX>_:
apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
name: datadog
spec:
global:
kubernetesResourcesLabelsAsTags:
pods:
"*": <PREFIX>_%%label%%
Cada tipo de recurso debe especificarse en el formato resourceType.apiGroup, donde resourceType es el nombre en plural del recurso.
Si un recurso específico se encuentra en el grupo de API vacío (por ejemplo, pods y nodes), puede especificarse utilizando resourceType.
Para extraer una determinada etiqueta (label) de nodo <NODE_LABEL> y transformarla como claves de etiqueta (tag) <NODE_TAG_KEY> dentro de Datadog, añade la siguiente configuración a tu archivo Helm datadog-values.yaml:
datadog:
kubernetesResourcesLabelsAsTags:
nodes:
<NODE_LABEL>: <NODE_TAG_KEY>
Po ejemplo, podrías configurar:
datadog:
kubernetesResourcesLabelsAsTags:
nodes:
kubernetes.io/arch: arch
pods:
baz: qux
Para Agent v7.24.0+, utiliza la siguiente configuración de variable de entorno para añadir todas las etiquetas (labels) de recurso como etiquetas a tus métricas. En este ejemplo, los nombres de etiquetas llevan el prefijo <PREFIX>_:
datadog:
kubernetesResourcesLabelsAsTags:
pods:
"*": <PREFIX>_%%label%%
Cada tipo de recurso debe especificarse en el formato resourceType.apiGroup, donde resourceType es el nombre en plural del recurso.
Si un recurso específico se encuentra en el grupo de API vacío (por ejemplo, pods y nodes), puede especificarse utilizando resourceType.
Para extraer una determinada etiqueta (label) de nodo <NODE_LABEL> y transformarla como clave de etiqueta (tag) <NODE_TAG_KEY> dentro de Datadog, añade la siguiente variable de entorno al Datadog Agent:
DD_KUBERNETES_RESOURCES_LABELS_AS_TAGS='{"nodes":{"<NODE_LABEL>": "<NODE_TAG_KEY>"}}'
Po ejemplo, podrías configurar:
DD_KUBERNETES_RESOURCES_LABELS_AS_TAGS='{"nodes":{"kubernetes.io/arch": "arch"},"pods":{"baz":"qux"}}'
Para Agent v7.24.0+, utiliza la siguiente configuración de variable de entorno para añadir todas las etiquetas (labels) de recurso como etiquetas a tus métricas. En este ejemplo, los nombres de etiquetas llevan el prefijo <PREFIX>_:
DD_KUBERNETES_RESOURCES_LABELS_AS_TAGS='{"pods":{"*": "<PREFIX>_%%label%%"}}'
Notas: Las métricas personalizadas pueden afectar a la facturación. Consulta la página Facturación de métricas personalizadas para más información.
Esta opción de configuración se fusiona con otras configuraciones establecidas en podLabelsAsTags, namespaceLabelsAsTags y nodeLabelsAsTags. En caso de conflicto, kubernetesResourcesLabelsAsTags tiene preferencia al fusionar configuraciones.
Por ejemplo, si tienes las siguientes configuraciones:
datadog:
kubernetesResourcesLabelsAsTags:
pods:
foo: bar
baz: qux
podLabelsAsTags:
foo: quux
bar: quuz
La siguiente asignación se utiliza para extraer etiquetas (tags) desde etiquetas (labels) de pod:
foo: bar
baz: qux
bar: quuz
Anotaciones de recursos de Kubernetes como etiquetas
A partir del Agent v7.58+, el Agent puede configurarse para recopilar anotaciones de cualquier recurso de Kubernetes y utilizarlas como etiquetas (tags) para adjuntarlas a todas las métricas, trazas y logs asociadas a ese recurso.
Esta opción de configuración es más genérica y debería preferirse a las siguientes opciones:
- podAnnotationsAsTags
- nodeAnnotationsAsTags
- namespaceAnnotationsAsTags
Cada tipo de recurso debe especificarse en el formato resourceType.apiGroup, donde resourceType es el nombre en plural del recurso.
Si un recurso específico se encuentra en el grupo de API vacío (por ejemplo, pods y nodes), puede especificarse utilizando resourceType.
Para extraer una determinada anotación de nodo <NODE_ANNOTATION> y transformarla como clave de etiqueta <NODE_TAG_KEY> dentro de Datadog, añade la siguiente configuración a tu configuración DatadogAgent del operador en datadog-agent.yaml:
apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
name: datadog
spec:
global:
kubernetesResourcesAnnotationsAsTags:
nodes:
<NODE_ANNOTATION>: <NODE_TAG_KEY>
Por ejemplo:
apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
name: datadog
spec:
global:
kubernetesResourcesAnnotationsAsTags:
nodes:
kubernetes.io/arch: arch
pods:
baz: qux
Para Agent v7.24.0+, utiliza la siguiente configuración de variable de entorno para añadir todas las anotaciones de recurso como etiquetas a tus métricas. En este ejemplo, los nombres de etiquetas para pods llevan el prefijo <PREFIX>_:
apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
name: datadog
spec:
global:
kubernetesResourcesAnnotationsAsTags:
pods:
"*": <PREFIX>_%%annotation%%
Cada tipo de recurso debe especificarse en el formato resourceType.apiGroup, donde resourceType es el nombre en plural del recurso.
Si un recurso específico se encuentra en el grupo de API vacío (por ejemplo pods y nodes), puede especificarse utilizando resourceType.
Para extraer una determinada anotación de nodo <NODE_ANNOTATION> y transformarla como clave de etiqueta <NODE_TAG_KEY> dentro de Datadog, añade la siguiente configuración a tu archivo Helm datadog-values.yaml:
datadog:
kubernetesResourcesAnnotationsAsTags:
nodes:
<NODE_ANNOTATION>: <NODE_TAG_KEY>
Por ejemplo:
datadog:
kubernetesResourcesAnnotationsAsTags:
nodes:
kubernetes.io/arch: arch
pods:
baz: qux
Para Agent v7.24.0+, utiliza la siguiente configuración de variable de entorno para añadir todas las anotaciones de recurso como etiquetas a tus métricas. En este ejemplo, los nombres de etiquetas para pods llevan el prefijo <PREFIX>_:
datadog:
kubernetesResourcesAnnotationsAsTags:
pods:
"*": <PREFIX>_%%annotation%%
Cada tipo de recurso debe especificarse en el formato resourceType.apiGroup, donde resourceType es el nombre en plural del recurso.
Si un recurso específico se encuentra en el grupo de API vacío (por ejemplo, pods y nodes), puede especificarse utilizando resourceType.
Para extraer una determinada anotación de nodo <NODE_ANNOTATION> y transformarla como clave de etiqueta <NODE_TAG_KEY> dentro de Datadog, añade la siguiente variable de entorno al Datadog Agent:
DD_KUBERNETES_RESOURCES_ANNOTATIONS_AS_TAGS='{"nodes":{"<NODE_ANNOTATION>": "<NODE_TAG_KEY>"}}'
Po ejemplo, podrías configurar:
DD_KUBERNETES_RESOURCES_ANNOTATIONS_AS_TAGS='{"nodes":{"kubernetes.io/arch": "arch"},"pods":{"baz":"qux"}}'
Para Agent v7.24.0+, utiliza la siguiente configuración de variable de entorno para añadir todas las anotaciones de recurso como etiquetas a tus métricas. En este ejemplo, los nombres de etiquetas para pods llevan el prefijo <PREFIX>_:
DD_KUBERNETES_RESOURCES_ANNOTATIONS_AS_TAGS='{"pods":{"*": "<PREFIX>_%%annotation%%"}}'
Notas: Las métricas personalizadas pueden afectar a la facturación. Consulta la página Facturación de métricas personalizadas para más información.
Esta opción de configuración se fusiona con otras configuraciones establecidas en podAnnotationsAsTags, namespaceAnnotationsAsTags y nodeAnnotationsAsTags. En caso de conflicto, kubernetesResourcesAnnotationsAsTags tiene preferencia al fusionar configuraciones.
Por ejemplo, si tienes las siguientes configuraciones:
datadog:
kubernetesResourcesAnnotationsAsTags:
pods:
foo: bar
baz: qux
podAnnotationsAsTags:
foo: quux
bar: quuz
La siguiente asignación se utiliza para extraer etiquetas de anotaciones del pod:
foo: bar
baz: qux
bar: quuz
Labels de nodo como etiquetas
A partir de Agent v6.0+, Agent puede recopilar labels para un nodo determinado y utilizarlas como etiquetas para adjuntarlas a todas las métricas, trazas (traces) y logs emitidas asociadas a este host en Datadog:
Para extraer una determinada label de nodo <NODE_LABEL> y transformarla en una clave de etiqueta <TAG_KEY> dentro de Datadog, añade la siguiente configuración a tu configuración DatadogAgent del Operator en datadog-agent.yaml:
apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
name: datadog
spec:
global:
nodeLabelsAsTags:
<NODE_LABEL>: <TAG_KEY>
Po ejemplo, podrías configurar:
apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
name: datadog
spec:
global:
nodeLabelsAsTags:
kubernetes.io/arch: arch
Para Agent v7.24.0+, utiliza la siguiente configuración de variable de entorno para añadir todas las labels de nodo como etiquetas a tus métricas. En este ejemplo, los nombres de etiquetas llevan el prefijo <PREFIX>_:
apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
name: datadog
spec:
global:
nodeLabelsAsTags:
"*": <PREFIX>_%%label%%
Para extraer una determinada label de nodo <NODE_LABEL> y transformarla como una clave de etiqueta <TAG_KEY> dentro de Datadog, añade la siguiente configuración a tu archivo de Helm datadog-values.yaml:
datadog:
nodeLabelsAsTags:
<NODE_LABEL>: <TAG_KEY>
Po ejemplo, podrías configurar:
datadog:
nodeLabelsAsTags:
kubernetes.io/arch: arch
Para Agent v7.24.0+, utiliza la siguiente configuración de variable de entorno para añadir todas las labels de nodo como etiquetas a tus métricas. En este ejemplo, los nombres de etiquetas llevan el prefijo <PREFIX>_:
datadog:
nodeLabelsAsTags:
"*": <PREFIX>_%%label%%
Para extraer una determinada etiqueta de nodo <NODE_LABEL> y transformarla como una clave etiquetar <TAG_KEY> dentro de Datadog, añada la siguiente variable entorno a la Datadog Agent :
DD_KUBERNETES_NODE_LABELS_AS_TAGS='{"<NODE_LABEL>": "<TAG_KEY>"}'
Po ejemplo, podrías configurar:
DD_KUBERNETES_NODE_LABELS_AS_TAGS='{"kubernetes.io/arch":"arch"}'
Para Agent v7.24.0+, utiliza la siguiente configuración de variable de entorno para añadir todas las labels de nodo como etiquetas a tus métricas. En este ejemplo, los nombres de etiquetas llevan el prefijo <PREFIX>_:
DD_KUBERNETES_NODE_LABELS_AS_TAGS='{"*":"<PREFIX>_%%label%%"}'
Nota: Las métricas personalizadas pueden modificar la facturación. Consulta la página de facturación de métricas personalizadas para obtener más información.
Labels de pod como etiquetas
A partir de Agent v6.0+, Agent puede recopilar labels para un pod determinado y utilizarlas como etiquetas para adjuntarlas a todas las métricas, trazas y logs emitidas por este pod:
Para extraer una determinada label de pod <POD_LABEL> y transformarla como una clave de etiqueta <TAG_KEY> dentro de Datadog, añade la siguiente configuración a tu configuraciónDatadogAgent de Operator en datadog-agent.yaml:
apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
name: datadog
spec:
global:
podLabelsAsTags:
<POD_LABEL>: <TAG_KEY>
Po ejemplo, podrías configurar:
apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
name: datadog
spec:
global:
podLabelsAsTags:
app: kube_app
Para Agent v7.24.0+, utiliza la siguiente configuración de variable de entorno para añadir todas las labels de pod como etiquetas a tus métricas. En este ejemplo, los nombres de etiquetas llevan el prefijo <PREFIX>_:
apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
name: datadog
spec:
global:
podLabelsAsTags:
"*": <PREFIX>_%%label%%
Para extraer una determinada label de pod <POD_LABEL> y transformarla como una clave de etiqueta <TAG_KEY> dentro de Datadog, añade la siguiente configuración a tu archivo de Helm datadog-values.yaml:
datadog:
podLabelsAsTags:
<POD_LABEL>: <TAG_KEY>
Po ejemplo, podrías configurar:
datadog:
podLabelsAsTags:
app: kube_app
Para Agent v7.24.0+, utiliza la siguiente configuración de variable de entorno para añadir todas las labels de pod como etiquetas a tus métricas. En este ejemplo, los nombres de etiquetas llevan el prefijo <PREFIX>_:
datadog:
podLabelsAsTags:
"*": <PREFIX>_%%label%%
Para extraer una determinada etiqueta de vaina <POD_LABEL> y transformarla como una clave etiquetar <TAG_KEY> dentro de Datadog, añada la siguiente variable entorno a la Datadog Agent :
DD_KUBERNETES_POD_LABELS_AS_TAGS='{"<POD_LABEL>": "<TAG_KEY>"}'
Po ejemplo, podrías configurar:
DD_KUBERNETES_POD_LABELS_AS_TAGS='{"app":"kube_app"}'
Para Agent v6.8.0+, utiliza la siguiente configuración de variable de entorno para añadir todas las labels de pod como etiquetas a tus métricas. En este ejemplo, los nombres de etiquetas llevan el prefijo <PREFIX>_:
DD_KUBERNETES_POD_LABELS_AS_TAGS='{"*":"<PREFIX>_%%label%%"}'
Nota: Las métricas personalizadas pueden modificar la facturación. Consulta la página de facturación de métricas personalizadas para obtener más información.
Anotaciones de pod como etiquetas
A partir de Agent v6.0+, Agent puede recopilar anotaciones para un pod determinado y utilizarlas como etiquetas para adjuntarlas a todas las métricas, trazas y logs emitidas por este pod:
Para extraer una determinada anotación de pod <POD_ANNOTATION> y transformarla como una clave de etiqueta <TAG_KEY> dentro de Datadog, añade la siguiente configuración a tu configuración DatadogAgent de Operator en datadog-agent.yaml
apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
name: datadog
spec:
global:
podAnnotationsAsTags:
<POD_ANNOTATION>: <TAG_KEY>
Po ejemplo, podrías configurar:
apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
name: datadog
spec:
global:
podAnnotationsAsTags:
app: kube_app
Para Agent v7.24.0+, utiliza la siguiente configuración de variable de entorno para añadir todas las anotaciones de pod como etiquetas a tus métricas. En este ejemplo, los nombres de etiquetas llevan el prefijo <PREFIX>_:
apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
name: datadog
spec:
global:
podAnnotationsAsTags:
"*": <PREFIX>_%%label%%
Para extraer una determinada anotación de pod <POD_ANNOTATION> y transformarla como una clave de etiqueta <TAG_KEY> dentro de Datadog, añade la siguiente configuración a tu archivo de Helm datadog-values.yaml:
datadog:
podAnnotationsAsTags:
<POD_ANNOTATION>: <TAG_KEY>
Po ejemplo, podrías configurar:
datadog:
podAnnotationsAsTags:
app: kube_app
Para Agent v7.24.0+, utiliza la siguiente configuración de variable de entorno para añadir todas las anotaciones de pod como etiquetas a tus métricas. En este ejemplo, los nombres de etiquetas llevan el prefijo <PREFIX>_:
datadog:
podAnnotationsAsTags:
"*": <PREFIX>_%%label%%
Para extraer una determinada anotación del pod <POD_ANNOTATION> y transformarla como una etiquetar clave <TAG_KEY> dentro de Datadog, añada la siguiente entorno variable a la Datadog Agent :
DD_KUBERNETES_POD_ANNOTATIONS_AS_TAGS='{"<POD_ANNOTATION>": "<TAG_KEY>"}'
Po ejemplo, podrías configurar:
DD_KUBERNETES_POD_ANNOTATIONS_AS_TAGS='{"app":"kube_app"}'
Para Agent v7.24.0+, utiliza la siguiente configuración de variable de entorno para añadir todas las anotaciones de pod como etiquetas a tus métricas. En este ejemplo, los nombres de etiquetas llevan el prefijo <PREFIX>_:
DD_KUBERNETES_POD_ANNOTATIONS_AS_TAGS='{"*":"<PREFIX>_%%annotation%%"}'
Nota: Las métricas personalizadas pueden modificar la facturación. Consulta la página de facturación de métricas personalizadas para obtener más información.
Labels de espacio de nombres como etiquetas
A partir de Agent 7.55.0+, el Agent puede recopilar etiquetas (labels) para un espacio de nombres dado y utilizarlas como etiquetas (tags) para adjuntarlas a todas las métricas, trazas y logs emitidas por todos los pods en este espacio de nombres:
Para extraer una determinada label de espacio de nombres <NAMESPACE_LABEL> y transformarla en una clave de etiqueta <TAG_KEY> dentro de Datadog, añade la siguiente configuración a tu configuración DatadogAgent de Operator en datadog-agent.yaml:
apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
name: datadog
spec:
global:
namespaceLabelsAsTags:
<NAMESPACE_LABEL>: <TAG_KEY>
Po ejemplo, podrías configurar:
apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
name: datadog
spec:
global:
namespaceLabelsAsTags:
app: kube_app
Para Agent v7.24.0+, utiliza la siguiente configuración de variable de entorno para añadir todas las labels de espacio de nombres como etiquetas a tus métricas. En este ejemplo, los nombres de etiquetas llevan el prefijo <PREFIX>_:
apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
name: datadog
spec:
global:
namespaceLabelsAsTags:
"*": <PREFIX>_%%label%%
Para extraer una determinada label de espacio de nombres <NAMESPACE_LABEL> y transformarla como una clave de etiqueta <TAG_KEY> dentro de Datadog, añade la siguiente configuración a tu archivo de Helm datadog-values.yaml:
datadog:
namespaceLabelsAsTags:
<NAMESPACE_LABEL>: <TAG_KEY>
Po ejemplo, podrías configurar:
datadog:
namespaceLabelsAsTags:
app: kube_app
Para Agent v7.24.0+, utiliza la siguiente configuración de variable de entorno para añadir todas las labels de espacio de nombres como etiquetas a tus métricas. En este ejemplo, los nombres de etiquetas llevan el prefijo <PREFIX>_:
datadog:
namespaceLabelsAsTags:
"*": <PREFIX>_%%label%%
Para extraer una determinada etiqueta espacio de nombres <NAMESPACE_LABEL> y transformarla como una clave etiquetar <TAG_KEY> dentro de Datadog, añada la siguiente variable entorno a la Datadog Agent :
DD_KUBERNETES_NAMESPACE_LABELS_AS_TAGS='{"<NAMESPACE_LABEL>": "<TAG_KEY>"}'
Po ejemplo, podrías configurar:
DD_KUBERNETES_NAMESPACE_LABELS_AS_TAGS='{"app":"kube_app"}'
Utiliza la siguiente configuración de variable de entorno para añadir todas las labels de espacio de nombres como etiquetas a tus métricas. En este ejemplo, los nombres de etiqueta llevan el prefijo <PREFIX>_:
DD_KUBERNETES_NAMESPACE_LABELS_AS_TAGS='{"*":"<PREFIX>_%%label%%"}'
Nota: Las métricas personalizadas pueden modificar la facturación. Consulta la página de facturación de métricas personalizadas para obtener más información.
Variables de entorno de contenedor como etiquetas
A partir de Agent v7.32+, Agent puede recopilar variables de entorno de contenedor y utilizarlas como etiquetas para adjuntarlas a todas las métricas, trazas y logs correspondientes al contenedor. Tanto los contenedores de docker como los de containerd son compatibles:
Para extraer una determinada variable de entorno <ENV_VAR> y transformarla en una clave de etiqueta <TAG_KEY> dentro de Datadog, añade la siguiente configuración a tu configuración DatadogAgent de Operator en 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>"}'
Po ejemplo, podrías configurar:
apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
name: datadog
spec:
#(...)
override:
nodeAgent:
env:
- name: DD_CONTAINER_ENV_AS_TAGS
value: '{"app":"kube_app"}'
Para extraer una determinada variable de entorno <ENV_VAR> y transformarla como una clave de etiqueta <TAG_KEY> dentro de Datadog, añade la siguiente configuración a tu archivo de Helm datadog-values.yaml:
datadog:
env:
- name: DD_CONTAINER_ENV_AS_TAGS
value: '{"<ENV_VAR>": "<TAG_KEY>"}'
Po ejemplo, podrías configurar:
datadog:
env:
- name: DD_CONTAINER_ENV_AS_TAGS
value: '{"app":"kube_app"}'
Para extraer una determinada variable entorno <ENV_VAR> y transformarla en una clave etiquetar <TAG_KEY> dentro de Datadog, añada la siguiente variable entorno a la Datadog Agent :
DD_CONTAINER_ENV_AS_TAGS='{"<ENV_VAR>": "<TAG_KEY>"}'
Por ejemplo:
DD_CONTAINER_ENV_AS_TAGS='{"app":"kube_app"}'
Nota: Las métricas personalizadas pueden modificar la facturación. Consulta Facturación de métricas personalizadas para obtener más información.
Labels de contenedor como etiquetas
A partir de Agent v7.33+, Agent puede recopilar labels de contenedor y utilizarlas como etiquetas. El Agent adjunta las etiquetas a todas las métricas, trazas y logs asociadas con el contenedor.
Agent puede generar etiquetas a partir de labels de contenedor para los contenedores de docker y containerd. En el caso de containerd, la versión mínima compatible es v1.5.6, ya que las versiones anteriores no propagan las labels correctamente.
Para extraer una determinada label de contenedor <CONTAINER_LABEL> y transformarla en una clave de etiqueta <TAG_KEY> dentro de Datadog, añade la siguiente configuración a tu configuración DatadogAgent de Operator en 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>"}'
Po ejemplo, podrías configurar:
apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
name: datadog
spec:
#(...)
override:
nodeAgent:
env:
- name: DD_CONTAINER_LABELS_AS_TAGS
value: '{"app":"kube_app"}'
Para extraer una determinada label de contenedor <CONTAINER_LABEL> y transformarla como una clave de etiqueta <TAG_KEY> dentro de Datadog, añade la siguiente configuración a tu archivo de Helm datadog-values.yaml:
datadog:
env:
- name: DD_CONTAINER_LABELS_AS_TAGS
value: '{"<CONTAINER_LABEL>": "<TAG_KEY>"}'
Po ejemplo, podrías configurar:
datadog:
env:
- name: DD_CONTAINER_LABELS_AS_TAGS
value: '{"app":"kube_app"}'
Para extraer una determinada etiqueta Contenedor <CONTAINER_LABEL> y transformarla en una clave etiquetar <TAG_KEY> , añada la siguiente variable entorno a la Datadog Agent :
DD_CONTAINER_LABELS_AS_TAGS='{"<CONTAINER_LABEL>":"<TAG_KEY>"}'
Por ejemplo:
DD_CONTAINER_LABELS_AS_TAGS='{"app":"kube_app"}'
Nota: Las métricas personalizadas pueden modificar la facturación. Consulta Facturación de métricas personalizadas para obtener más información.
Referencias adicionales
Más enlaces, artículos y documentación útiles: