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  )