github.com/netdata/go.d.plugin@v0.58.1/modules/dnsdist/integrations/dnsdist.md (about)

     1  <!--startmeta
     2  custom_edit_url: "https://github.com/netdata/go.d.plugin/edit/master/modules/dnsdist/README.md"
     3  meta_yaml: "https://github.com/netdata/go.d.plugin/edit/master/modules/dnsdist/metadata.yaml"
     4  sidebar_label: "DNSdist"
     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  # DNSdist
    12  
    13  
    14  <img src="https://netdata.cloud/img/network-wired.svg" width="150"/>
    15  
    16  
    17  Plugin: go.d.plugin
    18  Module: dnsdist
    19  
    20  <img src="https://img.shields.io/badge/maintained%20by-Netdata-%2300ab44" />
    21  
    22  ## Overview
    23  
    24  This collector monitors DNSDist servers.
    25  
    26  
    27  
    28  
    29  This collector is supported on all platforms.
    30  
    31  This collector supports collecting metrics from multiple instances of this integration, including remote instances.
    32  
    33  
    34  ### Default Behavior
    35  
    36  #### Auto-Detection
    37  
    38  This integration doesn't support auto-detection.
    39  
    40  #### Limits
    41  
    42  The default configuration for this integration does not impose any limits on data collection.
    43  
    44  #### Performance Impact
    45  
    46  The default configuration for this integration is not expected to impose a significant performance impact on the system.
    47  
    48  
    49  ## Metrics
    50  
    51  Metrics grouped by *scope*.
    52  
    53  The scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.
    54  
    55  
    56  
    57  ### Per DNSdist instance
    58  
    59  These metrics refer to the entire monitored application.
    60  
    61  This scope has no labels.
    62  
    63  Metrics:
    64  
    65  | Metric | Dimensions | Unit |
    66  |:------|:----------|:----|
    67  | dnsdist.queries | all, recursive, empty | queries/s |
    68  | dnsdist.queries_dropped | rule_drop, dynamic_blocked, no_policy, non_queries | queries/s |
    69  | dnsdist.packets_dropped | acl | packets/s |
    70  | dnsdist.answers | self_answered, nxdomain, refused, trunc_failures | answers/s |
    71  | dnsdist.backend_responses | responses | responses/s |
    72  | dnsdist.backend_commerrors | send_errors | errors/s |
    73  | dnsdist.backend_errors | timeouts, servfail, non_compliant | responses/s |
    74  | dnsdist.cache | hits, misses | answers/s |
    75  | dnsdist.servercpu | system_state, user_state | ms/s |
    76  | dnsdist.servermem | memory_usage | MiB |
    77  | dnsdist.query_latency | 1ms, 10ms, 50ms, 100ms, 1sec, slow | queries/s |
    78  | dnsdist.query_latency_avg | 100, 1k, 10k, 1000k | microseconds |
    79  
    80  
    81  
    82  ## Alerts
    83  
    84  There are no alerts configured by default for this integration.
    85  
    86  
    87  ## Setup
    88  
    89  ### Prerequisites
    90  
    91  #### Enable DNSdist built-in Webserver
    92  
    93  For collecting metrics via HTTP, you need to [enable the built-in webserver](https://dnsdist.org/guides/webserver.html).
    94  
    95  
    96  
    97  ### Configuration
    98  
    99  #### File
   100  
   101  The configuration file name for this integration is `go.d/dnsdist.conf`.
   102  
   103  
   104  You can edit the configuration file using the `edit-config` script from the
   105  Netdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).
   106  
   107  ```bash
   108  cd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata
   109  sudo ./edit-config go.d/dnsdist.conf
   110  ```
   111  #### Options
   112  
   113  The following options can be defined globally: update_every, autodetection_retry.
   114  
   115  
   116  <details><summary>Config options</summary>
   117  
   118  | Name | Description | Default | Required |
   119  |:----|:-----------|:-------|:--------:|
   120  | update_every | Data collection frequency. | 1 | no |
   121  | autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |
   122  | url | Server URL. | http://127.0.0.1:8083 | yes |
   123  | username | Username for basic HTTP authentication. |  | no |
   124  | password | Password for basic HTTP authentication. |  | no |
   125  | proxy_url | Proxy URL. |  | no |
   126  | proxy_username | Username for proxy basic HTTP authentication. |  | no |
   127  | proxy_password | Password for proxy basic HTTP authentication. |  | no |
   128  | timeout | HTTP request timeout. | 1 | no |
   129  | method | HTTP request method. | GET | no |
   130  | body | HTTP request body. |  | no |
   131  | headers | HTTP request headers. |  | no |
   132  | not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |
   133  | tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |
   134  | tls_ca | Certification authority that the client uses when verifying the server's certificates. |  | no |
   135  | tls_cert | Client tls certificate. |  | no |
   136  | tls_key | Client tls key. |  | no |
   137  
   138  </details>
   139  
   140  #### Examples
   141  
   142  ##### Basic
   143  
   144  An example configuration.
   145  
   146  <details><summary>Config</summary>
   147  
   148  ```yaml
   149  jobs:
   150    - name: local
   151      url: http://127.0.0.1:8083
   152      headers:
   153        X-API-Key: your-api-key # static pre-shared authentication key for access to the REST API (api-key).
   154  
   155  ```
   156  </details>
   157  
   158  ##### Multi-instance
   159  
   160  > **Note**: When you define multiple jobs, their names must be unique.
   161  
   162  Collecting metrics from local and remote instances.
   163  
   164  
   165  <details><summary>Config</summary>
   166  
   167  ```yaml
   168  jobs:
   169    - name: local
   170      url: http://127.0.0.1:8083
   171      headers:
   172        X-API-Key: 'your-api-key' # static pre-shared authentication key for access to the REST API (api-key).
   173  
   174    - name: remote
   175      url: http://203.0.113.0:8083
   176      headers:
   177        X-API-Key: 'your-api-key'
   178  
   179  ```
   180  </details>
   181  
   182  
   183  
   184  ## Troubleshooting
   185  
   186  ### Debug Mode
   187  
   188  To troubleshoot issues with the `dnsdist` collector, run the `go.d.plugin` with the debug option enabled. The output
   189  should give you clues as to why the collector isn't working.
   190  
   191  - Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on
   192    your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.
   193  
   194    ```bash
   195    cd /usr/libexec/netdata/plugins.d/
   196    ```
   197  
   198  - Switch to the `netdata` user.
   199  
   200    ```bash
   201    sudo -u netdata -s
   202    ```
   203  
   204  - Run the `go.d.plugin` to debug the collector:
   205  
   206    ```bash
   207    ./go.d.plugin -d -m dnsdist
   208    ```
   209  
   210