Nota: AD Annotations v2 fue introducido en el Datadog Agent v7.36 para simplificar la configuración de integraciones. Para versiones anteriores del Datadog Agent, usa AD Annotations v1.
Para activar Autodiscovery automáticamente en contenedores Docker, monta /var/run/docker.sock
en el Agent contenedorizado. En Windows, monta \\.\pipe\docker_engine
.
Las plantillas de integraciones se pueden almacenar como etiquetas Docker. Con Autodiscovery, el Agent detecta si se está ejecutando en Docker y busca plantillas de integraciones automáticamente en todas las etiquetas. Autodiscovery espera que las etiquetas se parezcan a los ejemplos a continuación:
Archivo de Docker:
LABEL "com.datadoghq.ad.checks"='{"<INTEGRATION_NAME>": {"instances": [<INSTANCE_CONFIG>]}}'
docker-compose.yaml:
labels:
com.datadoghq.ad.checks: '{"<INTEGRATION_NAME>": {"instances": [<INSTANCE_CONFIG>]}}'
Uso de los comandos docker run
, nerdctl run
o podman run
:
-l com.datadoghq.ad.checks="{\"<INTEGRATION_NAME>\": {\"instances\": [<INSTANCE_CONFIG>]}}"
Nota: Puedes establecer una secuencia de escape para JSON mientras configuras estas etiquetas. Por ejemplo:
docker run --label "com.datadoghq.ad.checks="{\"apache\": {\"instances\": [{\"apache_status_url\":\"http://%%host%%/server-status?auto2\"}]}}"
Docker Swarm:
Cuando se usa el modo Swarm para Docker Cloud, las etiquetas deberán aplicarse a la imagen:
version: "1.0"
services:
...
project:
image: '<IMAGE_NAME>'
labels:
com.datadoghq.ad.checks: '{"<INTEGRATION_NAME>": {"instances": [<INSTANCE_CONFIG>]}}'
Nota: Cuando se configura Autodiscovery, Datadog recomienda usar etiquetas Docker para unificar la telemetría en todo el entorno contenedorizado. Lee la documentación de etiquetado de servicios unificado para ver más información.
Para activar Autodiscovery automáticamente en contenedores Docker, monta /var/run/docker.sock
dentro del Agent contenedorizado. En Windows, monta \\.\pipe\docker_engine
.
Las plantillas de integraciones se pueden almacenar como etiquetas Docker. Con Autodiscovery, el Agent detecta si se está ejecutando en Docker y busca plantillas de integraciones automáticamente en todas las etiquetas. Autodiscovery espera que las etiquetas se parezcan a los ejemplos a continuación:
Archivo de Docker:
LABEL "com.datadoghq.ad.check_names"='[<INTEGRATION_NAME>]'
LABEL "com.datadoghq.ad.init_configs"='[<INIT_CONFIG>]'
LABEL "com.datadoghq.ad.instances"='[<INSTANCE_CONFIG>]'
docker-compose.yaml:
labels:
com.datadoghq.ad.check_names: '[<INTEGRATION_NAME>]'
com.datadoghq.ad.init_configs: '[<INIT_CONFIG>]'
com.datadoghq.ad.instances: '[<INSTANCE_CONFIG>]'
Uso de los comandos docker run
, nerdctl run
o podman run
:
-l com.datadoghq.ad.check_names='[<INTEGRATION_NAME>]' -l com.datadoghq.ad.init_configs='[<INIT_CONFIG>]' -l com.datadoghq.ad.instances='[<INSTANCE_CONFIG>]'
Nota: Puedes establecer una secuencia de escape para JSON mientras configuras estas etiquetas. Por ejemplo:
docker run --label "com.datadoghq.ad.check_names=[\"redisdb\"]" --label "com.datadoghq.ad.init_configs=[{}]" --label "com.datadoghq.ad.instances=[{\"host\":\"%%host%%\",\"port\":6379}]" --label "com.datadoghq.ad.logs=[{\"source\":\"redis\"}]" --name redis redis
Docker Swarm:
Cuando se usa el modo Swarm para Docker Cloud, las etiquetas deberán aplicarse a la imagen:
version: "1.0"
services:
...
project:
image: '<IMAGE_NAME>'
labels:
com.datadoghq.ad.check_names: '[<INTEGRATION_NAME>]'
com.datadoghq.ad.init_configs: '[<INIT_CONFIG>]'
com.datadoghq.ad.instances: '[<INSTANCE_CONFIG>]'
Nota: Cuando se configura Autodiscovery, Datadog recomienda usar etiquetas Docker para unificar la telemetría en todo el entorno contenedorizado. Lee la documentación de etiquetado de servicios unificado para ver más información
Para almacenar plantillas como archivos locales y montarlos dentro del Agent contenedorizado no hace falta un servicio externo ni una plataforma específica de orquestación. La desventaja es que tienes que reiniciar tu Agent cada vez que cambias, añades o eliminas plantillas. El Agent busca plantillas Autodiscovery en el directorio /conf.d
montado.
A partir del Agent v6.2.0 (y v5.24.0), las plantillas por defecto usan el puerto por defecto para el software monitorizado, en lugar de detectarlo automáticamente. Si tienes que usar un puerto diferente, proporciona una plantilla Autodiscovery personalizada en las etiquetas de contenedor Docker
Estas plantillas de integración son para casos básicos. Si necesitas una configuración de integración personalizada de Datadog para activar otras opciones, usa identificadores diferentes de contenedores o usa el indexado de variables de plantilla y escribe tu propio archivo de autoconfiguración:
- Crea un archivo
conf.d/<INTEGRATION_NAME>.d/conf.yaml
en tu host y añade tu autoconfiguración personalizada. - Monta tu carpeta host
conf.d/
en la carpeta contenedorizada conf.d
del Agent.
Ejemplo de archivo de autoconfiguración:
ad_identifiers:
<INTEGRATION_AUTODISCOVERY_IDENTIFIER>
init_config:
<INIT_CONFIG>
instances:
<INSTANCES_CONFIG>
Consulta la documentación Identificadores de contenedores Autodiscovery para ver más información sobre el <INTEGRATION_AUTODISCOVERY_IDENTIFIER>
.
Nota: No es necesario configurar el <INTEGRATIONS_NAME>
, ya que el Agent lo infiere directamente del nombre de archivo.
Autodiscovery puede usar Consul, Etcd, y Zookeeper como fuentes de plantillas de integración. Para usar una base de datos clave-valor, configúrala en el archivo de configuración datadog.yaml
del Agent y monta el archivo dentro del Agent contenedorizado. Opcionalmente, pasa tu base de datos clave-valor como variable de entorno al Agent contenedorizado.
Configurar en datadog.yaml:
En el archivo datadog.yaml
, configura la dirección <KEY_VALUE_STORE_IP>
y <KEY_VALUE_STORE_PORT>
de tu base de datos clave-valor:
config_providers:
- name: etcd
polling: true
template_dir: /datadog/check_configs
template_url: '<KV_STORE_IP>:<KV_STORE_PORT>'
username:
password:
- name: consul
polling: true
template_dir: datadog/check_configs
template_url: '<KV_STORE_IP>:<KV_STORE_PORT>'
ca_file:
ca_path:
cert_file:
key_file:
username:
password:
token:
- name: zookeeper
polling: true
template_dir: /datadog/check_configs
template_url: '<KV_STORE_IP>:<KV_STORE_PORT>'
username:
password:
Luego, reinicia el Agent para aplicar el cambio de configuración.
Configurar en variables de entorno:
Si la base de datos clave-valor se ha activado como fuente de plantillas, el Agent busca plantillas con la clave /datadog/check_configs
. Autodiscovery espera una jerarquía clave-valor como la siguiente:
/datadog/
check_configs/
<CONTAINER_IDENTIFIER>/
- check_names: ["<INTEGRATION_NAME>"]
- init_configs: ["<INIT_CONFIG>"]
- instances: ["<INSTANCE_CONFIG>"]
...
Nota: Para aplicar una configuración específica a un contenedor determinado, Autodiscovery identifica los contenedores por imagen cuando usa las bases de dato clave-valor, intentando que <CONTAINER_IDENTIFIER>
coincida con .spec.containers[0].image
.