Si has implementado el Agent de clúster de Datadog con el controlador de admisión activado, este último mutará los manifiestos del pod e introducirá todas las variables de entorno requeridas (en función de las condiciones de mutación establecidas). En ese caso, no será necesaria la configuración manual de las variables de entorno DD_
en los manifiestos del pod. Para obtener más información, consulta la documentación del controlador de admisión.
Configuración completa
Para obtener todo el rango del etiquetado de servicios unificado al utilizar Kubernetes, añade variables de entorno tanto a nivel del objeto del despliegue como a nivel de las especificaciones de la plantilla del 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 puedes utilizar las variables de atributos de recursos de OpenTelemetry para configurar las etiquetas (tags) 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>"
Nota: La variable de entorno OTEL_SERVICE_NAME
tiene prioridad sobre el atributo service.name
de la variable de entorno OTEL_RESOURCE_ATTRIBUTES
.
Configuración parcial
Métricas a nivel del pod
Para configurar métricas a nivel del pod, añade las siguientes etiquetas (labels) estándar (tags.datadoghq.com
) a las especificaciones del pod de un despliegue, StatefulSet o tarea:
template:
metadata:
labels:
tags.datadoghq.com/env: "<ENV>"
tags.datadoghq.com/service: "<SERVICE>"
tags.datadoghq.com/version: "<VERSION>"
Estas etiquetas (labels) abarcan la CPU, la memoria, la red y las métricas de disco de Kubernetes a nivel del pod, y pueden utilizarse para introducir DD_ENV
, DD_SERVICE
y DD_VERSION
en el contenedor de tu servicio a través de la API descendente de Kubernetes.
Si tienes varios contenedores en cada pod, podrás especificar etiquetas (labels) estándar según el 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:
Configura join_standard_tags
como true
en tu archivo de configuración. Para conocer la localización de los parámetros, consulta este archivo de configuración de ejemplo.
Añade las mismas etiquetas (labels) estándar a la colección de etiquetas del recurso principal. 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>"
Rastreador de APM y cliente StatsD
Para configurar las variables de entorno del rastreador de APM y del cliente StatsD, utiliza la API descendente de Kubernetes con el siguiente formato:
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
Puedes utilizar la etiqueta (tag) version
en APM para monitorizar despliegues e identificar despliegues de código fallidos mediante la detección automática de despliegues fallidos.
Para los datos de APM, Datadog configura la etiqueta (tag) version
en el siguiente orden de prioridad. Si configuras version
manualmente, Datadog no anula su valor version
.
Prioridad | Valor de versión |
---|
1 | {tu valor de versión} |
2 | {image_tag}_{first_7_digits_of_git_commit_sha} |
3 | {image_tag} o {first_7_digits_of_git_commit_sha} si sólo uno está disponible |
Requisitos:
- Datadog Agent versión 7.52.0 o posterior
- Si tus servicios se ejecutan en un entorno contenedorizado y
image_tag
es suficiente para el seguimiento de los despliegues de nuevas versiones, no es necesaria ninguna configuración adicional. - Si tus servicios no se ejecutan en un entorno contenedorizado o si también te gustaría incluir el git SHA, integra información de Git en tus artefactos de creación
Configuración completa
Configura las variables de entorno DD_ENV
, DD_SERVICE
y DD_VERSION
y las etiquetas (labels) de Docker correspondientes a tu contenedor, para acceder a todo el rango del etiquetado de servicios unificado.
Los valores de service
y version
pueden proporcionarse en el archivo de Docker:
ENV DD_SERVICE <SERVICE>
ENV DD_VERSION <VERSION>
LABEL com.datadoghq.tags.service="<SERVICE>"
LABEL com.datadoghq.tags.version="<VERSION>"
Puesto que env
probablemente se determine en el momento del despliegue, puedes introducir la etiqueta (label) y la variable de entorno más adelante:
docker run -e DD_ENV=<ENV> -l com.datadoghq.tags.env=<ENV> ...
Si lo prefieres, también puedes configurar todo en el momento del despliegue:
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 tu servicio no necesita las variables de entorno de Datadog (por ejemplo, si se trata de un software de terceros como Redis, PostgreSQL, NGINX y aplicaciones sin rastreo de APM), puedes utilizar simplemente las etiquetas (labels) de Docker:
com.datadoghq.tags.env
com.datadoghq.tags.service
com.datadoghq.tags.version
Como se explica en la configuración completa, estas etiquetas (labels) se pueden configurar en un archivo de Docker o como argumentos para iniciar el contenedor.
Etiquetado automático de versiones para datos de APM en entornos contenedorizados
Puedes utilizar la etiqueta (tag) version
en APM para monitorizar despliegues e identificar despliegues de código fallidos mediante la detección automática de despliegues fallidos.
Para los datos de APM, Datadog configura la etiqueta (tag) version
en el siguiente orden de prioridad. Si configuras version
manualmente, Datadog no anula su valor version
.
Prioridad | Valor de versión |
---|
1 | {tu valor de versión} |
2 | {image_tag}_{first_7_digits_of_git_commit_sha} |
3 | {image_tag} o {first_7_digits_of_git_commit_sha} si sólo uno está disponible |
Requisitos:
- Datadog Agent versión 7.52.0 o posterior
- Si tus servicios se ejecutan en un entorno contenedorizado y
image_tag
es suficiente para el seguimiento de los despliegues de nuevas versiones, no es necesaria ninguna configuración adicional. - Si tus servicios no se ejecutan en un entorno contenedorizado o si también te gustaría incluir el git SHA, integra información de Git en tus artefactos de creación
En ECS Fargate que utiliza Fluent Bit o FireLens, el etiquetado de servicios unificado sólo está disponible para métricas y trazas, no para la recopilación de logs.
Configuración completa
Configura las variables de entorno DD_ENV
, DD_SERVICE
y DD_VERSION
(con el etiquetado automático de versiones opcional) y las etiquetas (labels) de Docker correspondientes en el entorno de ejecución de cada contenedor de servicio, para obtener el rango completo del etiquetado de servicios unificado. Por ejemplo, puedes definir toda esta configuración en un mismo lugar a través de tu definición de tareas 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>"
}
Configuración parcial
Si tu servicio no necesita las variables de entorno de Datadog (por ejemplo, si se trata de un software de terceros como Redis, PostgreSQL, NGINX y aplicaciones sin rastreo de APM), puedes utilizar simplemente las etiquetas (labels) de Docker en tu definición de tareas 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
Puedes utilizar la etiqueta (tag) version
en APM para monitorizar despliegues e identificar despliegues de código fallidos mediante la detección automática de despliegues fallidos.
Para datos de APM, Datadog configura la etiqueta (tag) version
en el siguiente orden de prioridad. Si configuras version
manualmente, Datadog no anula su valor version
.
Prioridad | Valor de versión |
---|
1 | {tu valor de versión} |
2 | {image_tag}_{first_7_digits_of_git_commit_sha} |
3 | {image_tag} o {first_7_digits_of_git_commit_sha} si sólo uno está disponible |
Requisitos:
- Datadog Agent versión 7.52.0 o posterior
- Si tus servicios se ejecutan en un entorno contenedorizado y
image_tag
es suficiente para el seguimiento de los despliegues de nuevas versiones, no es necesaria ninguna configuración adicional. - Si tus servicios no se ejecutan en un entorno contenedorizado o si también te gustaría incluir el git SHA, integra información de Git en tus artefactos de creación