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

     1  <!--startmeta
     2  custom_edit_url: "https://github.com/netdata/go.d.plugin/edit/master/modules/vernemq/README.md"
     3  meta_yaml: "https://github.com/netdata/go.d.plugin/edit/master/modules/vernemq/metadata.yaml"
     4  sidebar_label: "VerneMQ"
     5  learn_status: "Published"
     6  learn_rel_path: "Data Collection/Message Brokers"
     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  # VerneMQ
    12  
    13  
    14  <img src="https://netdata.cloud/img/vernemq.svg" width="150"/>
    15  
    16  
    17  Plugin: go.d.plugin
    18  Module: vernemq
    19  
    20  <img src="https://img.shields.io/badge/maintained%20by-Netdata-%2300ab44" />
    21  
    22  ## Overview
    23  
    24  This collector monitors VerneMQ instances.
    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 VerneMQ 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  | vernemq.sockets | open | sockets |
    68  | vernemq.socket_operations | open, close | sockets/s |
    69  | vernemq.client_keepalive_expired | closed | sockets/s |
    70  | vernemq.socket_close_timeout | closed | sockets/s |
    71  | vernemq.socket_errors | errors | errors/s |
    72  | vernemq.queue_processes | queue_processes | queue processes |
    73  | vernemq.queue_processes_operations | setup, teardown | events/s |
    74  | vernemq.queue_process_init_from_storage | queue_processes | queue processes/s |
    75  | vernemq.queue_messages | received, sent | messages/s |
    76  | vernemq.queue_undelivered_messages | dropped, expired, unhandled | messages/s |
    77  | vernemq.router_subscriptions | subscriptions | subscriptions |
    78  | vernemq.router_matched_subscriptions | local, remote | subscriptions/s |
    79  | vernemq.router_memory | used | KiB |
    80  | vernemq.average_scheduler_utilization | utilization | percentage |
    81  | vernemq.system_utilization_scheduler | a dimension per scheduler | percentage |
    82  | vernemq.system_processes | processes | processes |
    83  | vernemq.system_reductions | reductions | ops/s |
    84  | vernemq.system_context_switches | context_switches | ops/s |
    85  | vernemq.system_io | received, sent | kilobits/s |
    86  | vernemq.system_run_queue | ready | processes |
    87  | vernemq.system_gc_count | gc | ops/s |
    88  | vernemq.system_gc_words_reclaimed | words_reclaimed | ops/s |
    89  | vernemq.system_allocated_memory | processes, system | KiB |
    90  | vernemq.bandwidth | received, sent | kilobits/s |
    91  | vernemq.retain_messages | messages | messages |
    92  | vernemq.retain_memory | used | KiB |
    93  | vernemq.cluster_bandwidth | received, sent | kilobits/s |
    94  | vernemq.cluster_dropped | dropped | kilobits/s |
    95  | vernemq.netsplit_unresolved | unresolved | netsplits |
    96  | vernemq.netsplits | resolved, detected | netsplits/s |
    97  | vernemq.mqtt_auth | received, sent | packets/s |
    98  | vernemq.mqtt_auth_received_reason | a dimensions per reason | packets/s |
    99  | vernemq.mqtt_auth_sent_reason | a dimensions per reason | packets/s |
   100  | vernemq.mqtt_connect | connect, connack | packets/s |
   101  | vernemq.mqtt_connack_sent_reason | a dimensions per reason | packets/s |
   102  | vernemq.mqtt_disconnect | received, sent | packets/s |
   103  | vernemq.mqtt_disconnect_received_reason | a dimensions per reason | packets/s |
   104  | vernemq.mqtt_disconnect_sent_reason | a dimensions per reason | packets/s |
   105  | vernemq.mqtt_subscribe | subscribe, suback | packets/s |
   106  | vernemq.mqtt_subscribe_error | failed | ops/s |
   107  | vernemq.mqtt_subscribe_auth_error | unauth | attempts/s |
   108  | vernemq.mqtt_unsubscribe | unsubscribe, unsuback | packets/s |
   109  | vernemq.mqtt_unsubscribe | mqtt_unsubscribe_error | ops/s |
   110  | vernemq.mqtt_publish | received, sent | packets/s |
   111  | vernemq.mqtt_publish_errors | failed | ops/s |
   112  | vernemq.mqtt_publish_auth_errors | unauth | attempts/s |
   113  | vernemq.mqtt_puback | received, sent | packets/s |
   114  | vernemq.mqtt_puback_received_reason | a dimensions per reason | packets/s |
   115  | vernemq.mqtt_puback_sent_reason | a dimensions per reason | packets/s |
   116  | vernemq.mqtt_puback_invalid_error | unexpected | messages/s |
   117  | vernemq.mqtt_pubrec | received, sent | packets/s |
   118  | vernemq.mqtt_pubrec_received_reason | a dimensions per reason | packets/s |
   119  | vernemq.mqtt_pubrec_sent_reason | a dimensions per reason | packets/s |
   120  | vernemq.mqtt_pubrec_invalid_error | unexpected | messages/s |
   121  | vernemq.mqtt_pubrel | received, sent | packets/s |
   122  | vernemq.mqtt_pubrel_received_reason | a dimensions per reason | packets/s |
   123  | vernemq.mqtt_pubrel_sent_reason | a dimensions per reason | packets/s |
   124  | vernemq.mqtt_pubcom | received, sent | packets/s |
   125  | vernemq.mqtt_pubcomp_received_reason | a dimensions per reason | packets/s |
   126  | vernemq.mqtt_pubcomp_sent_reason | a dimensions per reason | packets/s |
   127  | vernemq.mqtt_pubcomp_invalid_error | unexpected | messages/s |
   128  | vernemq.mqtt_ping | pingreq, pingresp | packets/s |
   129  | vernemq.node_uptime | time | seconds |
   130  
   131  
   132  
   133  ## Alerts
   134  
   135  
   136  The following alerts are available:
   137  
   138  | Alert name  | On metric | Description |
   139  |:------------|:----------|:------------|
   140  | [ vernemq_socket_errors ](https://github.com/netdata/netdata/blob/master/health/health.d/vernemq.conf) | vernemq.socket_errors | number of socket errors in the last minute |
   141  | [ vernemq_queue_message_drop ](https://github.com/netdata/netdata/blob/master/health/health.d/vernemq.conf) | vernemq.queue_undelivered_messages | number of dropped messaged due to full queues in the last minute |
   142  | [ vernemq_queue_message_expired ](https://github.com/netdata/netdata/blob/master/health/health.d/vernemq.conf) | vernemq.queue_undelivered_messages | number of messages which expired before delivery in the last minute |
   143  | [ vernemq_queue_message_unhandled ](https://github.com/netdata/netdata/blob/master/health/health.d/vernemq.conf) | vernemq.queue_undelivered_messages | number of unhandled messages (connections with clean session=true) in the last minute |
   144  | [ vernemq_average_scheduler_utilization ](https://github.com/netdata/netdata/blob/master/health/health.d/vernemq.conf) | vernemq.average_scheduler_utilization | average scheduler utilization over the last 10 minutes |
   145  | [ vernemq_cluster_dropped ](https://github.com/netdata/netdata/blob/master/health/health.d/vernemq.conf) | vernemq.cluster_dropped | amount of traffic dropped during communication with the cluster nodes in the last minute |
   146  | [ vernemq_netsplits ](https://github.com/netdata/netdata/blob/master/health/health.d/vernemq.conf) | vvernemq.netsplits | number of detected netsplits (split brain situation) in the last minute |
   147  | [ vernemq_mqtt_connack_sent_reason_unsuccessful ](https://github.com/netdata/netdata/blob/master/health/health.d/vernemq.conf) | vernemq.mqtt_connack_sent_reason | number of sent unsuccessful v3/v5 CONNACK packets in the last minute |
   148  | [ vernemq_mqtt_disconnect_received_reason_not_normal ](https://github.com/netdata/netdata/blob/master/health/health.d/vernemq.conf) | vernemq.mqtt_disconnect_received_reason | number of received not normal v5 DISCONNECT packets in the last minute |
   149  | [ vernemq_mqtt_disconnect_sent_reason_not_normal ](https://github.com/netdata/netdata/blob/master/health/health.d/vernemq.conf) | vernemq.mqtt_disconnect_sent_reason | number of sent not normal v5 DISCONNECT packets in the last minute |
   150  | [ vernemq_mqtt_subscribe_error ](https://github.com/netdata/netdata/blob/master/health/health.d/vernemq.conf) | vernemq.mqtt_subscribe_error | number of failed v3/v5 SUBSCRIBE operations in the last minute |
   151  | [ vernemq_mqtt_subscribe_auth_error ](https://github.com/netdata/netdata/blob/master/health/health.d/vernemq.conf) | vernemq.mqtt_subscribe_auth_error | number of unauthorized v3/v5 SUBSCRIBE attempts in the last minute |
   152  | [ vernemq_mqtt_unsubscribe_error ](https://github.com/netdata/netdata/blob/master/health/health.d/vernemq.conf) | vernemq.mqtt_unsubscribe_error | number of failed v3/v5 UNSUBSCRIBE operations in the last minute |
   153  | [ vernemq_mqtt_publish_errors ](https://github.com/netdata/netdata/blob/master/health/health.d/vernemq.conf) | vernemq.mqtt_publish_errors | number of failed v3/v5 PUBLISH operations in the last minute |
   154  | [ vernemq_mqtt_publish_auth_errors ](https://github.com/netdata/netdata/blob/master/health/health.d/vernemq.conf) | vernemq.mqtt_publish_auth_errors | number of unauthorized v3/v5 PUBLISH attempts in the last minute |
   155  | [ vernemq_mqtt_puback_received_reason_unsuccessful ](https://github.com/netdata/netdata/blob/master/health/health.d/vernemq.conf) | vernemq.mqtt_puback_received_reason | number of received unsuccessful v5 PUBACK packets in the last minute |
   156  | [ vernemq_mqtt_puback_sent_reason_unsuccessful ](https://github.com/netdata/netdata/blob/master/health/health.d/vernemq.conf) | vernemq.mqtt_puback_sent_reason | number of sent unsuccessful v5 PUBACK packets in the last minute |
   157  | [ vernemq_mqtt_puback_unexpected ](https://github.com/netdata/netdata/blob/master/health/health.d/vernemq.conf) | vernemq.mqtt_puback_invalid_error | number of received unexpected v3/v5 PUBACK packets in the last minute |
   158  | [ vernemq_mqtt_pubrec_received_reason_unsuccessful ](https://github.com/netdata/netdata/blob/master/health/health.d/vernemq.conf) | vernemq.mqtt_pubrec_received_reason | number of received unsuccessful v5 PUBREC packets in the last minute |
   159  | [ vernemq_mqtt_pubrec_sent_reason_unsuccessful ](https://github.com/netdata/netdata/blob/master/health/health.d/vernemq.conf) | vernemq.mqtt_pubrec_sent_reason | number of sent unsuccessful v5 PUBREC packets in the last minute |
   160  | [ vernemq_mqtt_pubrec_invalid_error ](https://github.com/netdata/netdata/blob/master/health/health.d/vernemq.conf) | vernemq.mqtt_pubrec_invalid_error | number of received unexpected v3 PUBREC packets in the last minute |
   161  | [ vernemq_mqtt_pubrel_received_reason_unsuccessful ](https://github.com/netdata/netdata/blob/master/health/health.d/vernemq.conf) | vernemq.mqtt_pubrel_received_reason | number of received unsuccessful v5 PUBREL packets in the last minute |
   162  | [ vernemq_mqtt_pubrel_sent_reason_unsuccessful ](https://github.com/netdata/netdata/blob/master/health/health.d/vernemq.conf) | vernemq.mqtt_pubrel_sent_reason | number of sent unsuccessful v5 PUBREL packets in the last minute |
   163  | [ vernemq_mqtt_pubcomp_received_reason_unsuccessful ](https://github.com/netdata/netdata/blob/master/health/health.d/vernemq.conf) | vernemq.mqtt_pubcomp_received_reason | number of received unsuccessful v5 PUBCOMP packets in the last minute |
   164  | [ vernemq_mqtt_pubcomp_sent_reason_unsuccessful ](https://github.com/netdata/netdata/blob/master/health/health.d/vernemq.conf) | vernemq.mqtt_pubcomp_sent_reason | number of sent unsuccessful v5 PUBCOMP packets in the last minute |
   165  | [ vernemq_mqtt_pubcomp_unexpected ](https://github.com/netdata/netdata/blob/master/health/health.d/vernemq.conf) | vernemq.mqtt_pubcomp_invalid_error | number of received unexpected v3/v5 PUBCOMP packets in the last minute |
   166  
   167  
   168  ## Setup
   169  
   170  ### Prerequisites
   171  
   172  No action required.
   173  
   174  ### Configuration
   175  
   176  #### File
   177  
   178  The configuration file name for this integration is `go.d/vernemq.conf`.
   179  
   180  
   181  You can edit the configuration file using the `edit-config` script from the
   182  Netdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).
   183  
   184  ```bash
   185  cd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata
   186  sudo ./edit-config go.d/vernemq.conf
   187  ```
   188  #### Options
   189  
   190  The following options can be defined globally: update_every, autodetection_retry.
   191  
   192  
   193  <details><summary>Config options</summary>
   194  
   195  | Name | Description | Default | Required |
   196  |:----|:-----------|:-------|:--------:|
   197  | update_every | Data collection frequency. | 1 | no |
   198  | autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |
   199  | url | Server URL. | http://127.0.0.1:8888/metrics | yes |
   200  | timeout | HTTP request timeout. | 1 | no |
   201  | username | Username for basic HTTP authentication. |  | no |
   202  | password | Password for basic HTTP authentication. |  | no |
   203  | proxy_url | Proxy URL. |  | no |
   204  | proxy_username | Username for proxy basic HTTP authentication. |  | no |
   205  | proxy_password | Password for proxy basic HTTP authentication. |  | no |
   206  | method | HTTP request method. | GET | no |
   207  | body | HTTP request body. |  | no |
   208  | headers | HTTP request headers. |  | no |
   209  | not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |
   210  | tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |
   211  | tls_ca | Certification authority that the client uses when verifying the server's certificates. |  | no |
   212  | tls_cert | Client TLS certificate. |  | no |
   213  | tls_key | Client TLS key. |  | no |
   214  
   215  </details>
   216  
   217  #### Examples
   218  
   219  ##### Basic
   220  
   221  An example configuration.
   222  
   223  <details><summary>Config</summary>
   224  
   225  ```yaml
   226  jobs:
   227    - name: local
   228      url: http://127.0.0.1:8888/metrics
   229  
   230  ```
   231  </details>
   232  
   233  ##### HTTP authentication
   234  
   235  Local instance with basic HTTP authentication.
   236  
   237  <details><summary>Config</summary>
   238  
   239  ```yaml
   240  jobs:
   241    - name: local
   242      url: http://127.0.0.1:8888/metrics
   243      username: username
   244      password: password
   245  
   246  ```
   247  </details>
   248  
   249  ##### Multi-instance
   250  
   251  > **Note**: When you define multiple jobs, their names must be unique.
   252  
   253  Local and remote instances.
   254  
   255  
   256  <details><summary>Config</summary>
   257  
   258  ```yaml
   259  jobs:
   260    - name: local
   261      url: http://127.0.0.1:8888/metrics
   262  
   263    - name: remote
   264      url: http://203.0.113.10:8888/metrics
   265  
   266  ```
   267  </details>
   268  
   269  
   270  
   271  ## Troubleshooting
   272  
   273  ### Debug Mode
   274  
   275  To troubleshoot issues with the `vernemq` collector, run the `go.d.plugin` with the debug option enabled. The output
   276  should give you clues as to why the collector isn't working.
   277  
   278  - Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on
   279    your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.
   280  
   281    ```bash
   282    cd /usr/libexec/netdata/plugins.d/
   283    ```
   284  
   285  - Switch to the `netdata` user.
   286  
   287    ```bash
   288    sudo -u netdata -s
   289    ```
   290  
   291  - Run the `go.d.plugin` to debug the collector:
   292  
   293    ```bash
   294    ./go.d.plugin -d -m vernemq
   295    ```
   296  
   297