github.com/netdata/go.d.plugin@v0.58.1/modules/powerdns_recursor/integrations/powerdns_recursor.md (about) 1 <!--startmeta 2 custom_edit_url: "https://github.com/netdata/go.d.plugin/edit/master/modules/powerdns_recursor/README.md" 3 meta_yaml: "https://github.com/netdata/go.d.plugin/edit/master/modules/powerdns_recursor/metadata.yaml" 4 sidebar_label: "PowerDNS Recursor" 5 learn_status: "Published" 6 learn_rel_path: "Data Collection/DNS and DHCP Servers" 7 most_popular: False 8 message: "DO NOT EDIT THIS FILE DIRECTLY, IT IS GENERATED BY THE COLLECTOR'S metadata.yaml FILE" 9 endmeta--> 10 11 # PowerDNS Recursor 12 13 14 <img src="https://netdata.cloud/img/powerdns.svg" width="150"/> 15 16 17 Plugin: go.d.plugin 18 Module: powerdns_recursor 19 20 <img src="https://img.shields.io/badge/maintained%20by-Netdata-%2300ab44" /> 21 22 ## Overview 23 24 This collector monitors PowerDNS Recursor instances. 25 26 It collects metrics from [the internal webserver](https://doc.powerdns.com/recursor/http-api/index.html#built-in-webserver-and-http-api). 27 28 Used endpoints: 29 30 - [`/api/v1/servers/localhost/statistics`](https://doc.powerdns.com/recursor/common/api/endpoint-statistics.html) 31 32 33 34 35 This collector is supported on all platforms. 36 37 This collector supports collecting metrics from multiple instances of this integration, including remote instances. 38 39 40 ### Default Behavior 41 42 #### Auto-Detection 43 44 This integration doesn't support auto-detection. 45 46 #### Limits 47 48 The default configuration for this integration does not impose any limits on data collection. 49 50 #### Performance Impact 51 52 The default configuration for this integration is not expected to impose a significant performance impact on the system. 53 54 55 ## Metrics 56 57 Metrics grouped by *scope*. 58 59 The scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels. 60 61 62 63 ### Per PowerDNS Recursor instance 64 65 These metrics refer to the entire monitored application. 66 67 This scope has no labels. 68 69 Metrics: 70 71 | Metric | Dimensions | Unit | 72 |:------|:----------|:----| 73 | powerdns_recursor.questions_in | total, tcp, ipv6 | questions/s | 74 | powerdns_recursor.questions_out | udp, tcp, ipv6, throttled | questions/s | 75 | powerdns_recursor.answer_time | 0-1ms, 1-10ms, 10-100ms, 100-1000ms, slow | queries/s | 76 | powerdns_recursor.timeouts | total, ipv4, ipv6 | timeouts/s | 77 | powerdns_recursor.drops | over-capacity-drops, query-pipe-full-drops, too-old-drops, truncated-drops, empty-queries | drops/s | 78 | powerdns_recursor.cache_usage | cache-hits, cache-misses, packet-cache-hits, packet-cache-misses | events/s | 79 | powerdns_recursor.cache_size | cache, packet-cache, negative-cache | entries | 80 81 82 83 ## Alerts 84 85 There are no alerts configured by default for this integration. 86 87 88 ## Setup 89 90 ### Prerequisites 91 92 #### Enable webserver 93 94 Follow [webserver](https://doc.powerdns.com/recursor/http-api/index.html#webserver) documentation. 95 96 97 #### Enable HTTP API 98 99 Follow [HTTP API](https://doc.powerdns.com/recursor/http-api/index.html#enabling-the-api) documentation. 100 101 102 103 ### Configuration 104 105 #### File 106 107 The configuration file name for this integration is `go.d/powerdns_recursor.conf`. 108 109 110 You can edit the configuration file using the `edit-config` script from the 111 Netdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory). 112 113 ```bash 114 cd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata 115 sudo ./edit-config go.d/powerdns_recursor.conf 116 ``` 117 #### Options 118 119 The following options can be defined globally: update_every, autodetection_retry. 120 121 122 <details><summary>Config options</summary> 123 124 | Name | Description | Default | Required | 125 |:----|:-----------|:-------|:--------:| 126 | update_every | Data collection frequency. | 5 | no | 127 | autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no | 128 | url | Server URL. | http://127.0.0.1:8081 | yes | 129 | timeout | HTTP request timeout. | 1 | no | 130 | username | Username for basic HTTP authentication. | | no | 131 | password | Password for basic HTTP authentication. | | no | 132 | proxy_url | Proxy URL. | | no | 133 | proxy_username | Username for proxy basic HTTP authentication. | | no | 134 | proxy_password | Password for proxy basic HTTP authentication. | | no | 135 | method | HTTP request method. | GET | no | 136 | body | HTTP request body. | | no | 137 | headers | HTTP request headers. | | no | 138 | not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no | 139 | tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no | 140 | tls_ca | Certification authority that the client uses when verifying the server's certificates. | | no | 141 | tls_cert | Client TLS certificate. | | no | 142 | tls_key | Client TLS key. | | no | 143 144 </details> 145 146 #### Examples 147 148 ##### Basic 149 150 An example configuration. 151 152 <details><summary>Config</summary> 153 154 ```yaml 155 jobs: 156 - name: local 157 url: http://127.0.0.1:8081 158 159 ``` 160 </details> 161 162 ##### HTTP authentication 163 164 Basic HTTP authentication. 165 166 <details><summary>Config</summary> 167 168 ```yaml 169 jobs: 170 - name: local 171 url: http://127.0.0.1:8081 172 username: admin 173 password: password 174 175 ``` 176 </details> 177 178 ##### Multi-instance 179 180 > **Note**: When you define multiple jobs, their names must be unique. 181 182 Local and remote instances. 183 184 185 <details><summary>Config</summary> 186 187 ```yaml 188 jobs: 189 - name: local 190 url: http://127.0.0.1:8081 191 192 - name: remote 193 url: http://203.0.113.0:8081 194 195 ``` 196 </details> 197 198 199 200 ## Troubleshooting 201 202 ### Debug Mode 203 204 To troubleshoot issues with the `powerdns_recursor` collector, run the `go.d.plugin` with the debug option enabled. The output 205 should give you clues as to why the collector isn't working. 206 207 - Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on 208 your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`. 209 210 ```bash 211 cd /usr/libexec/netdata/plugins.d/ 212 ``` 213 214 - Switch to the `netdata` user. 215 216 ```bash 217 sudo -u netdata -s 218 ``` 219 220 - Run the `go.d.plugin` to debug the collector: 221 222 ```bash 223 ./go.d.plugin -d -m powerdns_recursor 224 ``` 225 226