Skip to main content

PowerDNS Recursor

PowerDNS Recursor

Plugin: go.d.plugin Module: powerdns_recursor

Maintained by Netdata

Overview​

This collector monitors PowerDNS Recursor instances.

It collects metrics from the internal webserver.

Used endpoints:

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.

Setup​

You can configure the powerdns_recursor collector in two ways:

MethodBest forHow to
UIFast setup without editing filesGo to Nodes → Configure this node → Collectors → Jobs, search for powerdns_recursor, then click + to add a job.
FileIf you prefer configuring via file, or need to automate deployments (e.g., with Ansible)Edit go.d/powerdns_recursor.conf and add a job.
important

UI configuration requires paid Netdata Cloud plan.

Prerequisites​

Enable webserver​

Follow webserver documentation.

Enable HTTP API​

Follow HTTP API documentation.

Configuration​

Options​

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

Config options
GroupOptionDescriptionDefaultRequired
Collectionupdate_everyData collection interval (seconds).1no
autodetection_retryAutodetection retry interval (seconds). Set 0 to disable.0no
TargeturlTarget endpoint URL.http://127.0.0.1:8081yes
timeoutHTTP request timeout (seconds).1no
HTTP AuthusernameUsername for Basic HTTP authentication.no
passwordPassword for Basic HTTP authentication.no
bearer_token_filePath to a file containing a bearer token (used for Authorization: Bearer).no
TLStls_skip_verifySkip TLS certificate and hostname verification (insecure).nono
tls_caPath to CA bundle used to validate the server certificate.no
tls_certPath to client TLS certificate (for mTLS).no
tls_keyPath to client TLS private key (for mTLS).no
Proxyproxy_urlHTTP proxy URL.no
proxy_usernameUsername for proxy Basic HTTP authentication.no
proxy_passwordPassword for proxy Basic HTTP authentication.no
RequestmethodHTTP method to use.GETno
bodyRequest body (e.g., for POST/PUT).no
headersAdditional HTTP headers (one per line as key: value).no
not_follow_redirectsDo not follow HTTP redirects.nono
force_http2Force HTTP/2 (including h2c over TCP).nono
Virtual NodevnodeAssociates this data collection job with a Virtual Node.no

via UI​

Configure the powerdns_recursor collector from the Netdata web interface:

  1. Go to Nodes.
  2. Select the node where you want the powerdns_recursor data-collection job to run and click the ⚙ (Configure this node). That node will run the data collection.
  3. The Collectors → Jobs view opens by default.
  4. In the Search box, type powerdns_recursor (or scroll the list) to locate the powerdns_recursor collector.
  5. Click the + next to the powerdns_recursor collector to add a new job.
  6. Fill in the job fields, then click Test to verify the configuration and Submit to save.
    • Test runs the job with the provided settings and shows whether data can be collected.
    • If it fails, an error message appears with details (for example, connection refused, timeout, or command execution errors), so you can adjust and retest.

via File​

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

The file format is YAML. Generally, the structure is:

update_every: 1
autodetection_retry: 0
jobs:
- name: some_name1
- name: some_name2

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/powerdns_recursor.conf
Examples​
Basic​

An example configuration.

Config
jobs:
- name: local
url: http://127.0.0.1:8081

HTTP authentication​

Basic HTTP authentication.

Config
jobs:
- name: local
url: http://127.0.0.1:8081
username: admin
password: password

Multi-instance​

Note: When you define multiple jobs, their names must be unique.

Local and remote instances.

Config
jobs:
- name: local
url: http://127.0.0.1:8081

- name: remote
url: http://203.0.113.0:8081

Alerts​

There are no alerts configured by default for this integration.

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 PowerDNS Recursor instance​

These metrics refer to the entire monitored application.

This scope has no labels.

Metrics:

MetricDescriptionDimensionsUnit
powerdns_recursor.questions_inIncoming questionstotal, tcp, ipv6questions/s
powerdns_recursor.questions_outOutgoing questionsudp, tcp, ipv6, throttledquestions/s
powerdns_recursor.answer_timeQueries answered within a time range0-1ms, 1-10ms, 10-100ms, 100-1000ms, slowqueries/s
powerdns_recursor.timeoutsTimeouts on outgoing UDP queriestotal, ipv4, ipv6timeouts/s
powerdns_recursor.dropsDropsover-capacity-drops, query-pipe-full-drops, too-old-drops, truncated-drops, empty-queriesdrops/s
powerdns_recursor.cache_usageCache Usagecache-hits, cache-misses, packet-cache-hits, packet-cache-missesevents/s
powerdns_recursor.cache_sizeCache Sizecache, packet-cache, negative-cacheentries

Troubleshooting​

Diagnostics​

Debug Mode​

Important: Debug mode is not supported for data collection jobs created via the UI using the Dyncfg feature.

To troubleshoot issues with the powerdns_recursor 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 powerdns_recursor

    To debug a specific job:

    ./go.d.plugin -d -m powerdns_recursor -j jobName

Getting Logs​

If you're encountering problems with the powerdns_recursor collector, follow these steps to retrieve logs and identify potential issues:

  • Run the command specific to your system (systemd, non-systemd, or Docker container).
  • Examine the output for any warnings or error messages that might indicate issues. These messages should provide clues about the root cause of the problem.
System with systemd​

Use the following command to view logs generated since the last Netdata service restart:

journalctl _SYSTEMD_INVOCATION_ID="$(systemctl show --value --property=InvocationID netdata)" --namespace=netdata --grep powerdns_recursor
System without systemd​

Locate the collector log file, typically at /var/log/netdata/collector.log, and use grep to filter for collector's name:

grep powerdns_recursor /var/log/netdata/collector.log

Note: This method shows logs from all restarts. Focus on the latest entries for troubleshooting current issues.

Docker Container​

If your Netdata runs in a Docker container named "netdata" (replace if different), use this command:

docker logs netdata 2>&1 | grep powerdns_recursor

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