Skip to main content
Version: 1.37.x

VerneMQ monitoring with Netdata

VerneMQ is a scalable and open source MQTT broker that connects IoT, M2M, Mobile, and web applications.

This module will monitor one or more VerneMQ instances, depending on your configuration.

vernemq module is tested on the following versions:

  • v1.10.1

Metrics

All metrics have "vernemq." prefix.

MetricScopeDimensionsUnits
socketsglobalopen, closeevents/s
client_keepalive_expiredglobalclosedsockets/s
socket_close_timeoutglobalclosedsockets/s
socket_errorsglobalerrorserrors/s
queue_processesglobalqueue_processesqueue processes
queue_processes_operationsglobalsetup, teardownevents/s
queue_process_init_from_storageglobalqueue_processesqueue processes/s
queue_messagesglobalreceived, sentmessages/s
queue_undelivered_messagesglobaldropped, expired, unhandledmessages/s
router_subscriptionsglobalsubscriptionssubscriptions
router_matched_subscriptionsgloballocal, remotesubscriptions/s
router_memoryglobalusedKiB
average_scheduler_utilizationglobalutilizationpercentage
system_utilization_schedulerglobala dimension per schedulerpercentage
system_processesglobalprocessesprocesses
system_reductionsglobalreductionsops/s
system_context_switchesglobalcontext_switchesops/s
system_ioglobalreceived, sentkilobits/s
system_run_queueglobalreadyprocesses
system_gc_countglobalgcops/s
system_gc_words_reclaimedglobalwords_reclaimedops/s
system_allocated_memoryglobalprocesses, systemKiB
bandwidthglobalreceived, sentkilobits/s
retain_messagesglobalmessagesmessages
retain_memoryglobalusedKiB
cluster_bandwidthglobalreceived, sentkilobits/s
cluster_droppedglobaldroppedkilobits/s
netsplit_unresolvedglobalunresolvednetsplits
netsplitsglobalresolved, detectednetsplits/s
mqtt_authglobalreceived, sentpackets/s
mqtt_auth_received_reasonglobala dimensions per reasonpackets/s
mqtt_auth_sent_reasonglobala dimensions per reasonpackets/s
mqtt_connectglobalconnect, connackpackets/s
mqtt_connack_sent_reasonglobala dimensions per reasonpackets/s
mqtt_disconnectglobalreceived, sentpackets/s
mqtt_disconnect_received_reasonglobala dimensions per reasonpackets/s
mqtt_disconnect_sent_reasonglobala dimensions per reasonpackets/s
mqtt_subscribeglobalsubscribe, subackpackets/s
mqtt_subscribe_errorglobalfailedops/s
mqtt_subscribe_auth_errorglobalunauthattempts/s
mqtt_unsubscribeglobalunsubscribe, unsubackpackets/s
mqtt_unsubscribeglobalmqtt_unsubscribe_errorops/s
mqtt_publishglobalreceived, sentpackets/s
mqtt_publish_errorsglobalfailedops/s
mqtt_publish_auth_errorsglobalunauthattempts/s
mqtt_pubackglobalreceived, sentpackets/s
mqtt_puback_received_reasonglobala dimensions per reasonpackets/s
mqtt_puback_sent_reasonglobala dimensions per reasonpackets/s
mqtt_puback_invalid_errorglobalunexpectedmessages/s
mqtt_pubrecglobalreceived, sentpackets/s
mqtt_pubrec_received_reasonglobala dimensions per reasonpackets/s
mqtt_pubrec_sent_reasonglobala dimensions per reasonpackets/s
mqtt_pubrec_invalid_errorglobalunexpectedmessages/s
mqtt_pubrelglobalreceived, sentpackets/s
mqtt_pubrel_received_reasonglobala dimensions per reasonpackets/s
mqtt_pubrel_sent_reasonglobala dimensions per reasonpackets/s
mqtt_pubcomglobalreceived, sentpackets/s
mqtt_pubcomp_received_reasonglobala dimensions per reasonpackets/s
mqtt_pubcomp_sent_reasonglobala dimensions per reasonpackets/s
mqtt_pubcomp_invalid_errorglobalunexpectedmessages/s
mqtt_pingglobalpingreq, pingresppackets/s
node_uptimeglobalpingreq, pingresppackets/s

Configuration

Edit the go.d/vernemq.conf configuration file using edit-config from the Netdata config directory, which is typically at /etc/netdata.

cd /etc/netdata # Replace this path with your Netdata config directory
sudo ./edit-config go.d/vernemq.conf

Needs only url to server's /metrics endpoint. Here is an example for 2 servers:

jobs:
- name: local
url: http://127.0.0.1:8888/metrics

- name: remote
url: http://203.0.113.10:8888/metrics

For all available options please see module configuration file.

Troubleshooting

To troubleshoot issues with the vernemq collector, run the go.d.plugin with the debug option enabled. The output should give you clues as to why the collector isn't working.

  • Navigate to the plugins.d directory, usually at /usr/libexec/netdata/plugins.d/. If that's not the case on your system, open netdata.conf and look for the plugins setting under [directories].

    cd /usr/libexec/netdata/plugins.d/
  • Switch to the netdata user.

    sudo -u netdata -s
  • Run the go.d.plugin to debug the collector:

    ./go.d.plugin -d -m vernemq

Was this page helpful?

Contribute