prometheus_vm_dist_collector (prometheus v5.1.1)

View Source

Collects information about the sockets and processes involved in the Erlang distribution mechanism.

All metrics include a label 'peer' that indicates which distributed connection the metric is about.

Exported metrics

Metrics pertaining to processes may apply to three different types of processes depending on the distribution transport: type=\"dist\", type=\"tls_connection\" or type=\"tls_sender\".

  • erlang_vm_dist_recv_bytes Type: gauge. Number of bytes received by the socket.
  • erlang_vm_dist_recv_cnt Type: gauge. Number of packets received by the socket.
  • erlang_vm_dist_recv_max_bytes Type: gauge. Size of the largest packet, in bytes, received by the socket.
  • erlang_vm_dist_recv_avg_bytes Type: gauge. Average size of packets, in bytes, received by the socket.
  • erlang_vm_dist_recv_dvi_bytes Type: gauge. Average packet size deviation, in bytes, received by the socket.
  • erlang_vm_dist_send_bytes Type: gauge. Number of bytes sent from the socket.
  • erlang_vm_dist_send_cnt Type: gauge. Number of packets sent from the socket.
  • erlang_vm_dist_send_max_bytes Type: gauge. Size of the largest packet, in bytes, sent from the socket.
  • erlang_vm_dist_send_avg_bytes Type: gauge. Average size of packets, in bytes, sent from the socket.
  • erlang_vm_dist_send_pend_bytes Type: gauge. Number of bytes waiting to be sent by the socket.
  • erlang_vm_dist_port_input_bytes Type: gauge. The total number of bytes read from the port.
  • erlang_vm_dist_port_output_bytes Type: gauge. The total number of bytes written to the port.
  • erlang_vm_dist_port_memory_bytes Type: gauge. The total number of bytes allocated for this port by the runtime system. The port itself can have allocated memory that is not included.
  • erlang_vm_dist_port_queue_size_bytes Type: gauge. The total number of bytes queued by the port using the ERTS driver queue implementation.
  • erlang_vm_dist_proc_memory_bytes Type: gauge. The size in bytes of the process. This includes call stack, heap, and internal structures.
  • erlang_vm_dist_proc_heap_size_words Type: gauge. The size in words of the youngest heap generation of the process. This generation includes the process stack. This information is highly implementation-dependent, and can change if the implementation changes.
  • erlang_vm_dist_proc_min_heap_size_words Type: gauge. The minimum heap size for the process.
  • erlang_vm_dist_proc_min_bin_vheap_size_words Type: gauge. The minimum binary virtual heap size for the process.
  • erlang_vm_dist_proc_stack_size_words Type: gauge. The stack size, in words, of the process.
  • erlang_vm_dist_proc_total_heap_size_words Type: gauge. The total size, in words, of all heap fragments of the process. This includes the process stack and any unreceived messages that are considered to be part of the heap.
  • erlang_vm_dist_proc_message_queue_len Type: gauge. The number of messages currently in the message queue of the process.
  • erlang_vm_dist_proc_reductions Type: gauge. The number of reductions executed by the process.
  • erlang_vm_dist_proc_status Type: gauge. The current status of the distribution process. The status is represented as a numerical value where exiting=1, suspended=2, runnable=3, garbage_collecting=4, running=5 and waiting=6.
  • erlang_vm_dist_node_state Type: gauge. The current state of the distribution link. The state is represented as a numerical value where pending=1, up_pending=2 and up=3.
  • erlang_vm_dist_node_queue_size_bytes Type: gauge. The number of bytes in the output distribution queue. This queue sits between the Erlang code and the port driver.

Configuration

Metrics exported by this collector can be configured via vm_dist_collector_metrics key of the prometheus app environment.

Available options:

  • recv_bytes for erlang_vm_dist_recv_bytes.
  • recv_cnt for erlang_vm_dist_recv_cnt.
  • recv_max_bytes for erlang_vm_dist_recv_max_bytes.
  • recv_avg_bytes for erlang_vm_dist_recv_avg_bytes.
  • recv_dvi_bytes for erlang_vm_dist_recv_dvi_bytes.
  • send_bytes for erlang_vm_dist_send_bytes.
  • send_cnt for erlang_vm_dist_send_cnt.
  • send_max_bytes for erlang_vm_dist_send_max_bytes.
  • send_avg_bytes for erlang_vm_dist_send_avg_bytes.
  • send_pend_bytes for erlang_vm_dist_send_pend_bytes.
  • port_input_bytes for erlang_vm_dist_port_input_bytes.
  • port_output_bytes for erlang_vm_dist_port_output_bytes.
  • port_memory_bytes for erlang_vm_dist_port_memory_bytes.
  • port_queue_size_bytes for erlang_vm_dist_port_queue_size_bytes.
  • proc_memory_bytes for erlang_vm_dist_proc_memory_bytes.
  • proc_heap_size_words for erlang_vm_dist_proc_heap_size_words.
  • proc_min_heap_size_words for erlang_vm_dist_proc_min_heap_size_words.
  • proc_min_bin_vheap_size_words for erlang_vm_dist_proc_min_bin_vheap_size_words.
  • proc_stack_size_words for erlang_vm_dist_proc_stack_size_words.
  • proc_total_heap_size_words for erlang_vm_dist_proc_total_heap_size_words.
  • proc_message_queue_len for erlang_vm_dist_proc_message_queue_len.
  • proc_reductions for erlang_vm_dist_proc_reductions.
  • proc_status for erlang_vm_dist_proc_status.
  • node_state for erlang_vm_dist_node_state.
  • node_queue_size_bytes for erlang_vm_dist_node_queue_size_bytes.

By default all metrics are enabled.