powerdns_recursor

package
v0.54.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 6, 2023 License: GPL-3.0 Imports: 9 Imported by: 1

README

PowerDNS Recursor collector

Overview

PowerDNS Recursor is a high-performance DNS recursor with built-in scripting capabilities.

This collector monitors one or more PowerDNS Recursor instances, depending on your configuration.

It collects metrics from the internal webserver.

Used endpoints:

Collected 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.

global

These metrics refer to the entire monitored application.

This scope has no labels.

Metrics:

Metric Dimensions Unit
powerdns_recursor.questions_in total, tcp, ipv6 questions/s
powerdns_recursor.questions_out udp, tcp, ipv6, throttled questions/s
powerdns_recursor.answer_time 0-1ms, 1-10ms, 10-100ms, 100-1000ms, slow queries/s
powerdns_recursor.timeouts total, ipv4, ipv6 timeouts/s
powerdns_recursor.drops over-capacity-drops, query-pipe-full-drops, too-old-drops, truncated-drops, empty-queries drops/s
powerdns_recursor.cache_usage cache-hits, cache-misses, packet-cache-hits, packet-cache-misses events/s
powerdns_recursor.cache_size cache, packet-cache, negative-cache entries

Setup

Prerequisites
Enable webserver

Follow webserver documentation.

Enable HTTP API

Follow HTTP API documentation.

Configuration
File

The configuration file name is go.d/powerdns_recursor.conf.

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

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

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
Options

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

Config options
Name Description Default Required
update_every Data collection frequency. 5
autodetection_retry Re-check interval in seconds. Zero means not to schedule re-check. 0
url Server URL. http://127.0.0.1:8081 yes
timeout HTTP request timeout. 1
username Username for basic HTTP authentication.
password Password for basic HTTP authentication.
proxy_url Proxy URL.
proxy_username Username for proxy basic HTTP authentication.
proxy_password Password for proxy basic HTTP authentication.
method HTTP request method. GET
body HTTP request body.
headers HTTP request headers.
not_follow_redirects Redirect handling policy. Controls whether the client follows redirects. no
tls_skip_verify Server certificate chain and hostname validation policy. Controls whether the client performs this check. no
tls_ca Certification authority that the client uses when verifying the server's certificates.
tls_cert Client TLS certificate.
tls_key Client TLS key.
Examples
Basic

An example configuration.

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

An example configuration.

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

Troubleshooting

Debug mode

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
    

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Config

type Config struct {
	web.HTTP `yaml:",inline"`
}

type Recursor

type Recursor struct {
	module.Base
	Config `yaml:",inline"`
	// contains filtered or unexported fields
}

func New

func New() *Recursor

func (*Recursor) Charts

func (r *Recursor) Charts() *module.Charts

func (*Recursor) Check

func (r *Recursor) Check() bool

func (*Recursor) Cleanup

func (r *Recursor) Cleanup()

func (*Recursor) Collect

func (r *Recursor) Collect() map[string]int64

func (*Recursor) Init

func (r *Recursor) Init() bool

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL