Si desplegó el Agente de Clúster de Datadog con el Controlador de Admisión habilitado, el Controlador de Admisión modifica los manifiestos de pod e inyecta todas las variables de entorno requeridas (basado en las condiciones de mutación configuradas). En ese caso, la configuración manual de las variables de entorno DD_ en los manifiestos de pod no es necesaria. Para más información, consulte la documentación del Controlador de Admisión.
Configuración completa
Para obtener el rango completo de etiquetado unificado de servicios al usar Kubernetes, agregue variables de entorno tanto al nivel del objeto de despliegue como al nivel de especificación de plantilla de pod:
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
tags.datadoghq.com/env: "<ENV>"
tags.datadoghq.com/service: "<SERVICE>"
tags.datadoghq.com/version: "<VERSION>"
...
template:
metadata:
labels:
tags.datadoghq.com/env: "<ENV>"
tags.datadoghq.com/service: "<SERVICE>"
tags.datadoghq.com/version: "<VERSION>"
containers:
- ...
env:
- name: DD_ENV
valueFrom:
fieldRef:
fieldPath: metadata.labels['tags.datadoghq.com/env']
- name: DD_SERVICE
valueFrom:
fieldRef:
fieldPath: metadata.labels['tags.datadoghq.com/service']
- name: DD_VERSION
valueFrom:
fieldRef:
fieldPath: metadata.labels['tags.datadoghq.com/version']
También puede usar las variables de entorno de Atributos de Recursos de OpenTelemetry para establecer las etiquetas env, service y version:
containers:
- ...
env:
- name: OTEL_RESOURCE_ATTRIBUTES
value: "service.name=<SERVICE>,service.version=<VERSION>,deployment.environment=<ENV>"
- name: OTEL_SERVICE_NAME
value: "<SERVICE>"
El OTEL_SERVICE_NAME la variable de entorno tiene prioridad sobre la service.name atributo en el OTEL_RESOURCE_ATTRIBUTES variable de entorno.
Configuración parcial
Métricas a nivel de pod
Para configurar métricas a nivel de pod, agregue las siguientes etiquetas estándar (tags.datadoghq.com) a la especificación del pod de un Deployment, StatefulSet o Job:
template:
metadata:
labels:
tags.datadoghq.com/env: "<ENV>"
tags.datadoghq.com/service: "<SERVICE>"
tags.datadoghq.com/version: "<VERSION>"
Estas etiquetas cubren métricas de CPU, memoria, red y disco a nivel de pod en Kubernetes, y se pueden usar para inyectar DD_ENV, DD_SERVICE y DD_VERSION en el contenedor de su servicio a través de la API descendente de Kubernetes.
Si tiene múltiples contenedores por pod, puede especificar etiquetas estándar por contenedor:
tags.datadoghq.com/<container-name>.env
tags.datadoghq.com/<container-name>.service
tags.datadoghq.com/<container-name>.version
Métricas de estado
Para configurar Métricas de Estado de Kubernetes:
Establezca join_standard_tags en true en su archivo de configuración. Consulte este archivo de configuración de ejemplo para la ubicación de la configuración.
Agregue las mismas etiquetas estándar a la colección de etiquetas para el recurso padre, por ejemplo: Deployment.
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
tags.datadoghq.com/env: "<ENV>"
tags.datadoghq.com/service: "<SERVICE>"
tags.datadoghq.com/version: "<VERSION>"
spec:
template:
metadata:
labels:
tags.datadoghq.com/env: "<ENV>"
tags.datadoghq.com/service: "<SERVICE>"
tags.datadoghq.com/version: "<VERSION>"
SDK de Datadog y cliente de StatsD
Para configurar las variables de entorno del SDK de Datadog y del cliente de StatsD, use la API descendente de Kubernetes en el formato a continuación:
containers:
- ...
env:
- name: DD_ENV
valueFrom:
fieldRef:
fieldPath: metadata.labels['tags.datadoghq.com/env']
- name: DD_SERVICE
valueFrom:
fieldRef:
fieldPath: metadata.labels['tags.datadoghq.com/service']
- name: DD_VERSION
valueFrom:
fieldRef:
fieldPath: metadata.labels['tags.datadoghq.com/version']
Etiquetado automático de versiones para datos de APM en entornos contenedorizados
Puede usar la etiqueta version en APM para monitorear implementaciones e identificar implementaciones de código defectuosas a través de Detección Automática de Implementaciones Defectuosas.
Para los datos de APM, Datadog establece la etiqueta version para usted en el siguiente orden de prioridad. Si configura manualmente version, Datadog no sobrescribirá su valor de version.
| Prioridad | Valor de versión |
|---|
| 1 | {your version value} |
| 2 | {image_tag}_{first_7_digits_of_git_commit_sha} |
| 3 | {image_tag} o {first_7_digits_of_git_commit_sha} si solo uno está disponible |
Requisitos:
- Datadog Agent Version 7.52.0 o superior
- Si sus servicios se ejecutan en un entorno contenedorizado y
image_tag es suficiente para el seguimiento de nuevos despliegues de versiones, no se requiere configuración adicional. - Si sus servicios no se están ejecutando en un entorno contenedorizado, o si también desea incluir el Git SHA, incorpore información de Git en sus artefactos de construcción.
Configuración completa
Establezca las variables de entorno DD_ENV, DD_SERVICE y DD_VERSION y las etiquetas de Docker correspondientes para su contenedor para obtener la gama completa de unified service tagging.
Los valores para service y version se pueden proporcionar en el Dockerfile:
ENV DD_SERVICE <SERVICE>
ENV DD_VERSION <VERSION>
LABEL com.datadoghq.tags.service="<SERVICE>"
LABEL com.datadoghq.tags.version="<VERSION>"
Dado que env probablemente se determina en el momento de la implementación, puede inyectar la variable de entorno y la etiqueta más tarde:
docker run -e DD_ENV=<ENV> -l com.datadoghq.tags.env=<ENV> ...
También puede preferir establecer todo en el momento de la implementación:
docker run -e DD_ENV="<ENV>" \
-e DD_SERVICE="<SERVICE>" \
-e DD_VERSION="<VERSION>" \
-l com.datadoghq.tags.env="<ENV>" \
-l com.datadoghq.tags.service="<SERVICE>" \
-l com.datadoghq.tags.version="<VERSION>" \
...
Configuración parcial
Si su servicio no necesita las variables de entorno de Datadog (por ejemplo, software de terceros como Redis, PostgreSQL, NGINX y aplicaciones que no son rastreadas por APM), puede usar las etiquetas de Docker:
com.datadoghq.tags.env
com.datadoghq.tags.service
com.datadoghq.tags.version
Como se explica en la configuración completa, estas etiquetas se pueden establecer en un Dockerfile o como argumentos para lanzar el contenedor.
Etiquetado automático de versiones para datos de APM en entornos contenedorizados
Puede usar la etiqueta version en APM para monitorear despliegues e identificar despliegues de código defectuosos a través de Detección Automática de Implementaciones Defectuosas.
Para los datos de APM, Datadog establece la etiqueta version para usted en el siguiente orden de prioridad. Si configura manualmente version, Datadog no sobrescribirá su valor de version.
| Prioridad | Valor de versión |
|---|
| 1 | {tu valor de versión} |
| 2 | {etiqueta_de_imagen}_{primeros_7_dígitos_del_sha_del_commit_de_git} |
| 3 | {etiqueta_de_imagen} o {primeros_7_dígitos_del_sha_del_commit_de_git} si solo uno está disponible |
Requisitos:
- Versión del Agente de Datadog 7.52.0 o superior
- Si sus servicios se ejecutan en un entorno contenedorizado y
image_tag es suficiente para rastrear nuevos despliegues de versiones, no se requiere configuración adicional. - Si sus servicios no se están ejecutando en un entorno contenedorizado, o si también desea incluir el SHA de Git, inserte información de Git en sus artefactos de construcción.
En ECS Fargate usando Fluent Bit o FireLens, el etiquetado unificado de servicios solo está disponible para métricas y trazas, no para la recolección de registros.
Configuración completa
Establezca las variables de entorno DD_ENV, DD_SERVICE y DD_VERSION (opcional con etiquetado automático de versiones) y las etiquetas de Docker correspondientes en el entorno de ejecución del contenedor de cada servicio para obtener el rango completo de etiquetado unificado de servicios. Por ejemplo, puede establecer toda esta configuración en un solo lugar a través de la definición de tarea de ECS:
"environment": [
{
"name": "DD_ENV",
"value": "<ENV>"
},
{
"name": "DD_SERVICE",
"value": "<SERVICE>"
},
{
"name": "DD_VERSION",
"value": "<VERSION>"
}
],
"dockerLabels": {
"com.datadoghq.tags.env": "<ENV>",
"com.datadoghq.tags.service": "<SERVICE>",
"com.datadoghq.tags.version": "<VERSION>"
}
En ECS Fargate, debe agregar estas etiquetas a su contenedor de aplicación, no al contenedor del Datadog Agent.
Configuración parcial
Si su servicio no necesita las variables de entorno de Datadog (por ejemplo, software de terceros como Redis, PostgreSQL, NGINX y aplicaciones que no son rastreadas por APM), puede usar las etiquetas de Docker en su definición de tarea de ECS:
"dockerLabels": {
"com.datadoghq.tags.env": "<ENV>",
"com.datadoghq.tags.service": "<SERVICE>",
"com.datadoghq.tags.version": "<VERSION>"
}
Etiquetado automático de versiones para datos de APM en entornos contenedorizados
Puede usar la etiqueta version en APM para monitorear despliegues e identificar despliegues de código defectuosos a través de Detección Automática de Implementaciones Defectuosas.
Para los datos de APM, Datadog establece la etiqueta version para usted en el siguiente orden de prioridad. Si configura manualmente version, Datadog no sobrescribirá su valor de version.
| Prioridad | Valor de versión |
|---|
| 1 | {tu valor de versión} |
| 2 | {etiqueta_de_imagen}_{primeros_7_dígitos_del_sha_del_commit_de_git} |
| 3 | {etiqueta_de_imagen} o {primeros_7_dígitos_del_sha_del_commit_de_git} si solo uno está disponible |
Requisitos:
- Versión del Agente de Datadog 7.52.0 o superior
- Si sus servicios se ejecutan en un entorno contenedorizado y
image_tag es suficiente para rastrear nuevos despliegues de versiones, no se requiere configuración adicional. - Si sus servicios no se están ejecutando en un entorno contenedorizado, o si también desea incluir el SHA de Git, inserte información de Git en sus artefactos de construcción.