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