The PowerDNS Recursor is a high-end, high-performance resolving name server. Utilizing multiple processors and supporting the same powerful scripting ability of the Authoritative Server, the Recursor delivers top performance while retaining the flexibility modern DNS deployments require.

Prerequisite

  1. Edit the configuration file in /etc/powerdns/recursor.conf and set the values as follows:
webserver=yes
api-key=<api key>            # only available since ver 4.0
webserver-readonly=yes       # default no
  1. Add the api-key and serverid in auto-monitoring.yaml file in /opt/opsramp/agent/conf/app/metrics/powerdnsrec
  2. For Virtual machines, install the Linux agent.

Configuring the credentials

Configure the credentials in the directory /opt/opsramp/agent/conf/app.d/creds.yaml

powerdnsrecursor:
- name: powerdnsrecursor
  user: <username>
  pwd: <Password>
  encoding-type: plain
  labels:
    key1: val1
    key2: val2
  

Configuring the application

Virtual machine

Configure the application in the directory /opt/opsramp/agent/conf/app/discovery/auto-detection.yaml

- name: powerdnsrecursor
  instance-checks:
    service-check:
      - pdns-recursor
    process-check:
      - pdns-recursor
    port-check:
      - 8082
  

Docker environment

Configure the application in the directory /opt/opsramp/agent/conf/app/discovery/auto-container-detection.yaml

- name: powerdnsrecursor
  container-checks:
    image-check:
      - powerdns
    port-check:
      - 8082
  

Kubernetes environment

Configure the application in config.yaml

- name: powerdnsrecursor
  container-checks:
    image-check:
      - powerdns
    port-check:
      - 8082
  

Validate

Go to Resources under the Infrastructure tab to check if your resources are onboarded and the metrics are collected.

Metrics

OpsRamp MetricMetric Display NameUnit
powerdns_recursor_answers_slow

Number of queries NOT answered within 1 second
Answers Slow
powerdns_recursor_answers0_1

Number of queries answered within 1 millisecond
Answers0 To 1
powerdns_recursor_answers1_10

Number of queries answered within 10 milliseconds
Answers1 To 10
powerdns_recursor_answers10_100

Number of queries answered within 100 milliseconds
Answers10 To 100
powerdns_recursor_answers100_1000

Number of queries answered within 1 second
Answers100 To 1000
powerdns_recursor_auth4_answers_slow

Number of queries NOT answered by auth4s within 1 second
Auth4 Answers Slow
powerdns_recursor_auth4_answers0_1

Number of queries answered by auth4s within 1 millisecond
Auth4 Answers0 To 1
powerdns_recursor_auth4_answers1_10

Number of queries answered by auth4s within 10 milliseconds
Auth4 Answers1 To 10
powerdns_recursor_auth4_answers10_100

Number of queries answered by auth4s within 100 milliseconds
Auth4 Answers10 To 100
powerdns_recursor_auth4_answers100_1000

Number of queries answered by auth4s within 1 second
Auth4 Answers100 To 1000
powerdns_recursor_auth6_answers_slow

Number of queries NOT answered by auth6s within 1 second
Auth6 Answers Slow
powerdns_recursor_auth6_answers0_1

Number of queries answered by auth6s within 1 millisecond
Auth6 Answers0 To 1
powerdns_recursor_auth6_answers1_10

Number of queries answered by auth6s within 10 milliseconds
Auth6 Answers1 To 10
powerdns_recursor_auth6_answers10_100

Number of queries answered by auth6s within 100 milliseconds
Auth6 Answers10 To 100
powerdns_recursor_auth6_answers100_1000

Number of queries answered by auth6s within 1 second
Auth6 Answers100 To 1000
powerdns_recursor_cache_entries

Number of cache hits
Cache Entries
powerdns_recursor_cache_hits

Number of cache misses
Cache Hits
powerdns_recursor_cache_misses

Number of cache misses
Cache Misses
powerdns_recursor_case_mismatches

Number of cache mismatches
Case Mismatches
powerdns_recursor_chain_resends

Number of queries chained to existing outstanding query
Chain Resends
powerdns_recursor_client_parse_errors

Number of Client Parse Errors
Client Parse Errors
powerdns_recursor_concurrent_queries

Number of Concurrent Queries
Concurrent Queries
powerdns_recursor_dlg_only_drops

Number of Dlg Only Drops
Dlg Only Drops
powerdns_recursor_dnssec_queries

Number of Dnssec Queries
Dnssec Queries
powerdns_recursor_dnssec_result_bogus

Number of DNSSEC validations that had the Bogus state
Dnssec Result Bogus
powerdns_recursor_dnssec_result_indeterminate

Number of DNSSEC validations that had the Indeterminate state
Dnssec Result Indeterminate
powerdns_recursor_dnssec_result_insecure

Number of DNSSEC validations that had the Insecure state
Dnssec Result Insecure
powerdns_recursor_dnssec_result_nta

Number of DNSSEC validations that had the NTA (negative trust anchor) state
Dnssec Result Nta
powerdns_recursor_dnssec_result_secure

Number of DNSSEC validations that had the Secure state
Dnssec Result Secure
powerdns_recursor_dnssec_validations

Number of DNSSEC validations performed
Dnssec Validations
powerdns_recursor_dont_outqueries

Dont Outqueries
Dont Outqueries
powerdns_recursor_edns_ping_matches

Number of servers that sent a valid EDNS PING response
Edns Ping Matches
powerdns_recursor_edns_ping_mismatches

Number of servers that sent an invalid EDNS PING response
Edns Ping Mismatches
powerdns_recursor_failed_host_entries

Number of Failed Host Entries
Failed Host Entries
powerdns_recursor_ignored_packets

Number of Ignored Packets
Ignored Packets
powerdns_recursor_ipv6_outqueries

Number of Ipv6 Outqueries
Ipv6 Outqueries
powerdns_recursor_ipv6_questions

Number of Ipv6 Questions
Ipv6 Questions
powerdns_recursor_max_mthread_stack

Number of Max Mthread Stack
Max Mthread Stack
powerdns_recursor_negcache_entries

Number of Negcache Entries
Negcache Entries
powerdns_recursor_no_packet_error

Number of No Packet Error
No Packet Error
powerdns_recursor_noedns_outqueries

Number of Noedns Outqueries
Noedns Outqueries
powerdns_recursor_noerror_answers

Number of Noerror Answers
Noerror Answers
powerdns_recursor_noping_outqueries

Number of Noping Outqueries
Noping Outqueries
powerdns_recursor_nsset_invalidations

Number of Nsset Invalidations
Nsset Invalidations
powerdns_recursor_nsspeeds_entries

Number of Nsspeeds Entries
Nsspeeds Entries
powerdns_recursor_nxdomain_answers

Number of Nxdomain Answers
Nxdomain Answers
powerdns_recursor_outgoing_timeouts

Number of timeouts for outgoing IPv4/pv6 queries
Outgoing Timeouts
powerdns_recursor_outgoing4_timeouts

Number of timeouts for outgoing UDP IPv4 queries
Outgoing4 Timeouts
powerdns_recursor_outgoing6_timeouts

Number of timeouts for outgoing UDP IPv6 queries
Outgoing6 Timeouts
powerdns_recursor_over_capacity_drops

Number of questions dropped due to having reached concurrent query limit
Over Capacity Drops
powerdns_recursor_packetcache_entries

Number of entries in the packet cache
Packetcache Entries
powerdns_recursor_packetcache_hits

Number of hits in the packet cache
Packetcache Hits
powerdns_recursor_packetcache_misses

Number of misses in the packet cache
Packetcache Misses
powerdns_recursor_policy_drops

Number of packets dropped because of Lua policy decision
Policy Drops
powerdns_recursor_policy_result_custom

Number of packets that were sent a custom answer by the RPZ/filter engine
Policy Result Custom
powerdns_recursor_policy_result_drop

Number of packets that were not actioned upon by the RPZ/filter engine
Policy Result Drop
powerdns_recursor_policy_result_noaction

Number of packets dropped by the RPZ/filter engine
Policy Result Noaction
powerdns_recursor_policy_result_nodata

Number of packets that were replied to with NXDOMAIN by the RPZ/filter engine
Policy Result Nodata
powerdns_recursor_policy_result_nxdomain

Number of packets that were replied to with NODATA by the RPZ/filter engine
Policy Result Nxdomain
powerdns_recursor_policy_result_truncate

Number of packets that were forced to TCP by the RPZ/filter engine
Policy Result Truncate
powerdns_recursor_qa_latency

Number of Qa Latency
Qa Latencymicrosecond
powerdns_recursor_questions

Number of Questions
Questions
powerdns_recursor_real_memory_usage

Number of Real Memory Usage
Real Memory Usage
powerdns_recursor_resource_limits

Number of Resource Limits
Resource Limits
powerdns_recursor_security_status

Security Status
Security Status
powerdns_recursor_server_parse_errors

Number of Server Parse Errors
Server Parse Errors
powerdns_recursor_servfail_answers

Number of Servfail Answers
Servfail Answers
powerdns_recursor_spoof_prevents

Number of Spoof Prevents
Spoof Prevents
powerdns_recursor_sys_msec

Number of Sys Msec
Sys Msecminutes
powerdns_recursor_tcp_client_overflow

Number of outgoing queries dropped per second because of 'dont query' setting
Tcp Client Overflow
powerdns_recursor_tcp_clients

Number of active TCP/IP clients
Tcp Clients
powerdns_recursor_tcp_outqueries

Number of outgoing TCP queries
Tcp Outqueries
powerdns_recursor_tcp_questions

Number of entries in the throttle map
Tcp Questions
powerdns_recursor_throttle_entries

Number of entries in the throttle map
Throttle Entries
powerdns_recursor_throttled_out

Number of throttled outgoing UDP queries
Throttled Out
powerdns_recursor_throttled_outqueries

Number of outqueries in the throttle map
Throttled Outqueries
powerdns_recursor_too_old_drops

Number of questions that were dropped because they were too old
Too Old Drops
powerdns_recursor_udp_in_errors

Number of packets that were received faster than the OS could process them
Udp In Errors
powerdns_recursor_udp_noport_errors

Number of UDP packets where an ICMP response was received saying the remote port was not listening
Udp Noport Errors
powerdns_recursor_udp_recvbuf_errors

Number of errors caused in the UDP receive buffer
Udp Recvbuf Errors
powerdns_recursor_udp_sndbuf_errors

Number of errors caused in the UDP send buffer
Udp Sndbuf Errors
powerdns_recursor_unauthorized_tcp

Number of TCP questions denied because of allow-from restrictions
Unauthorized Tcp
powerdns_recursor_unauthorized_udp

Number of UDP questions denied because of allow-from restrictions
Unauthorized Udp
powerdns_recursor_unexpected_packets

Number of unexpected answers from remote servers
Unexpected Packets
powerdns_recursor_unreachables

Number times nameservers were unreachable
Unreachables
powerdns_recursor_uptime

Number of seconds PowerDNS has been running
Uptime
powerdns_recursor_user_msec

Number of CPU milliseconds spent in 'user' mode
User Msecmillisecond
powerdns_recursor_all_outqueries

Number of outgoing udp queries
All Outqueries