diff options
-rw-r--r-- | collectors/COLLECTORS.md | 1 | ||||
-rw-r--r-- | health/Makefile.am | 1 | ||||
-rw-r--r-- | health/health.d/vernemq.conf | 399 | ||||
-rw-r--r-- | packaging/go.d.checksums | 32 | ||||
-rw-r--r-- | packaging/go.d.version | 2 | ||||
-rw-r--r-- | web/gui/dashboard_info.js | 130 |
6 files changed, 546 insertions, 19 deletions
diff --git a/collectors/COLLECTORS.md b/collectors/COLLECTORS.md index dfc32c2bc3..4a9f9c7d3d 100644 --- a/collectors/COLLECTORS.md +++ b/collectors/COLLECTORS.md @@ -105,6 +105,7 @@ collector—we may be looking for contributions from users such as yourself! | [tengine](go.d.plugin/modules/tengine/README.md) | [`Tengine`](https://tengine.taobao.org/) | Monitors web server statistics using information provided by `ngx_http_reqstat_module`. | | [unbound](go.d.plugin/modules/unbound/README.md) | [`Unbound`](https://nlnetlabs.nl/projects/unbound/about/) | Collects dns resolver summary and extended system and per thread metrics via `remote-control` interface. | | [vcsa](go.d.plugin/modules/vcsa/README.md) | [`vCenter Server Appliance`](https://docs.vmware.com/en/VMware-vSphere/6.5/com.vmware.vsphere.vcsa.doc/GUID-223C2821-BD98-4C7A-936B-7DBE96291BA4.html) | Monitors appliance system, components and software updates health statuses via Health API. | +| [vernemq](go.d.plugin/modules/vernemq/README.md) | [`VerneMQ`](https://vernemq.com/) | Monitors MQTT broker health and performance metrics. It collects all available info for both MQTTv3 and v5 communication. | | [vsphere](go.d.plugin/modules/vsphere/README.md) | [`VMware vCenter Server`](https://www.vmware.com/products/vcenter-server.html) | Collects hosts and virtual machines performance metrics. | | [web_log](go.d.plugin/modules/weblog/README.md) | `Apache/NGINX` | Tails access logs and provides very detailed web server performance statistics. This module is able to parse 200k+ rows for less then half a second. | | [wmi](go.d.plugin/modules/wmi/README.md) | `Windows Machines` | Collects cpu, memory, network, disk, os, system and logon metrics scraping `wmi_exporter`. | diff --git a/health/Makefile.am b/health/Makefile.am index 853ed0d708..a767abf1d3 100644 --- a/health/Makefile.am +++ b/health/Makefile.am @@ -94,6 +94,7 @@ dist_healthconfig_DATA = \ health.d/unbound.conf \ health.d/varnish.conf \ health.d/vcsa.conf \ + health.d/vernemq.conf \ health.d/vsphere.conf \ health.d/web_log.conf \ health.d/wmi.conf \ diff --git a/health/health.d/vernemq.conf b/health/health.d/vernemq.conf new file mode 100644 index 0000000000..36bbaf82b2 --- /dev/null +++ b/health/health.d/vernemq.conf @@ -0,0 +1,399 @@ + +# Availability + +template: vernemq_last_collected_secs + on: vernemq.node_uptime + calc: $now - $last_collected_t + units: seconds ago + every: 10s + warn: $this > (($status >= $WARNING) ? ($update_every) : ( 5 * $update_every)) + crit: $this > (($status == $CRITICAL) ? ($update_every) : (60 * $update_every)) + delay: down 5m multiplier 1.5 max 1h + info: number of seconds since the last successful data collection + to: sysadmin + +# Socket errors + +template: vernemq_socket_errors + on: vernemq.socket_errors + lookup: sum -1m unaligned absolute of socket_error + units: errors + every: 10s + warn: $this > (($status == $WARNING) ? (0) : (5)) + delay: down 5m multiplier 1.5 max 2h + info: socket errors in the last minute + to: sysadmin + +# Queues dropped/expired/unhandled PUBLISH messages + +template: vernemq_queue_message_drop + on: vernemq.queue_undelivered_messages + lookup: sum -1m unaligned absolute of queue_message_drop + units: dropped messages + every: 10s + warn: $this > (($status == $WARNING) ? (0) : (5)) + delay: down 5m multiplier 1.5 max 2h + info: dropped messaged due to full queues in the last minute + to: sysadmin + +template: vernemq_queue_message_expired + on: vernemq.queue_undelivered_messages + lookup: sum -1m unaligned absolute of queue_message_expired + units: expired messages + every: 10s + warn: $this > (($status == $WARNING) ? (0) : (15)) + delay: down 5m multiplier 1.5 max 2h + info: messages which expired before delivery in the last minute + to: sysadmin + +template: vernemq_queue_message_unhandled + on: vernemq.queue_undelivered_messages + lookup: sum -1m unaligned absolute of queue_message_unhandled + units: unhandled messages + every: 10s + warn: $this > (($status == $WARNING) ? (0) : (5)) + delay: down 5m multiplier 1.5 max 2h + info: unhandled messages (connections with clean session=true) in the last minute + to: sysadmin + +# Erlang VM + +template: vernemq_average_scheduler_utilization + on: vernemq.average_scheduler_utilization + lookup: average -10m unaligned + units: % + every: 1m + warn: $this > (($status >= $WARNING) ? (75) : (85)) + crit: $this > (($status == $CRITICAL) ? (85) : (95)) + delay: down 15m multiplier 1.5 max 1h + info: average scheduler utilization for the last 10 minutes + to: sysadmin + +# Cluster communication and netsplits + +template: vernemq_cluster_dropped + on: vernemq.cluster_dropped + lookup: average -1m unaligned + units: KiB/s + every: 10s + warn: $this > 0 + delay: down 5m multiplier 1.5 max 1h + info: the amount of traffic dropped during communication with the cluster nodes in the last minute + to: sysadmin + +template: vernemq_netsplits + on: vernemq.netsplits + lookup: sum -1m unaligned absolute of netsplit_detected + units: netsplits + every: 10s + warn: $this > 0 + delay: down 5m multiplier 1.5 max 2h + info: detected netsplits in the last minute + to: sysadmin + +# Unsuccessful CONNACK + +template: vernemq_mqtt_connack_sent_reason_success + on: vernemq.mqtt_connack_sent_reason + lookup: sum -1m unaligned absolute match-names of success + units: packets + every: 10s + info: successful v3/v5 CONNACK sent in the last minute + to: sysadmin + +template: vernemq_mqtt_connack_sent_reason_unsuccessful + on: vernemq.mqtt_connack_sent_reason + lookup: sum -1m unaligned absolute + calc: $this - $vernemq_mqtt_connack_sent_reason_success + units: packets + every: 10s + warn: $this > 0 + delay: down 5m multiplier 1.5 max 2h + info: unsuccessful v3/v5 CONNACK sent in the last minute + to: sysadmin + +# Not normal DISCONNECT + +template: vernemq_mqtt_disconnect_received_reason_normal_disconnect + on: vernemq.mqtt_disconnect_received_reason + lookup: sum -1m unaligned absolute match-names of normal_disconnect + units: packets + every: 10s + info: normal v5 DISCONNECT received in the last minute + to: sysadmin + +template: vernemq_mqtt_disconnect_sent_reason_normal_disconnect + on: vernemq.mqtt_disconnect_sent_reason + lookup: sum -1m unaligned absolute match-names of normal_disconnect + units: packets + every: 10s + info: normal v5 DISCONNECT sent in the last minute + to: sysadmin + +template: vernemq_mqtt_disconnect_received_reason_not_normal + on: vernemq.mqtt_disconnect_received_reason + lookup: sum -1m unaligned absolute + calc: $this - $vernemq_mqtt_disconnect_received_reason_normal_disconnect + units: packets + every: 10s + warn: $this > 0 + delay: down 5m multiplier 1.5 max 2h + info: not normal v5 DISCONNECT received in the last minute + to: sysadmin + +template: vernemq_mqtt_disconnect_sent_reason_not_normal + on: vernemq.mqtt_disconnect_sent_reason + lookup: sum -1m unaligned absolute + calc: $this - $vernemq_mqtt_disconnect_sent_reason_normal_disconnect + units: packets + every: 10s + warn: $this > 0 + delay: down 5m multiplier 1.5 max 2h + info: not normal v5 DISCONNECT sent in the last minute + to: sysadmin + +# SUBSCRIBE errors and unauthorized attempts + +template: vernemq_mqtt_subscribe_error + on: vernemq.mqtt_subscribe_error + lookup: sum -1m unaligned absolute + units: failed ops + every: 10s + warn: $this > 0 + delay: down 5m multiplier 1.5 max 2h + info: failed v3/v5 SUBSCRIBE operations in the last minute + to: sysadmin + +template: vernemq_mqtt_subscribe_auth_error + on: vernemq.mqtt_subscribe_auth_error + lookup: sum -1m unaligned absolute + units: attempts + every: 10s + warn: $this > 0 + delay: down 5m multiplier 1.5 max 2h + info: unauthorized v3/v5 SUBSCRIBE attempts in the last minute + to: sysadmin + +# UNSUBSCRIBE errors + +template: vernemq_mqtt_unsubscribe_error + on: vernemq.mqtt_unsubscribe_error + lookup: sum -1m unaligned absolute + units: failed ops + every: 10s + warn: $this > 0 + delay: down 5m multiplier 1.5 max 2h + info: failed v3/v5 UNSUBSCRIBE operations in the last minute + to: sysadmin + +# PUBLISH errors and unauthorized attempts + +template: vernemq_mqtt_publish_errors + on: vernemq.mqtt_publish_errors + lookup: sum -1m unaligned absolute + units: failed ops + every: 10s + warn: $this > 0 + delay: down 5m multiplier 1.5 max 2h + info: failed v3/v5 PUBLISH operations in the last minute + to: sysadmin + +template: vernemq_mqtt_publish_auth_errors + on: vernemq.mqtt_publish_auth_errors + lookup: sum -1m unaligned absolute + units: attempts + every: 10s + warn: $this > 0 + delay: down 5m multiplier 1.5 max 2h + info: unauthorized v3/v5 PUBLISH attempts in the last minute + to: sysadmin + +# Unsuccessful and unexpected PUBACK + +template: vernemq_mqtt_puback_received_reason_success + on: vernemq.mqtt_puback_received_reason + lookup: sum -1m unaligned absolute match-names of success + units: packets + every: 10s + info: successful v5 PUBACK received in the last minute + to: sysadmin + +template: vernemq_mqtt_puback_sent_reason_success + on: vernemq.mqtt_puback_sent_reason + lookup: sum -1m unaligned absolute match-names of success + units: packets + every: 10s + info: successful v5 PUBACK sent in the last minute + to: sysadmin + +template: vernemq_mqtt_puback_received_reason_unsuccessful + on: vernemq.mqtt_puback_received_reason + lookup: sum -1m unaligned absolute + calc: $this - $vernemq_mqtt_puback_received_reason_success + units: packets + every: 10s + warn: $this > 0 + delay: down 5m multiplier 1.5 max 2h + info: unsuccessful v5 PUBACK received in the last minute + to: sysadmin + +template: vernemq_mqtt_puback_sent_reason_unsuccessful + on: vernemq.mqtt_puback_sent_reason + lookup: sum -1m unaligned absolute + calc: $this - $vernemq_mqtt_puback_sent_reason_success + units: packets + every: 10s + warn: $this > 0 + delay: down 5m multiplier 1.5 max 2h + info: unsuccessful v5 PUBACK sent in the last minute + to: sysadmin + +template: vernemq_mqtt_puback_unexpected + on: vernemq.mqtt_puback_invalid_error + lookup: sum -1m unaligned absolute + units: messages + every: 10s + warn: $this > 0 + delay: down 5m multiplier 1.5 max 2h + info: unexpected v3/v5 PUBACK received in the last minute + to: sysadmin + +# Unsuccessful and unexpected PUBREC + +template: vernemq_mqtt_pubrec_received_reason_success + on: vernemq.mqtt_pubrec_received_reason + lookup: sum -1m unaligned absolute match-names of success + units: packets + every: 10s + info: successful v5 PUBREC received in the last minute + to: sysadmin + +template: vernemq_mqtt_pubrec_sent_reason_success + on: vernemq.mqtt_pubrec_sent_reason + lookup: sum -1m unaligned absolute match-names of success + units: packets + every: 10s + info: successful v5 PUBREC sent in the last minute + to: sysadmin + +template: vernemq_mqtt_pubrec_received_reason_unsuccessful + on: vernemq.mqtt_pubrec_received_reason + lookup: sum -1m unaligned absolute + calc: $this - $vernemq_mqtt_pubrec_received_reason_success + units: packets + every: 10s + warn: $this > 0 + delay: down 5m multiplier 1.5 max 2h + info: unsuccessful v5 PUBREC received in the last minute + to: sysadmin + +template: vernemq_mqtt_pubrec_sent_reason_unsuccessful + on: vernemq.mqtt_pubrec_sent_reason + lookup: sum -1m unaligned absolute + calc: $this - $vernemq_mqtt_pubrec_sent_reason_success + units: packets + every: 10s + warn: $this > 0 + delay: down 5m multiplier 1.5 max 2h + info: unsuccessful v5 PUBREC sent in the last minute + to: sysadmin + +template: vernemq_mqtt_pubrec_invalid_error + on: vernemq.mqtt_pubrec_invalid_error + lookup: sum -1m unaligned absolute + units: messages + every: 10s + warn: $this > 0 + delay: down 5m multiplier 1.5 max 2h + info: unexpected v3 PUBREC received in the last minute + to: sysadmin + +# Unsuccessful PUBREL + +template: vernemq_mqtt_pubrel_received_reason_success + on: vernemq.mqtt_pubrel_received_reason + lookup: sum -1m unaligned absolute match-names of success + units: packets + every: 10s + info: successful v5 PUBREL received in the last minute + to: sysadmin + +template: vernemq_mqtt_pubrel_sent_reason_success + on: vernemq.mqtt_pubrel_sent_reason + lookup: sum -1m unaligned absolute match-names of success + units: packets + every: 10s + info: successful v5 PUBREL sent in the last minute + to: sysadmin + +template: vernemq_mqtt_pubrel_received_reason_unsuccessful + on: vernemq.mqtt_pubrel_received_reason + lookup: sum -1m unaligned absolute + calc: $this - $vernemq_mqtt_pubrel_received_reason_success + units: packets + every: 10s + warn: $this > 0 + delay: down 5m multiplier 1.5 max 2h + info: unsuccessful v5 PUBREL received in the last minute + to: sysadmin + +template: vernemq_mqtt_pubrel_sent_reason_unsuccessful + on: vernemq.mqtt_pubrel_sent_reason + lookup: sum -1m unaligned absolute + calc: $this - $vernemq_mqtt_pubrel_sent_reason_success + units: packets + every: 10s + warn: $this > 0 + delay: down 5m multiplier 1.5 max 2h + info: unsuccessful v5 PUBREL sent in the last minute + to: sysadmin + +# Unsuccessful and unexpected PUBCOMP + +template: vernemq_mqtt_pubcomp_received_reason_success + on: vernemq.mqtt_pubcomp_received_reason + lookup: sum -1m unaligned absolute match-names of success + units: packets + every: 10s + info: successful v5 PUBCOMP received in the last minute + to: sysadmin + +template: vernemq_mqtt_pubcomp_sent_reason_success + on: vernemq.mqtt_pubcomp_sent_reason + lookup: sum -1m unaligned absolute match-names of success + units: packets + every: 10s + info: successful v5 PUBCOMP sent in the last minute + to: sysadmin + +template: vernemq_mqtt_pubcomp_received_reason_unsuccessful + on: vernemq.mqtt_pubcomp_received_reason + lookup: sum -1m unaligned absolute + calc: $this - $vernemq_mqtt_pubcomp_received_reason_success + units: packets + every: 10s + warn: $this > 0 + delay: down 5m multiplier 1.5 max 2h + info: unsuccessful v5 PUBCOMP received in the last minute + to: sysadmin + +template: vernemq_mqtt_pubcomp_sent_reason_unsuccessful + on: vernemq.mqtt_pubcomp_sent_reason + lookup: sum -1m unaligned absolute + calc: $this - $vernemq_mqtt_pubcomp_sent_reason_success + units: packets + every: 10s + warn: $this > 0 + delay: down 5m multiplier 1.5 max 2h + info: unsuccessful v5 PUBCOMP sent in the last minute + to: sysadmin + +template: vernemq_mqtt_pubcomp_unexpected + on: vernemq.mqtt_pubcomp_invalid_error + lookup: sum -1m unaligned absolute + units: messages + every: 10s + warn: $this > 0 + delay: down 5m multiplier 1.5 max 2h + info: unexpected v3/v5 PUBCOMP received in the last minute + to: sysadmin diff --git a/packaging/go.d.checksums b/packaging/go.d.checksums index 798558abbf..2a5223b503 100644 --- a/packaging/go.d.checksums +++ b/packaging/go.d.checksums @@ -1,16 +1,16 @@ -eac6cdc2f38986ba8605030b6ac41304b5f03e880fc9fea943ed034fc8f7490a *config.tar.gz -7021f071689e4efa879d557f4a76c369e3a7b95c093913ba3c5429087e093258 *go.d.plugin-v0.15.0.darwin-386.tar.gz -ac16155b37fd51c5d333e490b4e5b85e3388b3b42ae9bb5bc828f78aa1cbd58a *go.d.plugin-v0.15.0.darwin-amd64.tar.gz -5d34e399ee75db0fce858a34038b3d645c8b5c80b26c346f6908117a738899ff *go.d.plugin-v0.15.0.freebsd-386.tar.gz -d2ff775c11dcf8c90ab92e8d229a74980bb498513cc7411962cdc8056cb22eef *go.d.plugin-v0.15.0.freebsd-amd64.tar.gz -3563424c41ca047786a9ef80ac25704d27d53e7b64b8252ce30d3b54b3d1638f *go.d.plugin-v0.15.0.freebsd-arm.tar.gz -8e8e52bde2da6ce98fa902bad164152c53632fc7b1e1c9f689a89c0e5a87548f *go.d.plugin-v0.15.0.linux-386.tar.gz -292546c3338b372441816be12e13f7fe6951281c2f03cff947d9bfb0cb39aeb2 *go.d.plugin-v0.15.0.linux-amd64.tar.gz -ab5fb4d2f277255de31ca9330aacb67ebab2f10c398dc96f207eefefae1960ce *go.d.plugin-v0.15.0.linux-arm.tar.gz -93ebd48c2b781fb42a26e21759885772d08e3ee2eea46b12e10681ff6c914de6 *go.d.plugin-v0.15.0.linux-arm64.tar.gz -c83e8c758b116c13184314158ed5e7516fa4467a50e43b7d30bd466938e1a0c7 *go.d.plugin-v0.15.0.linux-mips.tar.gz -7a036e6e74ac13b82a6baedf61208a6eae6dc1b57da50ad47b2fc5a376ef680a *go.d.plugin-v0.15.0.linux-mips64.tar.gz -8f5a92bc4feac4ae44c0881e0de4490643fccc2d7e0867de437e0d08fc858256 *go.d.plugin-v0.15.0.linux-mips64le.tar.gz -5a87a29f6a723d7bdc063e767c20c377cb8383edca96f36a3ed45d3434b7b157 *go.d.plugin-v0.15.0.linux-mipsle.tar.gz -b67f5ed415c8f2109c916f655c60d2d61cb520623065bee770941bf8f40af1cc *go.d.plugin-v0.15.0.linux-ppc64.tar.gz -69ab1728f6017e3e83db5971a6e57dabdb5b9190ae1d817ee9b010bc0a2995a0 *go.d.plugin-v0.15.0.linux-ppc64le.tar.gz +eee3a36a5290e9c960f5c0dddefd3ad81cbbf3cb5c17a58bfa052f83a2664491 *config.tar.gz +134cc8747cf8da09af1ff8d75949aaa2c993f531a5922b2d17e5dabcb7110358 *go.d.plugin-v0.16.0.darwin-386.tar.gz +055a1cdd213031bd7a953a908761d1e38113cb1be3b36222a8d0ff53cef211cf *go.d.plugin-v0.16.0.darwin-amd64.tar.gz +992b77cbcd6b7011e7cce23cf272b6fff4496fe612e8cc64c682960d19e0c2de *go.d.plugin-v0.16.0.freebsd-386.tar.gz +450bb1c12fad358f57639791a977696b9f2a0d08454b72e55c359b4a9d2af516 *go.d.plugin-v0.16.0.freebsd-amd64.tar.gz +49c30ae1ec8a34eccb9b309b1523b26fc5a3be17c2f01ed50d49755f985bf743 *go.d.plugin-v0.16.0.freebsd-arm.tar.gz +189943a310c7edddf059b86a5fe5bcbf8b7500a257877bd5e2d441c7a5f701e7 *go.d.plugin-v0.16.0.linux-386.tar.gz +30442ed1290c0b3a35d1ddaf58fd95a407d3eb20dc556340fef840915c278f03 *go.d.plugin-v0.16.0.linux-amd64.tar.gz +12065625c51cc957136bb1185b698584c866818b205844b9ccecb8dede5bf2f9 *go.d.plugin-v0.16.0.linux-arm.tar.gz +24e5cf2348c3e3739667b0d64a5580f46e30d56e4a71908976b5259d8e229303 *go.d.plugin-v0.16.0.linux-arm64.tar.gz +0ff30e64a0f25908ca18d2d088f024f8397b6435a5920b4332265c76c010f506 *go.d.plugin-v0.16.0.linux-mips.tar.gz +1592c5af8e44beaae47e8795509a7acdd6f014c12fb0f02cbd31f721f29e047a *go.d.plugin-v0.16.0.linux-mips64.tar.gz +25dd720d31a39236d63cb6e7829ceb1058bbede30a0a7bc7a6370dc090eabd77 *go.d.plugin-v0.16.0.linux-mips64le.tar.gz +246028321a9172e8228f8ae1f451aba54dd70ad8baf73d394bf7169269ed1657 *go.d.plugin-v0.16.0.linux-mipsle.tar.gz +6cd8851bc79fa54c1f92e48a0438c8c7640f7f2e2eff64c8fd960ad490df0fa7 *go.d.plugin-v0.16.0.linux-ppc64.tar.gz +4ec63e504478fa180127dddb95a663465df9c12a0f2de37bcc0f5d4412e55b04 *go.d.plugin-v0.16.0.linux-ppc64le.tar.gz diff --git a/packaging/go.d.version b/packaging/go.d.version index 86dd09abce..cfe6c00945 100644 --- a/packaging/go.d.version +++ b/packaging/go.d.version @@ -1 +1 @@ -v0.15.0 +v0.16.0 diff --git a/web/gui/dashboard_info.js b/web/gui/dashboard_info.js index d668311534..aa7cd4e06d 100644 --- a/web/gui/dashboard_info.js +++ b/web/gui/dashboard_info.js @@ -546,7 +546,13 @@ netdataDashboard.menu = { title: 'eBPF', icon: '<i class="fas fa-heartbeat"></i>', info: 'Monitor system calls, internal functtions, bytes read, bytes written and errors using <code>eBPF</code>.' - } + }, + + 'vernemq': { + title: 'VerneMQ', + icon: '<i class="fas fa-comments"></i>', + info: 'Performance data for the <b><a href="https://vernemq.com/">VerneMQ</a></b> open-source MQTT broker.' + }, }; @@ -3066,6 +3072,126 @@ netdataDashboard.context = { 'ebpf.process_status': { info: 'This chart demonstrate the difference between the number of process created and the number of threads created per period(\'process\' dimension), it also shows the number of possible zombie process running on system.' - } + }, + // ------------------------------------------------------------------------ + // VerneMQ + + 'vernemq.sockets': { + mainheads: [ + function (os, id) { + void (os); + return '<div data-netdata="' + id + '"' + + ' data-dimensions="open_sockets"' + + ' data-chart-library="gauge"' + + ' data-title="Connected Clients"' + + ' data-units="clients"' + + ' data-gauge-adjust="width"' + + ' data-width="16%"' + + ' data-before="0"' + + ' data-after="-CHART_DURATION"' + + ' data-points="CHART_DURATION"' + + ' data-colors="' + NETDATA.colors[4] + '"' + + ' data-decimal-digits="2"' + + ' role="application"></div>'; + } + ] + }, + 'vernemq.queue_processes': { + mainheads: [ + function (os, id) { + void (os); + return '<div data-netdata="' + id + '"' + + ' data-dimensions="queue_processes"' + + ' data-chart-library="gauge"' + + ' data-title="Queues Processes"' + + ' data-units="processes"' + + ' data-gauge-adjust="width"' + + ' data-width="16%"' + + ' data-before="0"' + + ' data-after="-CHART_DURATION"' + + ' data-points="CHART_DURATION"' + + ' data-colors="' + NETDATA.colors[4] + '"' + + ' data-decimal-digits="2"' + + ' role="application"></div>'; + } + ] + }, + 'vernemq.queue_messages_in_queues': { + mainheads: [ + function (os, id) { + void (os); + return '<div data-netdata="' + id + '"' + + ' data-dimensions="queue_messages_current"' + + ' data-chart-library="gauge"' + + ' data-title="Messages in the Queues"' + + ' data-units="messages"' + + ' data-gauge-adjust="width"' + + ' data-width="16%"' + + ' data-before="0"' + + ' data-after="-CHART_DURATION"' + + ' data-points="CHART_DURATION"' + + ' data-colors="' + NETDATA.colors[2] + '"' + + ' data-decimal-digits="2"' + + ' role="application"></div>'; + } + ] + }, + 'vernemq.queue_messages': { + mainheads: [ + function (os, id) { + void (os); + return '<div data-netdata="' + id + '"' + + ' data-dimensions="queue_message_in"' + + ' data-chart-library="easypiechart"' + + ' data-title="MQTT Recieve Rate"' + + ' data-units="messages/s"' + + ' data-gauge-adjust="width"' + + ' data-width="14%"' + + ' data-before="0"' + + ' data-after="-CHART_DURATION"' + + ' data-points="CHART_DURATION"' + + ' data-colors="' + NETDATA.colors[0] + '"' + + ' data-decimal-digits="2"' + + ' role="application"></div>'; + }, + function (os, id) { + void (os); + return '<div data-netdata="' + id + '"' + + ' data-dimensions="queue_message_out"' + + ' data-chart-library="easypiechart"' + + ' data-title="MQTT Send Rate"' + + ' data-units="messages/s"' + + ' data-gauge-adjust="width"' + + ' data-width="14%"' + + ' data-before="0"' + + ' data-after="-CHART_DURATION"' + + ' data-points="CHART_DURATION"' + + ' data-colors="' + NETDATA.colors[1] + '"' + + ' data-decimal-digits="2"' + + ' role="application"></div>'; + }, + ] + }, + 'vernemq.average_scheduler_utilization': { + mainheads: [ + function (os, id) { + void (os); + return '<div data-netdata="' + id + '"' + + ' data-dimensions="system_utilization"' + + ' data-chart-library="gauge"' + + ' data-gauge-max-value="100"' + + ' data-title="Average Scheduler Utilization"' + + ' data-units="percentage"' + + ' data-gauge-adjust="width"' + + ' data-width="16%"' + + ' data-before="0"' + + ' data-after="-CHART_DURATION"' + + ' data-points="CHART_DURATION"' + + ' data-colors="' + NETDATA.colors[3] + '"' + + ' data-decimal-digits="2"' + + ' role="application"></div>'; + } + ] + }, }; |