Docs » Integrations Guide » Integrations Reference » RabbitMQ

../../_images/integrations_rabbitmq.png RabbitMQ πŸ”—

DESCRIPTION πŸ”—

This integration primarily consists of the Smart Agent monitor collectd/rabbitmq. Below is an overview of that monitor.

Smart Agent Monitor πŸ”—

Monitors an instance of RabbitMQ using the collectd RabbitMQ Python Plugin. This monitor uses the RabbitMQ Management HTTP API to poll for statistics on a RabbitMQ server, then reports them to the agent. Works for RabbitMQ 3.0 and later.

Note that you must individually enable each of the five collect* options to get metrics pertaining to those facets of a RabbitMQ instance. If none of them are enabled, no metrics will be sent.

INSTALLATION πŸ”—

This integration is part of the SignalFx Smart Agent as the collectd/rabbitmq monitor. You should first deploy the Smart Agent to the same host as the service you want to monitor, and then continue with the configuration instructions below.

CONFIGURATION πŸ”—

To activate this monitor in the Smart Agent, add the following to your agent config:

monitors:  # All monitor config goes under this key
 - type: collectd/rabbitmq
   ...  # Additional config

For a list of monitor options that are common to all monitors, see Common Configuration.

Config option Required Type Description
pythonBinary no string Path to a python binary that should be used to execute the Python code. If not set, a built-in runtime will be used. Can include arguments to the binary as well.
host yes string
port yes integer
brokerName no string The name of the particular RabbitMQ instance. Can be a Go template using other config options. This will be used as the plugin_instance dimension. (default: {{.host}}-{{.port}})
collectChannels no bool (default: false)
collectConnections no bool (default: false)
collectExchanges no bool (default: false)
collectNodes no bool (default: false)
collectQueues no bool (default: false)
httpTimeout no integer
verbosityLevel no string
username yes string
password yes string

USAGE πŸ”—

Sample of built-in dashboard in SignalFx:

../../_images/dashboard_rabbitmq.png

METRICS πŸ”—

Metric Name Description Type
counter.channel.message_stats.ack The number of acknowledged messages counter
counter.channel.message_stats.confirm Count of messages confirmed counter
counter.channel.message_stats.deliver Count of messages delivered in acknowledgement mode to consumers counter
counter.channel.message_stats.deliver_get Count of all messages delivered on the channel counter
counter.channel.message_stats.publish Count of messages published counter
counter.connection.channel_max The maximum number of channels on the connection counter
counter.connection.recv_cnt Number of packets received on the connection counter
counter.connection.recv_oct Number of octets received on the connection counter
counter.connection.send_cnt Number of packets sent by the connection counter
counter.connection.send_oct Number of octets sent by the connection counter
counter.exchange.message_stats.confirm Count of messages confirmed counter
counter.exchange.message_stats.publish_in Count of messages published "in" to an exchange, i.e counter
counter.exchange.message_stats.publish_out Count of messages published "out" of an exchange, i.e counter
counter.node.io_read_bytes Total number of bytes read from disk by the persister counter
counter.node.io_read_count Total number of read operations by the persister counter
counter.node.mnesia_disk_tx_count Number of Mnesia transactions which have been performed that required writes to disk counter
counter.node.mnesia_ram_tx_count Number of Mnesia transactions which have been performed that did not require writes to disk counter
counter.queue.disk_reads Total number of times messages have been read from disk by this queue since it started counter
counter.queue.disk_writes Total number of times messages have been written to disk by this queue since it started counter
counter.queue.message_stats.ack Number of acknowledged messages processed by the queue counter
counter.queue.message_stats.deliver Count of messages delivered in acknowledgement mode to consumers counter
counter.queue.message_stats.deliver_get Count of all messages delivered on the queue counter
counter.queue.message_stats.publish Count of messages published counter
gauge.channel.connection_details.peer_port The peer port number of the channel gauge
gauge.channel.consumer_count The number of consumers the channel has gauge
gauge.channel.global_prefetch_count QoS prefetch limit for the entire channel, 0 if unlimited gauge
gauge.channel.message_stats.ack_details.rate How much the channel message ack count has changed per second in the most recent sampling interval gauge
gauge.channel.message_stats.confirm_details.rate How much the channel message confirm count has changed per second in the most recent sampling interval gauge
gauge.channel.message_stats.deliver_details.rate How much the channel deliver count has changed per second in the most recent sampling interval gauge
gauge.channel.message_stats.deliver_get_details.rate How much the channel message count has changed per second in the most recent sampling interval gauge
gauge.channel.message_stats.publish_details.rate How much the channel message publish count has changed per second in the most recent sampling interval gauge
gauge.channel.messages_unacknowledged Number of messages delivered via this channel but not yet acknowledged gauge
gauge.channel.messages_uncommitted Number of messages received in an as yet uncommitted transaction gauge
gauge.channel.messages_unconfirmed Number of published messages not yet confirmed gauge
gauge.channel.number The number of the channel, which uniquely identifies it within a connection gauge
gauge.channel.prefetch_count QoS prefetch limit for new consumers, 0 if unlimited gauge
gauge.connection.channels The current number of channels on the connection gauge
gauge.connection.connected_at The integer timestamp of the most recent time the connection was established gauge
gauge.connection.frame_max Maximum permissible size of a frame (in bytes) to negotiate with clients gauge
gauge.connection.peer_port The peer port of the connection gauge
gauge.connection.port The port the connection is established on gauge
gauge.connection.recv_oct_details.rate How much the connection's octets received count has changed per second in the most recent sampling interval gauge
gauge.connection.send_oct_details.rate How much the connection's octets sent count has changed per second in the most recent sampling interval gauge
gauge.connection.send_pend The number of messages in the send queue of the connection gauge
gauge.connection.timeout The current timeout setting (in seconds) of the connection gauge
gauge.exchange.message_stats.confirm_details.rate How much the message confirm count has changed per second in the most recent sampling interval gauge
gauge.exchange.message_stats.publish_in_details.rate How much the exchange publish-in count has changed per second in the most recent sampling interval gauge
gauge.exchange.message_stats.publish_out_details.rate How much the exchange publish-out count has changed per second in the most recent sampling interval gauge
gauge.node.disk_free Disk free space (in bytes) on the node gauge
gauge.node.disk_free_details.rate How much the disk free space has changed per second in the most recent sampling interval gauge
gauge.node.disk_free_limit Point (in bytes) at which the disk alarm will go off gauge
gauge.node.fd_total Total number of file descriptors available gauge
gauge.node.fd_used Number of used file descriptors gauge
gauge.node.fd_used_details.rate How much the number of used file descriptors has changed per second in the most recent sampling interval gauge
gauge.node.io_read_avg_time Average wall time (milliseconds) for each disk read operation in the last statistics interval gauge
gauge.node.io_read_avg_time_details.rate How much the I/O read average time has changed per second in the most recent sampling interval gauge
gauge.node.io_read_bytes_details.rate How much the number of bytes read from disk has changed per second in the most recent sampling interval gauge
gauge.node.io_read_count_details.rate How much the number of read operations has changed per second in the most recent sampling interval gauge
gauge.node.io_sync_avg_time Average wall time (milliseconds) for each fsync() operation in the last statistics interval gauge
gauge.node.io_sync_avg_time_details.rate How much the average I/O sync time has changed per second in the most recent sampling interval gauge
gauge.node.io_write_avg_time Average wall time (milliseconds) for each disk write operation in the last statistics interval gauge
gauge.node.io_write_avg_time_details.rate How much the I/O write time has changed per second in the most recent sampling interval gauge
gauge.node.mem_limit Point (in bytes) at which the memory alarm will go off gauge
gauge.node.mem_used Memory used in bytes gauge
gauge.node.mem_used_details.rate How much the count has changed per second in the most recent sampling interval gauge
gauge.node.mnesia_disk_tx_count_details.rate How much the Mnesia disk transaction count has changed per second in the most recent sampling interval gauge
gauge.node.mnesia_ram_tx_count_details.rate How much the RAM-only Mnesia transaction count has changed per second in the most recent sampling interval gauge
gauge.node.net_ticktime Current kernel net_ticktime setting for the node gauge
gauge.node.proc_total The maximum number of Erlang processes that can run in an Erlang VM gauge
gauge.node.proc_used Number of Erlang processes currently running in use gauge
gauge.node.proc_used_details.rate How much the number of erlang processes in use has changed per second in the most recent sampling interval gauge
gauge.node.processors Number of cores detected and usable by Erlang gauge
gauge.node.run_queue Average number of Erlang processes waiting to run gauge
gauge.node.sockets_total Number of file descriptors available for use as sockets gauge
gauge.node.sockets_used Number of file descriptors used as sockets gauge
gauge.node.sockets_used_details.rate How much the number of sockets used has changed per second in the most recent sampling interval gauge
gauge.node.uptime Time since the Erlang VM started, in milliseconds gauge
gauge.queue.backing_queue_status.avg_ack_egress_rate Rate at which unacknowledged message records leave RAM, e.g gauge
gauge.queue.backing_queue_status.avg_ack_ingress_rate Rate at which unacknowledged message records enter RAM, e.g gauge
gauge.queue.backing_queue_status.avg_egress_rate Average egress (outbound) rate, not including messages that are sent straight through to auto-acking consumers gauge
gauge.queue.backing_queue_status.avg_ingress_rate Average ingress (inbound) rate, not including messages that are sent straight through to auto-acking consumers gauge
gauge.queue.backing_queue_status.len Total backing queue length, in messages gauge
gauge.queue.backing_queue_status.next_seq_id The next sequence ID to be used in the backing queue gauge
gauge.queue.backing_queue_status.q1 Number of messages in backing queue q1 gauge
gauge.queue.backing_queue_status.q2 Number of messages in backing queue q2 gauge
gauge.queue.backing_queue_status.q3 Number of messages in backing queue q3 gauge
gauge.queue.backing_queue_status.q4 Number of messages in backing queue q4 gauge
gauge.queue.consumer_utilisation Fraction of the time (between 0.0 and 1.0) that the queue is able to immediately deliver messages to consumers gauge
gauge.queue.consumers Number of consumers of the queue gauge
gauge.queue.memory Bytes of memory consumed by the Erlang process associated with the queue, including stack, heap and internal structures gauge
gauge.queue.message_bytes Sum of the size of all message bodies in the queue gauge
gauge.queue.message_bytes_persistent Total number of persistent messages in the queue (will always be 0 for transient queues) gauge
gauge.queue.message_bytes_ram Like message_bytes but counting only those messages which are in RAM gauge
gauge.queue.message_bytes_ready Like message_bytes but counting only those messages ready to be delivered to clients gauge
gauge.queue.message_bytes_unacknowledged Like message_bytes but counting only those messages delivered to clients but not yet acknowledged gauge
gauge.queue.message_stats.ack_details.rate How much the number of acknowledged messages has changed per second in the most recent sampling interval gauge
gauge.queue.message_stats.deliver_details.rate How much the count of messages delivered has changed per second in the most recent sampling interval gauge
gauge.queue.message_stats.deliver_get_details.rate How much the count of all messages delivered has changed per second in the most recent sampling interval gauge
gauge.queue.message_stats.publish_details.rate How much the count of messages published has changed per second in the most recent sampling interval gauge
gauge.queue.messages Sum of ready and unacknowledged messages (queue depth) gauge
gauge.queue.messages_details.rate How much the queue depth has changed per second in the most recent sampling interval gauge
gauge.queue.messages_persistent Total number of persistent messages in the queue (will always be 0 for transient queues) gauge
gauge.queue.messages_ram Total number of messages which are resident in RAM gauge
gauge.queue.messages_ready Number of messages ready to be delivered to clients gauge
gauge.queue.messages_ready_details.rate How much the count of messages ready has changed per second in the most recent sampling interval gauge
gauge.queue.messages_ready_ram Number of messages from messages_ready which are resident in RAM gauge
gauge.queue.messages_unacknowledged Number of messages delivered to clients but not yet acknowledged gauge
gauge.queue.messages_unacknowledged_details.rate How much the count of unacknowledged messages has changed per second in the most recent sampling interval gauge
gauge.queue.messages_unacknowledged_ram Number of messages from messages_unacknowledged which are resident in RAM gauge

counter.channel.message_stats.ack πŸ”—

counter

The number of acknowledged messages

counter.channel.message_stats.confirm πŸ”—

counter

Count of messages confirmed.

counter.channel.message_stats.deliver πŸ”—

counter

Count of messages delivered in acknowledgement mode to consumers.

counter.channel.message_stats.deliver_get πŸ”—

counter

Count of all messages delivered on the channel

counter.channel.message_stats.publish πŸ”—

counter

Count of messages published.

counter.connection.channel_max πŸ”—

counter

The maximum number of channels on the connection

counter.connection.recv_cnt πŸ”—

counter

Number of packets received on the connection

counter.connection.recv_oct πŸ”—

counter

Number of octets received on the connection

counter.connection.send_cnt πŸ”—

counter

Number of packets sent by the connection

counter.connection.send_oct πŸ”—

counter

Number of octets sent by the connection

counter.exchange.message_stats.confirm πŸ”—

counter

Count of messages confirmed.

counter.exchange.message_stats.publish_in πŸ”—

counter

Count of messages published β€œin” to an exchange, i.e. not taking account of routing.

counter.exchange.message_stats.publish_out πŸ”—

counter

Count of messages published β€œout” of an exchange, i.e. taking account of routing.

counter.node.io_read_bytes πŸ”—

counter

Total number of bytes read from disk by the persister.

counter.node.io_read_count πŸ”—

counter

Total number of read operations by the persister.

counter.node.mnesia_disk_tx_count πŸ”—

counter

Number of Mnesia transactions which have been performed that required writes to disk.

counter.node.mnesia_ram_tx_count πŸ”—

counter

Number of Mnesia transactions which have been performed that did not require writes to disk.

counter.queue.disk_reads πŸ”—

counter

Total number of times messages have been read from disk by this queue since it started.

counter.queue.disk_writes πŸ”—

counter

Total number of times messages have been written to disk by this queue since it started.

counter.queue.message_stats.ack πŸ”—

counter

Number of acknowledged messages processed by the queue

counter.queue.message_stats.deliver πŸ”—

counter

Count of messages delivered in acknowledgement mode to consumers.

counter.queue.message_stats.deliver_get πŸ”—

counter

Count of all messages delivered on the queue

counter.queue.message_stats.publish πŸ”—

counter

Count of messages published.

gauge.channel.connection_details.peer_port πŸ”—

gauge

The peer port number of the channel

gauge.channel.consumer_count πŸ”—

gauge

The number of consumers the channel has

gauge.channel.global_prefetch_count πŸ”—

gauge

QoS prefetch limit for the entire channel, 0 if unlimited.

gauge.channel.message_stats.ack_details.rate πŸ”—

gauge

How much the channel message ack count has changed per second in the most recent sampling interval.

gauge.channel.message_stats.confirm_details.rate πŸ”—

gauge

How much the channel message confirm count has changed per second in the most recent sampling interval.

gauge.channel.message_stats.deliver_details.rate πŸ”—

gauge

How much the channel deliver count has changed per second in the most recent sampling interval.

gauge.channel.message_stats.deliver_get_details.rate πŸ”—

gauge

How much the channel message count has changed per second in the most recent sampling interval.

gauge.channel.message_stats.publish_details.rate πŸ”—

gauge

How much the channel message publish count has changed per second in the most recent sampling interval.

gauge.channel.messages_unacknowledged πŸ”—

gauge

Number of messages delivered via this channel but not yet acknowledged.

gauge.channel.messages_uncommitted πŸ”—

gauge

Number of messages received in an as yet uncommitted transaction.

gauge.channel.messages_unconfirmed πŸ”—

gauge

Number of published messages not yet confirmed. On channels not in confirm mode, this remains 0.

gauge.channel.number πŸ”—

gauge

The number of the channel, which uniquely identifies it within a connection.

gauge.channel.prefetch_count πŸ”—

gauge

QoS prefetch limit for new consumers, 0 if unlimited.

gauge.connection.channels πŸ”—

gauge

The current number of channels on the connection

gauge.connection.connected_at πŸ”—

gauge

The integer timestamp of the most recent time the connection was established

gauge.connection.frame_max πŸ”—

gauge

Maximum permissible size of a frame (in bytes) to negotiate with clients.

gauge.connection.peer_port πŸ”—

gauge

The peer port of the connection

gauge.connection.port πŸ”—

gauge

The port the connection is established on

gauge.connection.recv_oct_details.rate πŸ”—

gauge

How much the connection’s octets received count has changed per second in the most recent sampling interval.

gauge.connection.send_oct_details.rate πŸ”—

gauge

How much the connection’s octets sent count has changed per second in the most recent sampling interval.

gauge.connection.send_pend πŸ”—

gauge

The number of messages in the send queue of the connection

gauge.connection.timeout πŸ”—

gauge

The current timeout setting (in seconds) of the connection

gauge.exchange.message_stats.confirm_details.rate πŸ”—

gauge

How much the message confirm count has changed per second in the most recent sampling interval.

gauge.exchange.message_stats.publish_in_details.rate πŸ”—

gauge

How much the exchange publish-in count has changed per second in the most recent sampling interval.

gauge.exchange.message_stats.publish_out_details.rate πŸ”—

gauge

How much the exchange publish-out count has changed per second in the most recent sampling interval.

gauge.node.disk_free πŸ”—

gauge

Disk free space (in bytes) on the node

gauge.node.disk_free_details.rate πŸ”—

gauge

How much the disk free space has changed per second in the most recent sampling interval.

gauge.node.disk_free_limit πŸ”—

gauge

Point (in bytes) at which the disk alarm will go off.

gauge.node.fd_total πŸ”—

gauge

Total number of file descriptors available.

gauge.node.fd_used πŸ”—

gauge

Number of used file descriptors.

gauge.node.fd_used_details.rate πŸ”—

gauge

How much the number of used file descriptors has changed per second in the most recent sampling interval.

gauge.node.io_read_avg_time πŸ”—

gauge

Average wall time (milliseconds) for each disk read operation in the last statistics interval.

gauge.node.io_read_avg_time_details.rate πŸ”—

gauge

How much the I/O read average time has changed per second in the most recent sampling interval.

gauge.node.io_read_bytes_details.rate πŸ”—

gauge

How much the number of bytes read from disk has changed per second in the most recent sampling interval.

gauge.node.io_read_count_details.rate πŸ”—

gauge

How much the number of read operations has changed per second in the most recent sampling interval.

gauge.node.io_sync_avg_time πŸ”—

gauge

Average wall time (milliseconds) for each fsync() operation in the last statistics interval.

gauge.node.io_sync_avg_time_details.rate πŸ”—

gauge

How much the average I/O sync time has changed per second in the most recent sampling interval.

gauge.node.io_write_avg_time πŸ”—

gauge

Average wall time (milliseconds) for each disk write operation in the last statistics interval.

gauge.node.io_write_avg_time_details.rate πŸ”—

gauge

How much the I/O write time has changed per second in the most recent sampling interval.

gauge.node.mem_limit πŸ”—

gauge

Point (in bytes) at which the memory alarm will go off.

gauge.node.mem_used πŸ”—

gauge

Memory used in bytes.

gauge.node.mem_used_details.rate πŸ”—

gauge

How much the count has changed per second in the most recent sampling interval.

gauge.node.mnesia_disk_tx_count_details.rate πŸ”—

gauge

How much the Mnesia disk transaction count has changed per second in the most recent sampling interval.

gauge.node.mnesia_ram_tx_count_details.rate πŸ”—

gauge

How much the RAM-only Mnesia transaction count has changed per second in the most recent sampling interval.

gauge.node.net_ticktime πŸ”—

gauge

Current kernel net_ticktime setting for the node.

gauge.node.proc_total πŸ”—

gauge

The maximum number of Erlang processes that can run in an Erlang VM.

gauge.node.proc_used πŸ”—

gauge

Number of Erlang processes currently running in use.

gauge.node.proc_used_details.rate πŸ”—

gauge

How much the number of erlang processes in use has changed per second in the most recent sampling interval.

gauge.node.processors πŸ”—

gauge

Number of cores detected and usable by Erlang.

gauge.node.run_queue πŸ”—

gauge

Average number of Erlang processes waiting to run.

gauge.node.sockets_total πŸ”—

gauge

Number of file descriptors available for use as sockets.

gauge.node.sockets_used πŸ”—

gauge

Number of file descriptors used as sockets.

gauge.node.sockets_used_details.rate πŸ”—

gauge

How much the number of sockets used has changed per second in the most recent sampling interval.

gauge.node.uptime πŸ”—

gauge

Time since the Erlang VM started, in milliseconds.

gauge.queue.backing_queue_status.avg_ack_egress_rate πŸ”—

gauge

Rate at which unacknowledged message records leave RAM, e.g. because acks arrive or unacked messages are paged out

gauge.queue.backing_queue_status.avg_ack_ingress_rate πŸ”—

gauge

Rate at which unacknowledged message records enter RAM, e.g. because messages are delivered requiring acknowledgement

gauge.queue.backing_queue_status.avg_egress_rate πŸ”—

gauge

Average egress (outbound) rate, not including messages that are sent straight through to auto-acking consumers.

gauge.queue.backing_queue_status.avg_ingress_rate πŸ”—

gauge

Average ingress (inbound) rate, not including messages that are sent straight through to auto-acking consumers.

gauge.queue.backing_queue_status.len πŸ”—

gauge

Total backing queue length, in messages

gauge.queue.backing_queue_status.next_seq_id πŸ”—

gauge

The next sequence ID to be used in the backing queue

gauge.queue.backing_queue_status.q1 πŸ”—

gauge

Number of messages in backing queue q1

gauge.queue.backing_queue_status.q2 πŸ”—

gauge

Number of messages in backing queue q2

gauge.queue.backing_queue_status.q3 πŸ”—

gauge

Number of messages in backing queue q3

gauge.queue.backing_queue_status.q4 πŸ”—

gauge

Number of messages in backing queue q4

gauge.queue.consumer_utilisation πŸ”—

gauge

Fraction of the time (between 0.0 and 1.0) that the queue is able to immediately deliver messages to consumers.

gauge.queue.consumers πŸ”—

gauge

Number of consumers of the queue

gauge.queue.memory πŸ”—

gauge

Bytes of memory consumed by the Erlang process associated with the queue, including stack, heap and internal structures.

gauge.queue.message_bytes πŸ”—

gauge

Sum of the size of all message bodies in the queue. This does not include the message properties (including headers) or any overhead.

gauge.queue.message_bytes_persistent πŸ”—

gauge

Total number of persistent messages in the queue (will always be 0 for transient queues).

gauge.queue.message_bytes_ram πŸ”—

gauge

Like message_bytes but counting only those messages which are in RAM.

gauge.queue.message_bytes_ready πŸ”—

gauge

Like message_bytes but counting only those messages ready to be delivered to clients.

gauge.queue.message_bytes_unacknowledged πŸ”—

gauge

Like message_bytes but counting only those messages delivered to clients but not yet acknowledged.

gauge.queue.message_stats.ack_details.rate πŸ”—

gauge

How much the number of acknowledged messages has changed per second in the most recent sampling interval.

gauge.queue.message_stats.deliver_details.rate πŸ”—

gauge

How much the count of messages delivered has changed per second in the most recent sampling interval.

gauge.queue.message_stats.deliver_get_details.rate πŸ”—

gauge

How much the count of all messages delivered has changed per second in the most recent sampling interval.

gauge.queue.message_stats.publish_details.rate πŸ”—

gauge

How much the count of messages published has changed per second in the most recent sampling interval.

gauge.queue.messages πŸ”—

gauge

Sum of ready and unacknowledged messages (queue depth).

gauge.queue.messages_details.rate πŸ”—

gauge

How much the queue depth has changed per second in the most recent sampling interval.

gauge.queue.messages_persistent πŸ”—

gauge

Total number of persistent messages in the queue (will always be 0 for transient queues).

gauge.queue.messages_ram πŸ”—

gauge

Total number of messages which are resident in RAM.

gauge.queue.messages_ready πŸ”—

gauge

Number of messages ready to be delivered to clients.

gauge.queue.messages_ready_details.rate πŸ”—

gauge

How much the count of messages ready has changed per second in the most recent sampling interval.

gauge.queue.messages_ready_ram πŸ”—

gauge

Number of messages from messages_ready which are resident in RAM.

gauge.queue.messages_unacknowledged πŸ”—

gauge

Number of messages delivered to clients but not yet acknowledged.

gauge.queue.messages_unacknowledged_details.rate πŸ”—

gauge

How much the count of unacknowledged messages has changed per second in the most recent sampling interval.

gauge.queue.messages_unacknowledged_ram πŸ”—

gauge

Number of messages from messages_unacknowledged which are resident in RAM.

These are the metrics available for this monitor. Metrics that are categorized as container/host (default) are in bold and italics in the list below.

Group channel πŸ”—

All of the following metrics are part of the channel metric group. All of the non-default metrics below can be turned on by adding channel to the monitor config option extraGroups:

  • counter.channel.message_stats.ack (counter)
    The number of acknowledged messages
  • counter.channel.message_stats.confirm (counter)
    Count of messages confirmed.
  • counter.channel.message_stats.deliver (counter)
    Count of messages delivered in acknowledgement mode to consumers.
  • counter.channel.message_stats.deliver_get (counter)
    Count of all messages delivered on the channel
  • counter.channel.message_stats.publish (counter)
    Count of messages published.
  • gauge.channel.connection_details.peer_port (gauge)
    The peer port number of the channel
  • gauge.channel.consumer_count (gauge)
    The number of consumers the channel has
  • gauge.channel.global_prefetch_count (gauge)
    QoS prefetch limit for the entire channel, 0 if unlimited.
  • gauge.channel.message_stats.ack_details.rate (gauge)
    How much the channel message ack count has changed per second in the most recent sampling interval.
  • gauge.channel.message_stats.confirm_details.rate (gauge)
    How much the channel message confirm count has changed per second in the most recent sampling interval.
  • gauge.channel.message_stats.deliver_details.rate (gauge)
    How much the channel deliver count has changed per second in the most recent sampling interval.
  • gauge.channel.message_stats.deliver_get_details.rate (gauge)
    How much the channel message count has changed per second in the most recent sampling interval.
  • gauge.channel.message_stats.publish_details.rate (gauge)
    How much the channel message publish count has changed per second in the most recent sampling interval.
  • gauge.channel.messages_unacknowledged (gauge)
    Number of messages delivered via this channel but not yet acknowledged.
  • gauge.channel.messages_uncommitted (gauge)
    Number of messages received in an as yet uncommitted transaction.
  • gauge.channel.messages_unconfirmed (gauge)
    Number of published messages not yet confirmed. On channels not in confirm mode, this remains 0.
  • gauge.channel.number (gauge)
    The number of the channel, which uniquely identifies it within a connection.
  • gauge.channel.prefetch_count (gauge)
    QoS prefetch limit for new consumers, 0 if unlimited.

Group connection πŸ”—

All of the following metrics are part of the connection metric group. All of the non-default metrics below can be turned on by adding connection to the monitor config option extraGroups:

  • counter.connection.channel_max (counter)
    The maximum number of channels on the connection
  • counter.connection.recv_cnt (counter)
    Number of packets received on the connection
  • counter.connection.recv_oct (counter)
    Number of octets received on the connection
  • counter.connection.send_cnt (counter)
    Number of packets sent by the connection
  • counter.connection.send_oct (counter)
    Number of octets sent by the connection
  • gauge.connection.channels (gauge)
    The current number of channels on the connection
  • gauge.connection.connected_at (gauge)
    The integer timestamp of the most recent time the connection was established
  • gauge.connection.frame_max (gauge)
    Maximum permissible size of a frame (in bytes) to negotiate with clients.
  • gauge.connection.peer_port (gauge)
    The peer port of the connection
  • gauge.connection.port (gauge)
    The port the connection is established on
  • gauge.connection.recv_oct_details.rate (gauge)
    How much the connection’s octets received count has changed per second in the most recent sampling interval.
  • gauge.connection.send_oct_details.rate (gauge)
    How much the connection’s octets sent count has changed per second in the most recent sampling interval.
  • gauge.connection.send_pend (gauge)
    The number of messages in the send queue of the connection
  • gauge.connection.timeout (gauge)
    The current timeout setting (in seconds) of the connection

Group exchange πŸ”—

All of the following metrics are part of the exchange metric group. All of the non-default metrics below can be turned on by adding exchange to the monitor config option extraGroups:

  • counter.exchange.message_stats.confirm (counter)
    Count of messages confirmed.
  • counter.exchange.message_stats.publish_in (counter)
    Count of messages published β€œin” to an exchange, i.e. not taking account of routing.
  • counter.exchange.message_stats.publish_out (counter)
    Count of messages published β€œout” of an exchange, i.e. taking account of routing.
  • gauge.exchange.message_stats.confirm_details.rate (gauge)
    How much the message confirm count has changed per second in the most recent sampling interval.
  • gauge.exchange.message_stats.publish_in_details.rate (gauge)
    How much the exchange publish-in count has changed per second in the most recent sampling interval.
  • gauge.exchange.message_stats.publish_out_details.rate (gauge)
    How much the exchange publish-out count has changed per second in the most recent sampling interval.

Group node πŸ”—

All of the following metrics are part of the node metric group. All of the non-default metrics below can be turned on by adding node to the monitor config option extraGroups:

  • counter.node.io_read_bytes (counter)
    Total number of bytes read from disk by the persister.
  • counter.node.io_read_count (counter)
    Total number of read operations by the persister.
  • counter.node.mnesia_disk_tx_count (counter)
    Number of Mnesia transactions which have been performed that required writes to disk.
  • counter.node.mnesia_ram_tx_count (counter)
    Number of Mnesia transactions which have been performed that did not require writes to disk.
  • gauge.node.disk_free (gauge)
    Disk free space (in bytes) on the node
  • gauge.node.disk_free_details.rate (gauge)
    How much the disk free space has changed per second in the most recent sampling interval.
  • gauge.node.disk_free_limit (gauge)
    Point (in bytes) at which the disk alarm will go off.
  • gauge.node.fd_total (gauge)
    Total number of file descriptors available.
  • gauge.node.fd_used (gauge)
    Number of used file descriptors.
  • gauge.node.fd_used_details.rate (gauge)
    How much the number of used file descriptors has changed per second in the most recent sampling interval.
  • gauge.node.io_read_avg_time (gauge)
    Average wall time (milliseconds) for each disk read operation in the last statistics interval.
  • gauge.node.io_read_avg_time_details.rate (gauge)
    How much the I/O read average time has changed per second in the most recent sampling interval.
  • gauge.node.io_read_bytes_details.rate (gauge)
    How much the number of bytes read from disk has changed per second in the most recent sampling interval.
  • gauge.node.io_read_count_details.rate (gauge)
    How much the number of read operations has changed per second in the most recent sampling interval.
  • gauge.node.io_sync_avg_time (gauge)
    Average wall time (milliseconds) for each fsync() operation in the last statistics interval.
  • gauge.node.io_sync_avg_time_details.rate (gauge)
    How much the average I/O sync time has changed per second in the most recent sampling interval.
  • gauge.node.io_write_avg_time (gauge)
    Average wall time (milliseconds) for each disk write operation in the last statistics interval.
  • gauge.node.io_write_avg_time_details.rate (gauge)
    How much the I/O write time has changed per second in the most recent sampling interval.
  • gauge.node.mem_limit (gauge)
    Point (in bytes) at which the memory alarm will go off.
  • gauge.node.mem_used (gauge)
    Memory used in bytes.
  • gauge.node.mem_used_details.rate (gauge)
    How much the count has changed per second in the most recent sampling interval.
  • gauge.node.mnesia_disk_tx_count_details.rate (gauge)
    How much the Mnesia disk transaction count has changed per second in the most recent sampling interval.
  • gauge.node.mnesia_ram_tx_count_details.rate (gauge)
    How much the RAM-only Mnesia transaction count has changed per second in the most recent sampling interval.
  • gauge.node.net_ticktime (gauge)
    Current kernel net_ticktime setting for the node.
  • gauge.node.proc_total (gauge)
    The maximum number of Erlang processes that can run in an Erlang VM.
  • gauge.node.proc_used (gauge)
    Number of Erlang processes currently running in use.
  • gauge.node.proc_used_details.rate (gauge)
    How much the number of erlang processes in use has changed per second in the most recent sampling interval.
  • gauge.node.processors (gauge)
    Number of cores detected and usable by Erlang.
  • gauge.node.run_queue (gauge)
    Average number of Erlang processes waiting to run.
  • gauge.node.sockets_total (gauge)
    Number of file descriptors available for use as sockets.
  • gauge.node.sockets_used (gauge)
    Number of file descriptors used as sockets.
  • gauge.node.sockets_used_details.rate (gauge)
    How much the number of sockets used has changed per second in the most recent sampling interval.
  • gauge.node.uptime (gauge)
    Time since the Erlang VM started, in milliseconds.

Group queue πŸ”—

All of the following metrics are part of the queue metric group. All of the non-default metrics below can be turned on by adding queue to the monitor config option extraGroups:

  • counter.queue.disk_reads (counter)
    Total number of times messages have been read from disk by this queue since it started.
  • counter.queue.disk_writes (counter)
    Total number of times messages have been written to disk by this queue since it started.
  • counter.queue.message_stats.ack (counter)
    Number of acknowledged messages processed by the queue
  • counter.queue.message_stats.deliver (counter)
    Count of messages delivered in acknowledgement mode to consumers.
  • counter.queue.message_stats.deliver_get (counter)
    Count of all messages delivered on the queue
  • counter.queue.message_stats.publish (counter)
    Count of messages published.
  • gauge.queue.backing_queue_status.avg_ack_egress_rate (gauge)
    Rate at which unacknowledged message records leave RAM, e.g. because acks arrive or unacked messages are paged out
  • gauge.queue.backing_queue_status.avg_ack_ingress_rate (gauge)
    Rate at which unacknowledged message records enter RAM, e.g. because messages are delivered requiring acknowledgement
  • gauge.queue.backing_queue_status.avg_egress_rate (gauge)
    Average egress (outbound) rate, not including messages that are sent straight through to auto-acking consumers.
  • gauge.queue.backing_queue_status.avg_ingress_rate (gauge)
    Average ingress (inbound) rate, not including messages that are sent straight through to auto-acking consumers.
  • gauge.queue.backing_queue_status.len (gauge)
    Total backing queue length, in messages
  • gauge.queue.backing_queue_status.next_seq_id (gauge)
    The next sequence ID to be used in the backing queue
  • gauge.queue.backing_queue_status.q1 (gauge)
    Number of messages in backing queue q1
  • gauge.queue.backing_queue_status.q2 (gauge)
    Number of messages in backing queue q2
  • gauge.queue.backing_queue_status.q3 (gauge)
    Number of messages in backing queue q3
  • gauge.queue.backing_queue_status.q4 (gauge)
    Number of messages in backing queue q4
  • gauge.queue.consumer_utilisation (gauge)
    Fraction of the time (between 0.0 and 1.0) that the queue is able to immediately deliver messages to consumers.
  • gauge.queue.consumers (gauge)
    Number of consumers of the queue
  • gauge.queue.memory (gauge)
    Bytes of memory consumed by the Erlang process associated with the queue, including stack, heap and internal structures.
  • gauge.queue.message_bytes (gauge)
    Sum of the size of all message bodies in the queue. This does not include the message properties (including headers) or any overhead.
  • gauge.queue.message_bytes_persistent (gauge)
    Total number of persistent messages in the queue (will always be 0 for transient queues).
  • gauge.queue.message_bytes_ram (gauge)
    Like message_bytes but counting only those messages which are in RAM.
  • gauge.queue.message_bytes_ready (gauge)
    Like message_bytes but counting only those messages ready to be delivered to clients.
  • gauge.queue.message_bytes_unacknowledged (gauge)
    Like message_bytes but counting only those messages delivered to clients but not yet acknowledged.
  • gauge.queue.message_stats.ack_details.rate (gauge)
    How much the number of acknowledged messages has changed per second in the most recent sampling interval.
  • gauge.queue.message_stats.deliver_details.rate (gauge)
    How much the count of messages delivered has changed per second in the most recent sampling interval.
  • gauge.queue.message_stats.deliver_get_details.rate (gauge)
    How much the count of all messages delivered has changed per second in the most recent sampling interval.
  • gauge.queue.message_stats.publish_details.rate (gauge)
    How much the count of messages published has changed per second in the most recent sampling interval.
  • gauge.queue.messages (gauge)
    Sum of ready and unacknowledged messages (queue depth).
  • gauge.queue.messages_details.rate (gauge)
    How much the queue depth has changed per second in the most recent sampling interval.
  • gauge.queue.messages_persistent (gauge)
    Total number of persistent messages in the queue (will always be 0 for transient queues).
  • gauge.queue.messages_ram (gauge)
    Total number of messages which are resident in RAM.
  • gauge.queue.messages_ready (gauge)
    Number of messages ready to be delivered to clients.
  • gauge.queue.messages_ready_details.rate (gauge)
    How much the count of messages ready has changed per second in the most recent sampling interval.
  • gauge.queue.messages_ready_ram (gauge)
    Number of messages from messages_ready which are resident in RAM.
  • gauge.queue.messages_unacknowledged (gauge)
    Number of messages delivered to clients but not yet acknowledged.
  • gauge.queue.messages_unacknowledged_details.rate (gauge)
    How much the count of unacknowledged messages has changed per second in the most recent sampling interval.
  • gauge.queue.messages_unacknowledged_ram (gauge)
    Number of messages from messages_unacknowledged which are resident in RAM.

Non-default metrics (version 4.7.0+) πŸ”—

The following information applies to the agent version 4.7.0+ that has enableBuiltInFiltering: true set on the top level of the agent config.

To emit metrics that are not default, you can add those metrics in the generic monitor-level extraMetrics config option. Metrics that are derived from specific configuration options that do not appear in the above list of metrics do not need to be added to extraMetrics.

To see a list of metrics that will be emitted you can run agent-status monitors after configuring this monitor in a running agent instance.

Legacy non-default metrics (version < 4.7.0) πŸ”—

The following information only applies to agent version older than 4.7.0. If you have a newer agent and have set enableBuiltInFiltering: true at the top level of your agent config, see the section above. See upgrade instructions in Old-style whitelist filtering.

If you have a reference to the whitelist.json in your agent’s top-level metricsToExclude config option, and you want to emit metrics that are not in that whitelist, then you need to add an item to the top-level metricsToInclude config option to override that whitelist (see Inclusion filtering. Or you can just copy the whitelist.json, modify it, and reference that in metricsToExclude.