To find out if this integration is available in your organization, see your Datadog Integrations page or ask your organization administrator.
To initiate an exception request to enable this integration for your organization, email support@ddog-gov.com.
Overview
Get metrics from the external DNS service in real time to visualize and monitor DNS metrics collected with the Kubernetes external DNS Prometheus add on.
For more information about external DNS, see the Github repo.
Minimum Agent version: 7.17.0
Setup
Installation
The external DNS check is included in the Datadog Agent package, so you don’t need to install anything else on your servers.
Configuration
Edit the external_dns.d/conf.yaml file, in the conf.d/ folder at the root of your Agent’s configuration directory, to point to your server and port, and to set the masters to monitor. See the sample external_dns.d/conf.yaml for all available configuration options.
Using with service discovery
If you are using one Datadog Agent pod per Kubernetes worker node, choose one of the following Autodiscovery configurations for external-dns:
apiVersion: v1
kind: Pod
metadata:
annotations:
ad.datadoghq.com/external-dns.check_names: '["external_dns"]'
ad.datadoghq.com/external-dns.init_configs: '[{}]'
ad.datadoghq.com/external-dns.instances: '[{"prometheus_url":"http://%%host%%:7979/metrics", "tags":["externaldns-pod:%%host%%"]}]'
This example targets the ExternalDNS Deployment:
apiVersion: datadoghq.com/v1alpha1
kind: DatadogInstrumentation
metadata:
name: <CR_NAME>
namespace: <WORKLOAD_NAMESPACE>
spec:
targetRef:
apiVersion: apps/v1
kind: Deployment
name: external-dns
config:
checks:
- integration: external_dns
containerName: external-dns
initConfig: {}
instances:
- prometheus_url: "http://%%host%%:7979/metrics"
tags:
- "externaldns-pod:%%host%%"
For setup details, see Configure Autodiscovery with the DatadogInstrumentation CRD.
- The
externaldns-pod tag keeps track of the target DNS pod IP. The other tags are related to the Datadog Agent that is polling the information using the autodiscovery. - When using pod annotations, add them to the metadata of the template’s specification.
Validation
Run the Agent’s status subcommand and look for external_dns under the Checks section.
Data Collected
Metrics
| |
|---|
external_dns.controller.consecutive.soft.errors (gauge) | Number of consecutive soft errors in reconciliation loop Shown as error |
external_dns.controller.last_reconcile (gauge) | Timestamp of last reconcile attempt Shown as second |
external_dns.controller.last_sync (gauge) | Timestamp of last successful sync with the DNS provider Shown as second |
external_dns.registry.endpoints.total (gauge) | Number of registry endpoints Shown as resource |
external_dns.registry.errors.total (gauge) | Number of registry errors Shown as error |
external_dns.source.endpoints.total (gauge) | Number of source endpoints Shown as resource |
external_dns.source.errors.total (gauge) | Number of source errors Shown as error |
Events
The external DNS check does not include any events.
Service Checks
external_dns.prometheus.health
Returns CRITICAL if the check cannot access the metrics endpoint, otherwise returns OK.
Statuses: ok, critical
Troubleshooting
Need help? Contact Datadog support.