Skip to main content

VerneMQ

Plugin: go.d.plugin Module: vernemq

Overview​

This collector monitors VerneMQ instances.

This collector is supported on all platforms.

This collector supports collecting metrics from multiple instances of this integration, including remote instances.

Default Behavior​

Auto-Detection​

This integration doesn't support auto-detection.

Limits​

The default configuration for this integration does not impose any limits on data collection.

Performance Impact​

The default configuration for this integration is not expected to impose a significant performance impact on the system.

Metrics​

Metrics grouped by scope.

The scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.

Per VerneMQ instance​

These metrics refer to the entire monitored application.

This scope has no labels.

Metrics:

MetricDimensionsUnit
vernemq.socketsopensockets
vernemq.socket_operationsopen, closesockets/s
vernemq.client_keepalive_expiredclosedsockets/s
vernemq.socket_close_timeoutclosedsockets/s
vernemq.socket_errorserrorserrors/s
vernemq.queue_processesqueue_processesqueue processes
vernemq.queue_processes_operationssetup, teardownevents/s
vernemq.queue_process_init_from_storagequeue_processesqueue processes/s
vernemq.queue_messagesreceived, sentmessages/s
vernemq.queue_undelivered_messagesdropped, expired, unhandledmessages/s
vernemq.router_subscriptionssubscriptionssubscriptions
vernemq.router_matched_subscriptionslocal, remotesubscriptions/s
vernemq.router_memoryusedKiB
vernemq.average_scheduler_utilizationutilizationpercentage
vernemq.system_utilization_schedulera dimension per schedulerpercentage
vernemq.system_processesprocessesprocesses
vernemq.system_reductionsreductionsops/s
vernemq.system_context_switchescontext_switchesops/s
vernemq.system_ioreceived, sentkilobits/s
vernemq.system_run_queuereadyprocesses
vernemq.system_gc_countgcops/s
vernemq.system_gc_words_reclaimedwords_reclaimedops/s
vernemq.system_allocated_memoryprocesses, systemKiB
vernemq.bandwidthreceived, sentkilobits/s
vernemq.retain_messagesmessagesmessages
vernemq.retain_memoryusedKiB
vernemq.cluster_bandwidthreceived, sentkilobits/s
vernemq.cluster_droppeddroppedkilobits/s
vernemq.netsplit_unresolvedunresolvednetsplits
vernemq.netsplitsresolved, detectednetsplits/s
vernemq.mqtt_authreceived, sentpackets/s
vernemq.mqtt_auth_received_reasona dimensions per reasonpackets/s
vernemq.mqtt_auth_sent_reasona dimensions per reasonpackets/s
vernemq.mqtt_connectconnect, connackpackets/s
vernemq.mqtt_connack_sent_reasona dimensions per reasonpackets/s
vernemq.mqtt_disconnectreceived, sentpackets/s
vernemq.mqtt_disconnect_received_reasona dimensions per reasonpackets/s
vernemq.mqtt_disconnect_sent_reasona dimensions per reasonpackets/s
vernemq.mqtt_subscribesubscribe, subackpackets/s
vernemq.mqtt_subscribe_errorfailedops/s
vernemq.mqtt_subscribe_auth_errorunauthattempts/s
vernemq.mqtt_unsubscribeunsubscribe, unsubackpackets/s
vernemq.mqtt_unsubscribemqtt_unsubscribe_errorops/s
vernemq.mqtt_publishreceived, sentpackets/s
vernemq.mqtt_publish_errorsfailedops/s
vernemq.mqtt_publish_auth_errorsunauthattempts/s
vernemq.mqtt_pubackreceived, sentpackets/s
vernemq.mqtt_puback_received_reasona dimensions per reasonpackets/s
vernemq.mqtt_puback_sent_reasona dimensions per reasonpackets/s
vernemq.mqtt_puback_invalid_errorunexpectedmessages/s
vernemq.mqtt_pubrecreceived, sentpackets/s
vernemq.mqtt_pubrec_received_reasona dimensions per reasonpackets/s
vernemq.mqtt_pubrec_sent_reasona dimensions per reasonpackets/s
vernemq.mqtt_pubrec_invalid_errorunexpectedmessages/s
vernemq.mqtt_pubrelreceived, sentpackets/s
vernemq.mqtt_pubrel_received_reasona dimensions per reasonpackets/s
vernemq.mqtt_pubrel_sent_reasona dimensions per reasonpackets/s
vernemq.mqtt_pubcomreceived, sentpackets/s
vernemq.mqtt_pubcomp_received_reasona dimensions per reasonpackets/s
vernemq.mqtt_pubcomp_sent_reasona dimensions per reasonpackets/s
vernemq.mqtt_pubcomp_invalid_errorunexpectedmessages/s
vernemq.mqtt_pingpingreq, pingresppackets/s
vernemq.node_uptimetimeseconds

Alerts​

The following alerts are available:

Alert nameOn metricDescription
vernemq_socket_errors vernemq.socket_errorsnumber of socket errors in the last minute
vernemq_queue_message_drop vernemq.queue_undelivered_messagesnumber of dropped messaged due to full queues in the last minute
vernemq_queue_message_expired vernemq.queue_undelivered_messagesnumber of messages which expired before delivery in the last minute
vernemq_queue_message_unhandled vernemq.queue_undelivered_messagesnumber of unhandled messages (connections with clean session=true) in the last minute
vernemq_average_scheduler_utilization vernemq.average_scheduler_utilizationaverage scheduler utilization over the last 10 minutes
vernemq_cluster_dropped vernemq.cluster_droppedamount of traffic dropped during communication with the cluster nodes in the last minute
vernemq_netsplits vvernemq.netsplitsnumber of detected netsplits (split brain situation) in the last minute
vernemq_mqtt_connack_sent_reason_unsuccessful vernemq.mqtt_connack_sent_reasonnumber of sent unsuccessful v3/v5 CONNACK packets in the last minute
vernemq_mqtt_disconnect_received_reason_not_normal vernemq.mqtt_disconnect_received_reasonnumber of received not normal v5 DISCONNECT packets in the last minute
vernemq_mqtt_disconnect_sent_reason_not_normal vernemq.mqtt_disconnect_sent_reasonnumber of sent not normal v5 DISCONNECT packets in the last minute
vernemq_mqtt_subscribe_error vernemq.mqtt_subscribe_errornumber of failed v3/v5 SUBSCRIBE operations in the last minute
vernemq_mqtt_subscribe_auth_error vernemq.mqtt_subscribe_auth_errornumber of unauthorized v3/v5 SUBSCRIBE attempts in the last minute
vernemq_mqtt_unsubscribe_error vernemq.mqtt_unsubscribe_errornumber of failed v3/v5 UNSUBSCRIBE operations in the last minute
vernemq_mqtt_publish_errors vernemq.mqtt_publish_errorsnumber of failed v3/v5 PUBLISH operations in the last minute
vernemq_mqtt_publish_auth_errors vernemq.mqtt_publish_auth_errorsnumber of unauthorized v3/v5 PUBLISH attempts in the last minute
vernemq_mqtt_puback_received_reason_unsuccessful vernemq.mqtt_puback_received_reasonnumber of received unsuccessful v5 PUBACK packets in the last minute
vernemq_mqtt_puback_sent_reason_unsuccessful vernemq.mqtt_puback_sent_reasonnumber of sent unsuccessful v5 PUBACK packets in the last minute
vernemq_mqtt_puback_unexpected vernemq.mqtt_puback_invalid_errornumber of received unexpected v3/v5 PUBACK packets in the last minute
vernemq_mqtt_pubrec_received_reason_unsuccessful vernemq.mqtt_pubrec_received_reasonnumber of received unsuccessful v5 PUBREC packets in the last minute
vernemq_mqtt_pubrec_sent_reason_unsuccessful vernemq.mqtt_pubrec_sent_reasonnumber of sent unsuccessful v5 PUBREC packets in the last minute
vernemq_mqtt_pubrec_invalid_error vernemq.mqtt_pubrec_invalid_errornumber of received unexpected v3 PUBREC packets in the last minute
vernemq_mqtt_pubrel_received_reason_unsuccessful vernemq.mqtt_pubrel_received_reasonnumber of received unsuccessful v5 PUBREL packets in the last minute
vernemq_mqtt_pubrel_sent_reason_unsuccessful vernemq.mqtt_pubrel_sent_reasonnumber of sent unsuccessful v5 PUBREL packets in the last minute
vernemq_mqtt_pubcomp_received_reason_unsuccessful vernemq.mqtt_pubcomp_received_reasonnumber of received unsuccessful v5 PUBCOMP packets in the last minute
vernemq_mqtt_pubcomp_sent_reason_unsuccessful vernemq.mqtt_pubcomp_sent_reasonnumber of sent unsuccessful v5 PUBCOMP packets in the last minute
vernemq_mqtt_pubcomp_unexpected vernemq.mqtt_pubcomp_invalid_errornumber of received unexpected v3/v5 PUBCOMP packets in the last minute

Setup​

Prerequisites​

No action required.

Configuration​

File​

The configuration file name for this integration is go.d/vernemq.conf.

You can edit the configuration file using the edit-config script from the Netdata config directory.

cd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata
sudo ./edit-config go.d/vernemq.conf

Options​

The following options can be defined globally: update_every, autodetection_retry.

Config options
NameDescriptionDefaultRequired
update_everyData collection frequency.1no
autodetection_retryRecheck interval in seconds. Zero means no recheck will be scheduled.0no
urlServer URL.http://127.0.0.1:8888/metricsyes
timeoutHTTP request timeout.1no
usernameUsername for basic HTTP authentication.no
passwordPassword for basic HTTP authentication.no
proxy_urlProxy URL.no
proxy_usernameUsername for proxy basic HTTP authentication.no
proxy_passwordPassword for proxy basic HTTP authentication.no
methodHTTP request method.GETno
bodyHTTP request body.no
headersHTTP request headers.no
not_follow_redirectsRedirect handling policy. Controls whether the client follows redirects.nono
tls_skip_verifyServer certificate chain and hostname validation policy. Controls whether the client performs this check.nono
tls_caCertification authority that the client uses when verifying the server's certificates.no
tls_certClient TLS certificate.no
tls_keyClient TLS key.no

Examples​

Basic​

An example configuration.

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

HTTP authentication​

Local instance with basic HTTP authentication.

Config
jobs:
- name: local
url: http://127.0.0.1:8888/metrics
username: username
password: password

Multi-instance​

Note: When you define multiple jobs, their names must be unique.

Local and remote instances.

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

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

Troubleshooting​

Debug Mode​

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

Do you have any feedback for this page? If so, you can open a new issue on our netdata/learn repository.