Cuando el Agent se ejecuta como un contenedor, Autodiscovery intenta descubrir otros contenedores basándose en archivos de configuración predeterminados llamados auto_conf.yaml. Puede encontrar estos archivos en las carpetas conf.d/<INTEGRATION>.d/ correspondientes para las siguientes integraciones:

Los archivos de configuración auto_conf.yaml cubren todos los parámetros necesarios para configurar una integración específica, con sus correspondientes Variables de plantillas de Autodiscovery implementadas para tener en cuenta el entorno en contenedores.

Anular la configuración automática

Cada archivo auto_conf.yaml proporciona una configuración predeterminada. Para anular esto en Kubernetes, puede agregar una configuración personalizada en anotaciones de Kubernetes o usar el DatadogInstrumentation recurso personalizado. Para Docker, use etiquetas de Docker.

Las anotaciones de Kubernetes tienen prioridad sobre los recursos DatadogInstrumentation y los archivos auto_conf.yaml. Los recursos DatadogInstrumentation tienen prioridad sobre los archivos auto_conf.yaml, y los archivos auto_conf.yaml tienen prioridad sobre la configuración de Autodiscovery establecida en Datadog Operator y los charts de Helm. Para usar Datadog Operator o Helm para configurar Autodiscovery para una integración en la tabla de esta página, debe deshabilitar la configuración automática.

Deshabilitar la configuración automática

Los siguientes ejemplos deshabilitan la configuración automática para las integraciones de Redis e Istio.

En su datadog-agent.yaml, use override.nodeAgent.containers.agent.env para establecer la variable de entorno DD_IGNORE_AUTOCONF en el contenedor agent.

apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
  name: datadog
spec:
  global:
    credentials:
      apiKey: <DATADOG_API_KEY>

  override:
    nodeAgent:
      containers: 
        agent:
          env:
            - name: DD_IGNORE_AUTOCONF
              value: "redisdb istio"

Luego, aplique la nueva configuración.

Agregue datadog.ignoreAutoconfig a su datadog-values.yaml:

datadog:
  #List of integration(s) to ignore auto_conf.yaml.
  ignoreAutoConfig:
    - redisdb
    - istio

Para deshabilitar la(s) integración(es) de configuración automática con su agente en contenedores (DaemonSet manual, Docker, ECS), agregue la variable de entorno DD_IGNORE_AUTOCONF:

DD_IGNORE_AUTOCONF="redisdb istio"

Detección de configuración

A partir de la versión 7.82 del Agent, varias integraciones (por ejemplo, Pulsar) incluyen archivos auto_conf.yaml que contienen un campo discovery y una lista instances vacía. En estos casos, el Agent intenta crear una configuración válida para la integración en tiempo de ejecución examinando el servicio. Cada integración define su propio método de descubrimiento. Por ejemplo, una integración puede sondear los puertos de contenedor expuestos en busca de un punto de conexión de métricas o usar el nombre del contenedor para distinguir componentes que comparten la misma imagen. Si se encuentra una configuración válida, el Agent programa una instancia de verificación.

Para evitar métricas duplicadas, el Agent omite el descubrimiento de configuración para una integración si existe:

  • cualquier instancia de la misma integración configurada para el mismo contenedor o a nivel del servidor
  • cualquier instancia de una verificación genérica de OpenMetrics o Prometheus configurada para el mismo contenedor
  • cualquier instancia a nivel del servidor de una verificación genérica de OpenMetrics o Prometheus que emita métricas bajo el mismo espacio de nombres raíz que la integración

Además, a partir de la versión 7.83 del Agent, todas las instancias de verificación creadas por este mecanismo incluyen la etiqueta dd_config_discovery:true en sus métricas. Use esta etiqueta para identificar o excluir estas métricas en las consultas.

Para evitar el descubrimiento de configuración para una integración, deshabilite su configuración automática.

Lecturas adicionales