Supported OS

Versión de la integración5.1.0

Información general

Obtén métricas de CoreDNS en tiempo real para visualizar y monitorizar fallos DNS y aciertos o fallos de caché.

Configuración

A partir de la versión 1.11.0, esta integración basada en OpenMetrics cuenta con un modo más reciente (que se activa configurando openmetrics_endpoint para que apunte al endpoint de destino) y un modo heredado (que se activa configurando prometheus_url). Para obtener todas las funciones más actualizadas, Datadog recomienda activar el modo más reciente. Para obtener más información, consulta Versiones más recientes y heredadas de integraciones basadas en OpenMetrics.

El último modo del check de CoreDNS requiere Python 3, envía métricas de .bucket y también envía muestras del histograma .sum y .count como tipo de recuento monotónico. Antes, estas métricas se enviaban como tipo gauge en el modo heredado. Para ver la lista de métricas disponibles en cada modo, consulta el archivometadata.csv.

Para los hosts que no puedan utilizar Python 3, o si previamente has implementado este modo de integración, consulta el ejemplo de configuración del modo legacy. Para los usuarios de Autodiscovery que dependen del archivo coredns.d/auto_conf.yaml, este habilita por defecto la opción prometheus_url del modo legacy del check. Consulta el coredns.d/auto_conf.yaml de ejemplo, para ver las opciones de configuración por defecto, y el coredns.d/conf.yaml.example de ejemplo, para ver todas las opciones de configuración disponibles.

Instalación

El check de CoreDNS está incluido en el paquete del Datadog Agent, por lo que no necesitas instalar nada más en tus servidores.

Configuración

Docker

Para configurar este check para un Agent que se ejecuta en un contenedor:

Recopilación de métricas

Configura plantillas de integraciones de Autodiscovery como etiquetas (labels) Docker en el contenedor de tu aplicación:

LABEL "com.datadoghq.ad.check_names"='["coredns"]'
LABEL "com.datadoghq.ad.init_configs"='[{}]'
LABEL "com.datadoghq.ad.instances"='[{"openmetrics_endpoint":"http://%%host%%:9153/metrics", "tags":["dns-pod:%%host%%"]}]'

Para activar el modo heredado de este check basado en OpenMetrics, sustituye openmetrics_endpoint por prometheus_url:

LABEL "com.datadoghq.ad.instances"='[{"prometheus_url":"http://%%host%%:9153/metrics", "tags":["dns-pod:%%host%%"]}]' 

Notas:

  • El archivo coredns.d/auto_conf.yaml enviado activa la opción prometheus_url por defecto del modo heredado.
  • La etiqueta (tag) dns-pod realiza un seguimiento de la IP del pod DNS de destino. Las otras etiquetas (tags) están relacionadas con el Datadog Agent que sondea la información utilizando la detección de servicios.
  • Las anotaciones de detección de servicios deben realizarse en el pod. En caso de despliegue, añade las anotaciones a los metadatos de las especificaciones de la plantilla. No las añadas en el nivel de especificación externo.

Recopilación de logs

La recopilación de logs se encuentra deshabilitada de manera predeterminada en el Datadog Agent. Para habilitarla, consulta la recopilación de logs de Docker.

Luego, configura integraciones de logs como etiquetas Docker:

LABEL "com.datadoghq.ad.logs"='[{"source":"coredns","service":"<SERVICE_NAME>"}]'

Kubernetes

Para Configurar este check para un Agent que se ejecuta en Kubernetes:

Recopilación de métricas

Configura plantillas de integraciones Autodiscovery como anotaciones de pod en tu contenedor de aplicación. Las plantillas también se pueden configurar con un archivo, un configmap o un almacén de clave-valor.

Anotaciones v1 (para el Datadog Agent v7.36 o anterior)

apiVersion: v1
kind: Pod
metadata:
  name: coredns
  annotations:
    ad.datadoghq.com/coredns.check_names: '["coredns"]'
    ad.datadoghq.com/coredns.init_configs: '[{}]'
    ad.datadoghq.com/coredns.instances: |
      [
        {
          "openmetrics_endpoint": "http://%%host%%:9153/metrics", 
          "tags": ["dns-pod:%%host%%"]
        }
      ]      
  labels:
    name: coredns
spec:
  containers:
    - name: coredns

Anotaciones v2 (para el Datadog Agent v7.36 o posterior)

apiVersion: v1
kind: Pod
metadata:
  name: coredns
  annotations:
    ad.datadoghq.com/coredns.checks: |
      {
        "coredns": {
          "init_config": {},
          "instances": [
            {
              "openmetrics_endpoint": "http://%%host%%:9153/metrics", 
              "tags": ["dns-pod:%%host%%"]
            }
          ]
        }
      }      
  labels:
    name: coredns
spec:
  containers:
    - name: coredns

Para activar el modo heredado de este check basado en OpenMetrics, sustituye openmetrics_endpoint por prometheus_url:

Anotaciones v1 (para el Datadog Agent v7.36 o anterior)

    ad.datadoghq.com/coredns.instances: |
      [
        {
          "prometheus_url": "http://%%host%%:9153/metrics", 
          "tags": ["dns-pod:%%host%%"]
        }
      ]      

Anotaciones v2 (para el Datadog Agent v7.36 o posterior)

          "instances": [
            {
              "prometheus_url": "http://%%host%%:9153/metrics", 
              "tags": ["dns-pod:%%host%%"]
            }
          ]

Notas:

  • El archivo coredns.d/auto_conf.yaml enviado activa la opción prometheus_url por defecto del modo heredado.
  • La etiqueta (tag) dns-pod realiza un seguimiento de la IP del pod DNS de destino. Las otras etiquetas (tags) están relacionadas con el Datadog Agent que sondea la información utilizando la detección de servicios.
  • Las anotaciones de detección de servicios deben realizarse en el pod. En caso de despliegue, añade las anotaciones a los metadatos de las especificaciones de la plantilla. No las añadas en el nivel de especificación externo.

Recopilación de logs

La recopilación de logs se encuentra deshabilitada de manera predeterminada en el Datadog Agent. Para habilitarla, consulta la recopilación de logs de Kubernetes.

Luego, configura las integraciones de logs como anotaciones de pod. Esto también se puede configurar con un archivo, un mapa de configuración o un almacén de clave-valor.

Anotaciones v1/v2

apiVersion: v1
kind: Pod
metadata:
  name: coredns
  annotations:
    ad.datadoghq.com/coredns.logs: '[{"source": "coredns", "service": "<SERVICE_NAME>"}]'
  labels:
    name: coredns

ECS

Para configurar este check para un Agent que se ejecuta en ECS:

Recopilación de métricas

Configura plantillas de integraciones de Autodiscovery como etiquetas (labels) Docker en el contenedor de tu aplicación:

{
  "containerDefinitions": [{
    "name": "coredns",
    "image": "coredns:latest",
    "dockerLabels": {
      "com.datadoghq.ad.check_names": "[\"coredns\"]",
      "com.datadoghq.ad.init_configs": "[{}]",
      "com.datadoghq.ad.instances": "[{\"openmetrics_endpoint\":\"http://%%host%%:9153/metrics\", \"tags\":[\"dns-pod:%%host%%\"]}]"
    }
  }]
}

Para activar el modo heredado de este check basado en OpenMetrics, sustituye openmetrics_endpoint por prometheus_url:

      "com.datadoghq.ad.instances": "[{\"prometheus_url\":\"http://%%host%%:9153/metrics\", \"tags\":[\"dns-pod:%%host%%\"]}]"

Notas:

  • El archivo coredns.d/auto_conf.yaml enviado activa la opción prometheus_url por defecto del modo heredado.
  • La etiqueta (tag) dns-pod realiza un seguimiento de la IP del pod DNS de destino. Las otras etiquetas (tags) están relacionadas con el Datadog Agent que sondea la información utilizando la detección de servicios.
  • Las anotaciones de detección de servicios deben realizarse en el pod. En caso de despliegue, añade las anotaciones a los metadatos de las especificaciones de la plantilla. No las añadas en el nivel de especificación externo.
Recopilación de logs

La recopilación de logs se encuentra deshabilitada de manera predeterminada en el Datadog Agent. Para habilitarla, consulta la recopilación de logs de ECS.

Luego, configura integraciones de logs como etiquetas Docker:

{
  "containerDefinitions": [{
    "name": "coredns",
    "image": "coredns:latest",
    "dockerLabels": {
      "com.datadoghq.ad.logs": "[{\"source\":\"coredns\",\"service\":\"<SERVICE_NAME>\"}]"
    }
  }]
}

Validación

Ejecuta el subcomando de status del Agent y busca coredns en la sección Checks.

Datos recopilados

Métricas

Eventos

El check de CoreDNS no incluye eventos.

Checks de servicio

Solucionar problemas

¿Necesitas ayuda? Ponte en contacto con el servicio de asistencia de Datadog.

Referencias adicionales

Documentación útil adicional, enlaces y artículos:

PREVIEWING: may/embedded-workflows