github.com/netdata/go.d.plugin@v0.58.1/modules/vernemq/metrics.go (about) 1 // SPDX-License-Identifier: GPL-3.0-or-later 2 3 package vernemq 4 5 // Source Code Metrics: 6 // - https://github.com/vernemq/vernemq/blob/master/apps/vmq_server/src/vmq_metrics.erl 7 // - https://github.com/vernemq/vernemq/blob/master/apps/vmq_server/src/vmq_metrics.hrl 8 9 // Source Code FSM: 10 // - https://github.com/vernemq/vernemq/blob/master/apps/vmq_server/src/vmq_mqtt_fsm.erl 11 // - https://github.com/vernemq/vernemq/blob/master/apps/vmq_server/src/vmq_mqtt5_fsm.erl 12 13 // MQTT Packet Types: 14 // - v4: http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/errata01/os/mqtt-v3.1.1-errata01-os-complete.html#_Toc442180834 15 // - v5: https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901019 16 17 // Erlang VM: 18 // - http://erlang.org/documentation/doc-5.7.1/erts-5.7.1/doc/html/erlang.html 19 20 // Not used metrics (https://docs.vernemq.com/monitoring/introduction): 21 // - "mqtt_connack_accepted_sent" // v4, not populated, "mqtt_connack_sent" used instead 22 // - "mqtt_connack_unacceptable_protocol_sent" // v4, not populated, "mqtt_connack_sent" used instead 23 // - "mqtt_connack_identifier_rejected_sent" // v4, not populated, "mqtt_connack_sent" used instead 24 // - "mqtt_connack_server_unavailable_sent" // v4, not populated, "mqtt_connack_sent" used instead 25 // - "mqtt_connack_bad_credentials_sent" // v4, not populated, "mqtt_connack_sent" used instead 26 // - "mqtt_connack_not_authorized_sent" // v4, not populated, "mqtt_connack_sent" used instead 27 // - "system_exact_reductions" 28 // - "system_runtime" 29 // - "vm_memory_atom" 30 // - "vm_memory_atom_used" 31 // - "vm_memory_binary" 32 // - "vm_memory_code" 33 // - "vm_memory_ets" 34 // - "vm_memory_processes_used" 35 // - "vm_memory_total" 36 37 // -----------------------------------------------MQTT------------------------------------------------------------------ 38 const ( 39 // AUTH 40 metricAUTHReceived = "mqtt_auth_received" // v5 has 'reason_code' label 41 metricAUTHSent = "mqtt_auth_sent" // v5 has 'reason_code' label 42 43 // CONNECT 44 metricCONNECTReceived = "mqtt_connect_received" // v4, v5 45 metricCONNACKSent = "mqtt_connack_sent" // v4 has 'return_code' label, v5 has 'reason_code' 46 47 // SUBSCRIBE 48 metricSUBSCRIBEReceived = "mqtt_subscribe_received" // v4, v5 49 metricSUBACKSent = "mqtt_suback_sent" // v4, v5 50 metricSUBSCRIBEError = "mqtt_subscribe_error" // v4, v5 51 metricSUBSCRIBEAuthError = "mqtt_subscribe_auth_error" // v4, v5 52 53 // UNSUBSCRIBE 54 metricUNSUBSCRIBEReceived = "mqtt_unsubscribe_received" // v4, v5 55 metricUNSUBACKSent = "mqtt_unsuback_sent" // v4, v5 56 metricUNSUBSCRIBEError = "mqtt_unsubscribe_error" // v4, v5 57 58 // PUBLISH 59 metricPUBSLISHReceived = "mqtt_publish_received" // v4, v5 60 metricPUBSLIHSent = "mqtt_publish_sent" // v4, v5 61 metricPUBLISHError = "mqtt_publish_error" // v4, v5 62 metricPUBLISHAuthError = "mqtt_publish_auth_error" // v4, v5 63 64 // Publish acknowledgment (QoS 1) 65 metricPUBACKReceived = "mqtt_puback_received" // v4, v5 has 'reason_code' label 66 metricPUBACKSent = "mqtt_puback_sent" // v4, v5 has 'reason_code' label 67 metricPUBACKInvalid = "mqtt_puback_invalid_error" // v4, v5 68 69 // Publish received (QoS 2 delivery part 1) 70 metricPUBRECReceived = "mqtt_pubrec_received" // v4, v5 has 'reason_code' label 71 metricPUBRECSent = "mqtt_pubrec_sent" // v4, v5 has 'reason_code' label 72 metricPUBRECInvalid = "mqtt_pubrec_invalid_error" // v4 73 74 // Publish release (QoS 2 delivery part 2) 75 metricPUBRELReceived = "mqtt_pubrel_received" // v4, v5 has 'reason_code' label 76 metricPUBRELSent = "mqtt_pubrel_sent" // v4, v5 has 'reason_code' label 77 78 // Publish complete (QoS 2 delivery part 3) 79 metricPUBCOMPReceived = "mqtt_pubcomp_received" // v4, v5 has 'reason_code' label 80 metricPUBCOMPSent = "mqtt_pubcomp_sent" // v4, v5 has 'reason_code' label 81 metricPUNCOMPInvalid = "mqtt_pubcomp_invalid_error" // v4, v5 82 83 // PING 84 metricPINGREQReceived = "mqtt_pingreq_received" // v4, v5 85 metricPINGRESPSent = "mqtt_pingresp_sent" // v4, v5 86 87 // DISCONNECT 88 metricDISCONNECTReceived = "mqtt_disconnect_received" // v4, v5 has 'reason_code' label 89 metricDISCONNECTSent = "mqtt_disconnect_sent" // v5 has 'reason_code' label 90 91 // Misc 92 metricMQTTInvalidMsgSizeError = "mqtt_invalid_msg_size_error" // v4, v5 93 ) 94 95 const ( 96 // Sockets 97 metricSocketOpen = "socket_open" 98 metricSocketClose = "socket_close" 99 metricSocketError = "socket_error" 100 metricSocketCloseTimeout = "socket_close_timeout" 101 metricClientKeepaliveExpired = "client_keepalive_expired" // v4, v5 102 103 // Queues 104 metricQueueProcesses = "queue_processes" 105 metricQueueSetup = "queue_setup" 106 metricQueueTeardown = "queue_teardown" 107 metricQueueMessageIn = "queue_message_in" 108 metricQueueMessageOut = "queue_message_out" 109 metricQueueMessageDrop = "queue_message_drop" 110 metricQueueMessageExpired = "queue_message_expired" 111 metricQueueMessageUnhandled = "queue_message_unhandled" 112 metricQueueInitializedFromStorage = "queue_initialized_from_storage" 113 114 // Subscriptions 115 metricRouterMatchesLocal = "router_matches_local" 116 metricRouterMatchesRemote = "router_matches_remote" 117 metricRouterMemory = "router_memory" 118 metricRouterSubscriptions = "router_subscriptions" 119 120 // Erlang VM 121 metricSystemUtilization = "system_utilization" 122 metricSystemProcessCount = "system_process_count" 123 metricSystemReductions = "system_reductions" 124 metricSystemContextSwitches = "system_context_switches" 125 metricSystemIOIn = "system_io_in" 126 metricSystemIOOut = "system_io_out" 127 metricSystemRunQueue = "system_run_queue" 128 metricSystemGCCount = "system_gc_count" 129 metricSystemWordsReclaimedByGC = "system_words_reclaimed_by_gc" 130 metricVMMemoryProcesses = "vm_memory_processes" 131 metricVMMemorySystem = "vm_memory_system" 132 133 // Bandwidth 134 metricBytesReceived = "bytes_received" 135 metricBytesSent = "bytes_sent" 136 137 // Retain 138 metricRetainMemory = "retain_memory" 139 metricRetainMessages = "retain_messages" 140 141 // Cluster 142 metricClusterBytesDropped = "cluster_bytes_dropped" 143 metricClusterBytesReceived = "cluster_bytes_received" 144 metricClusterBytesSent = "cluster_bytes_sent" 145 metricNetSplitDetected = "netsplit_detected" 146 metricNetSplitResolved = "netsplit_resolved" 147 148 // Uptime 149 metricSystemWallClock = "system_wallclock" 150 )