CoreDNS

Supported OS Linux

Intégration2.2.0

Présentation

Recueillez des métriques de CoreDNS en temps réel pour visualiser et surveiller les échecs de DNS et les hits et miss de cache.

Configuration

Installation

Le check CoreDNS est inclus avec le paquet de l’Agent Datadog : vous n’avez donc rien d’autre à installer sur vos serveurs.

Note : la version actuelle du check (1.11.0+) utilise OpenMetrics (OpenMetricsBaseCheckV2) pour la collecte de métriques, ce qui nécessite Python 3. Si votre host ne peut pas utiliser Python 3, ou si vous souhaitez utiliser l’ancienne version de ce check (OpenMetricsBaseCheckV1), consultez la configuration suivante. Les utilisateurs d’Autodiscovery se servant du fichier coredns.d/auto_conf.yaml n’ont toutefois pas besoin d’utiliser cette configuration, car ce fichier active par défaut l’option prometheus_url pour la version OpenMetricsBaseCheckV1 du check. Consultez le fichier d’exemple coredns.d/auto_conf.yaml pour découvrir les options de configuration par défaut et le fichier d’exemple coredns.d/conf.yaml.example pour découvrir toutes les options de configuration disponibles.

Remarque : la version OpenMetricsBaseCheckV2 du check CoreDNS envoie désormais les métriques .bucket et les échantillons d’histogramme .sum et .count sous la forme de counts monotones. Ces métriques étaient auparavant transmises sous la forme de gauges avec le check OpenMetricsBaseCheckV1. Consultez le fichier metadata.csv pour consulter la liste des métriques disponibles pour chaque version.

Procédure à suivre

Docker

Pour configurer ce check lorsque l’Agent est exécuté sur un conteneur :

Collecte de métriques

Définissez des modèles d’intégration Autodiscovery en tant qu’étiquettes Docker sur votre conteneur d’application :

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%%"]}]'

Pour activer l’ancienne version du check (OpenMetricsBaseCheckV1), remplacez openmetrics_endpoint par prometheus_url :

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

Remarques :

  • Le fichier coredns.d/auto_conf.yaml transmis active par défaut l’option de l’ancien check OpenMetricsBaseCheckV1, à savoir prometheus_url.
  • Le tag dns-pod surveille l’IP du pod DNS cible. Les autres tags sont associés au dd-agent qui interroge les informations à l’aide de la découverte de services.
  • Les annotations de découverte de services doivent être effectuées sur le pod. En cas de déploiement, ajoutez les annotations aux métadonnées des spécifications du modèle. Ne les ajoutez pas au niveau des spécifications extérieures.

Collecte de logs

La collecte des logs est désactivée par défaut dans l’Agent Datadog. Pour l’activer, consultez la section Collecte de logs avec Docker.

Définissez ensuite des [intégrations de logs][5] en tant qu’étiquettes Docker :

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

Kubernetes

Pour configurer ce check lorsque l’Agent est exécuté sur Kubernetes :

Collecte de métriques

Définissez des modèles d’intégration Autodiscovery en tant qu’annotations de pod sur votre conteneur d’application. Vous pouvez également configurer des modèles avec un fichier, une configmap ou un stockage key/value.

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

Pour activer l’ancienne version du check (OpenMetricsBaseCheckV1), remplacez openmetrics_endpoint par prometheus_url :

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

Remarques :

  • Le fichier coredns.d/auto_conf.yaml transmis active par défaut l’option de l’ancien check OpenMetricsBaseCheckV1, à savoir prometheus_url.
  • Le tag dns-pod correspond à l’IP du pod DNS cible. Les autres tags sont associés à l’Agent Datadog qui interroge les informations à l’aide de la découverte de services.
  • Les annotations de découverte de services doivent être effectuées sur le pod. En cas de déploiement, ajoutez les annotations aux métadonnées des spécifications du modèle. Ne les ajoutez pas au niveau des spécifications extérieures.

Collecte de logs

La collecte des logs est désactivée par défaut dans l’Agent Datadog. Pour l’activer, consultez la section Collecte de logs avec Kubernetes.

Définissez ensuite des intégrations de logs en tant qu’annotations de pod. Cette configuration peut également être réalisée avec un fichier, une configmap ou un stockage key/value.

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

ECS

Pour configurer ce check lorsque l’Agent est exécuté sur ECS :

Collecte de métriques

Définissez des modèles d’intégration Autodiscovery en tant qu’étiquettes Docker sur votre conteneur d’application :

{
  "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%%\"]}]"
    }
  }]
}

Pour activer l’ancienne version du check (OpenMetricsBaseCheckV1), remplacez openmetrics_endpoint par prometheus_url :

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

Remarques :

  • Le fichier coredns.d/auto_conf.yaml transmis active par défaut l’option de l’ancien check OpenMetricsBaseCheckV1, à savoir prometheus_url.
  • Le tag dns-pod correspond à l’IP du pod DNS cible. Les autres tags sont associés à l’Agent Datadog qui interroge les informations à l’aide de la découverte de services.
  • Les annotations de découverte de services doivent être effectuées sur le pod. En cas de déploiement, ajoutez les annotations aux métadonnées des spécifications du modèle. Ne les ajoutez pas au niveau des spécifications extérieures.
Collecte de logs

La collecte des logs est désactivée par défaut dans l’Agent Datadog. Pour l’activer, consultez la section Collecte de logs Amazon ECS.

Définissez ensuite des [intégrations de logs][5] en tant qu’étiquettes Docker :

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

Validation

Lancez la sous-commande status de l’Agent et cherchez coredns dans la section Checks.

Données collectées

Métriques

Événements

Le check CoreDNS n’inclut aucun événement.

Checks de service

Dépannage

Besoin d’aide ? Contactez l’assistance Datadog.

PREVIEWING: may/embedded-workflows