diff options
Diffstat (limited to '')
-rw-r--r-- | src/go/collectors/go.d.plugin/modules/vernemq/metrics.go | 150 |
1 files changed, 150 insertions, 0 deletions
diff --git a/src/go/collectors/go.d.plugin/modules/vernemq/metrics.go b/src/go/collectors/go.d.plugin/modules/vernemq/metrics.go new file mode 100644 index 000000000..863cc6355 --- /dev/null +++ b/src/go/collectors/go.d.plugin/modules/vernemq/metrics.go @@ -0,0 +1,150 @@ +// SPDX-License-Identifier: GPL-3.0-or-later + +package vernemq + +// Source Code Metrics: +// - https://github.com/vernemq/vernemq/blob/master/apps/vmq_server/src/vmq_metrics.erl +// - https://github.com/vernemq/vernemq/blob/master/apps/vmq_server/src/vmq_metrics.hrl + +// Source Code FSM: +// - https://github.com/vernemq/vernemq/blob/master/apps/vmq_server/src/vmq_mqtt_fsm.erl +// - https://github.com/vernemq/vernemq/blob/master/apps/vmq_server/src/vmq_mqtt5_fsm.erl + +// MQTT Packet Types: +// - v4: http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/errata01/os/mqtt-v3.1.1-errata01-os-complete.html#_Toc442180834 +// - v5: https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901019 + +// Erlang VM: +// - http://erlang.org/documentation/doc-5.7.1/erts-5.7.1/doc/html/erlang.html + +// Not used metrics (https://docs.vernemq.com/monitoring/introduction): +// - "mqtt_connack_accepted_sent" // v4, not populated, "mqtt_connack_sent" used instead +// - "mqtt_connack_unacceptable_protocol_sent" // v4, not populated, "mqtt_connack_sent" used instead +// - "mqtt_connack_identifier_rejected_sent" // v4, not populated, "mqtt_connack_sent" used instead +// - "mqtt_connack_server_unavailable_sent" // v4, not populated, "mqtt_connack_sent" used instead +// - "mqtt_connack_bad_credentials_sent" // v4, not populated, "mqtt_connack_sent" used instead +// - "mqtt_connack_not_authorized_sent" // v4, not populated, "mqtt_connack_sent" used instead +// - "system_exact_reductions" +// - "system_runtime" +// - "vm_memory_atom" +// - "vm_memory_atom_used" +// - "vm_memory_binary" +// - "vm_memory_code" +// - "vm_memory_ets" +// - "vm_memory_processes_used" +// - "vm_memory_total" + +// -----------------------------------------------MQTT------------------------------------------------------------------ +const ( + // AUTH + metricAUTHReceived = "mqtt_auth_received" // v5 has 'reason_code' label + metricAUTHSent = "mqtt_auth_sent" // v5 has 'reason_code' label + + // CONNECT + metricCONNECTReceived = "mqtt_connect_received" // v4, v5 + metricCONNACKSent = "mqtt_connack_sent" // v4 has 'return_code' label, v5 has 'reason_code' + + // SUBSCRIBE + metricSUBSCRIBEReceived = "mqtt_subscribe_received" // v4, v5 + metricSUBACKSent = "mqtt_suback_sent" // v4, v5 + metricSUBSCRIBEError = "mqtt_subscribe_error" // v4, v5 + metricSUBSCRIBEAuthError = "mqtt_subscribe_auth_error" // v4, v5 + + // UNSUBSCRIBE + metricUNSUBSCRIBEReceived = "mqtt_unsubscribe_received" // v4, v5 + metricUNSUBACKSent = "mqtt_unsuback_sent" // v4, v5 + metricUNSUBSCRIBEError = "mqtt_unsubscribe_error" // v4, v5 + + // PUBLISH + metricPUBSLISHReceived = "mqtt_publish_received" // v4, v5 + metricPUBSLIHSent = "mqtt_publish_sent" // v4, v5 + metricPUBLISHError = "mqtt_publish_error" // v4, v5 + metricPUBLISHAuthError = "mqtt_publish_auth_error" // v4, v5 + + // Publish acknowledgment (QoS 1) + metricPUBACKReceived = "mqtt_puback_received" // v4, v5 has 'reason_code' label + metricPUBACKSent = "mqtt_puback_sent" // v4, v5 has 'reason_code' label + metricPUBACKInvalid = "mqtt_puback_invalid_error" // v4, v5 + + // Publish received (QoS 2 delivery part 1) + metricPUBRECReceived = "mqtt_pubrec_received" // v4, v5 has 'reason_code' label + metricPUBRECSent = "mqtt_pubrec_sent" // v4, v5 has 'reason_code' label + metricPUBRECInvalid = "mqtt_pubrec_invalid_error" // v4 + + // Publish release (QoS 2 delivery part 2) + metricPUBRELReceived = "mqtt_pubrel_received" // v4, v5 has 'reason_code' label + metricPUBRELSent = "mqtt_pubrel_sent" // v4, v5 has 'reason_code' label + + // Publish complete (QoS 2 delivery part 3) + metricPUBCOMPReceived = "mqtt_pubcomp_received" // v4, v5 has 'reason_code' label + metricPUBCOMPSent = "mqtt_pubcomp_sent" // v4, v5 has 'reason_code' label + metricPUNCOMPInvalid = "mqtt_pubcomp_invalid_error" // v4, v5 + + // PING + metricPINGREQReceived = "mqtt_pingreq_received" // v4, v5 + metricPINGRESPSent = "mqtt_pingresp_sent" // v4, v5 + + // DISCONNECT + metricDISCONNECTReceived = "mqtt_disconnect_received" // v4, v5 has 'reason_code' label + metricDISCONNECTSent = "mqtt_disconnect_sent" // v5 has 'reason_code' label + + // Misc + metricMQTTInvalidMsgSizeError = "mqtt_invalid_msg_size_error" // v4, v5 +) + +const ( + // Sockets + metricSocketOpen = "socket_open" + metricSocketClose = "socket_close" + metricSocketError = "socket_error" + metricSocketCloseTimeout = "socket_close_timeout" + metricClientKeepaliveExpired = "client_keepalive_expired" // v4, v5 + + // Queues + metricQueueProcesses = "queue_processes" + metricQueueSetup = "queue_setup" + metricQueueTeardown = "queue_teardown" + metricQueueMessageIn = "queue_message_in" + metricQueueMessageOut = "queue_message_out" + metricQueueMessageDrop = "queue_message_drop" + metricQueueMessageExpired = "queue_message_expired" + metricQueueMessageUnhandled = "queue_message_unhandled" + metricQueueInitializedFromStorage = "queue_initialized_from_storage" + + // Subscriptions + metricRouterMatchesLocal = "router_matches_local" + metricRouterMatchesRemote = "router_matches_remote" + metricRouterMemory = "router_memory" + metricRouterSubscriptions = "router_subscriptions" + + // Erlang VM + metricSystemUtilization = "system_utilization" + metricSystemProcessCount = "system_process_count" + metricSystemReductions = "system_reductions" + metricSystemContextSwitches = "system_context_switches" + metricSystemIOIn = "system_io_in" + metricSystemIOOut = "system_io_out" + metricSystemRunQueue = "system_run_queue" + metricSystemGCCount = "system_gc_count" + metricSystemWordsReclaimedByGC = "system_words_reclaimed_by_gc" + metricVMMemoryProcesses = "vm_memory_processes" + metricVMMemorySystem = "vm_memory_system" + + // Bandwidth + metricBytesReceived = "bytes_received" + metricBytesSent = "bytes_sent" + + // Retain + metricRetainMemory = "retain_memory" + metricRetainMessages = "retain_messages" + + // Cluster + metricClusterBytesDropped = "cluster_bytes_dropped" + metricClusterBytesReceived = "cluster_bytes_received" + metricClusterBytesSent = "cluster_bytes_sent" + metricNetSplitDetected = "netsplit_detected" + metricNetSplitResolved = "netsplit_resolved" + + // Uptime + metricSystemWallClock = "system_wallclock" +) |