Skip to main content

DNS query

Plugin: go.d.plugin Module: dns_query

Overview

This module monitors DNS query round-trip time (RTT).

This collector is supported on all platforms.

This collector supports collecting metrics from multiple instances of this integration, including remote instances.

Default Behavior

Auto-Detection

This integration doesn't support auto-detection.

Limits

The default configuration for this integration does not impose any limits on data collection.

Performance Impact

The default configuration for this integration is not expected to impose a significant performance impact on the system.

Metrics

Metrics grouped by scope.

The scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.

Per server

These metrics refer to the DNS server.

Labels:

LabelDescription
serverDNS server address.
networkNetwork protocol name (tcp, udp, tcp-tls).
record_typeDNS record type (e.g. A, AAAA, CNAME).

Metrics:

MetricDimensionsUnit
dns_query.query_statussuccess, network_error, dns_errorstatus
dns_query.query_timequery_timeseconds

Alerts

The following alerts are available:

Alert nameOn metricDescription
dns_query_query_status dns_query.query_statusDNS request type ${label:record_type} to server ${label:server} is unsuccessful

Setup

Prerequisites

No action required.

Configuration

File

The configuration file name for this integration is go.d/dns_query.conf.

You can edit the configuration file using the edit-config script from the Netdata config directory.

cd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata
sudo ./edit-config go.d/dns_query.conf

Options

The following options can be defined globally: update_every, autodetection_retry.

All options
NameDescriptionDefaultRequired
update_everyData collection frequency.1no
autodetection_retryRecheck interval in seconds. Zero means no recheck will be scheduled.0no
domainsDomain or subdomains to query. The collector will choose a random domain from the list on every iteration.yes
serversServers to query.yes
portDNS server port.53no
networkNetwork protocol name. Available options: udp, tcp, tcp-tls.udpno
record_typesQuery record type. Available options: A, AAAA, CNAME, MX, NS, PTR, TXT, SOA, SPF, TXT, SRV.Ano
timeoutQuery read timeout.2no

Examples

Basic

An example configuration.

Config
jobs:
- name: job1
record_types:
- A
- AAAA
domains:
- google.com
- github.com
- reddit.com
servers:
- 8.8.8.8
- 8.8.4.4

Troubleshooting

Debug Mode

To troubleshoot issues with the dns_query collector, run the go.d.plugin with the debug option enabled. The output should give you clues as to why the collector isn't working.

  • Navigate to the plugins.d directory, usually at /usr/libexec/netdata/plugins.d/. If that's not the case on your system, open netdata.conf and look for the plugins setting under [directories].

    cd /usr/libexec/netdata/plugins.d/
  • Switch to the netdata user.

    sudo -u netdata -s
  • Run the go.d.plugin to debug the collector:

    ./go.d.plugin -d -m dns_query

Do you have any feedback for this page? If so, you can open a new issue on our netdata/learn repository.