Skip to main content

Monitoring RabbitMQ

Monitoring the running status of RabbitMQ message middleware, nodes, topics and other related metrics.

Pre-monitoring Operations

HertzBeat uses RabbitMQ Management's Rest Api to collect RabbitMQ metric data. Therefore, you need to enable the Management plug-in in your RabbitMQ environment

  1. Open the Management plugin, or use the self-opening version
rabbitmq-plugins enable rabbitmq_management
  1. Access http://ip:15672/ with a browser, and the default account password is guest/guest. Successful login means that it is successfully opened.

  2. Just add the corresponding RabbitMQ monitoring in HertzBeat, the parameters use the IP port of Management, and the default account password.

Configuration parameters

Parameter nameParameter help description
Monitoring HostThe peer IPV4, IPV6 or domain name to be monitored. Note ⚠️Without protocol header (eg: https://, http://).
Monitoring nameThe name that identifies this monitoring, and the name needs to be unique.
PortThe HTTP port provided by RabbitMQ Management, the default is 15672.
UsernameUsername used for interface Basic authentication
PasswordThe password used for interface Basic authentication
TimeoutHTTP request query timeout
Acquisition IntervalInterval time for monitoring periodic data collection, in seconds, the minimum interval that can be set is 30 seconds
Whether to detectWhether to detect and check the availability of monitoring before adding monitoring, and the operation of adding and modifying will continue after the detection is successful
Description RemarksMore remark information to identify and describe this monitoring, users can remark information here

Collect Metrics

metrics: overview

Metric NameMetric UnitMetric Description
product_versionNoneProduct Version
product_nameNoneProduct name
rabbitmq_versionnonerabbitmq version
management_versionNonerabbitmq management plugin version
erlang_versionNoneerlang version
cluster_nameNoneCluster name
rates_modeNonerates mode

metrics: object_totals

Metric NameMetric UnitMetric Description
channelsnonetotal number of channels
connectionsnonetotal number of connections
consumersnonetotal number of consumers
exchangesnonetotal number of exchanges
queuesnonetotal number of queues

metrics: nodes

Metric NameMetric UnitMetric Description
nameNoneThe node name
typeNoneThe node type
runningNoneRunning state
os_pidNonePid in OS
mem_limitMBMemory usage high watermark
mem_usedMBTotal amount of memory used
fd_totalNoneFile descriptors available
fd_usedNoneFile descriptors used
sockets_totalNoneSockets available
sockets_usedNoneSockets used
proc_totalNoneErlang process limit
proc_usedNoneErlang processes used
disk_free_limitGBFree disk space low watermark
disk_freeGBFree disk space
gc_numNoneGC runs
gc_bytes_reclaimedMBBytes reclaimed by GC
context_switchesNoneContext_switches num
io_read_countNoneTotal number of read operations
io_read_bytesKBTotal data size read into disk
io_read_avg_timemsAverage read operation time in milliseconds
io_write_countNoneTotal disk write operations
io_write_bytesKBTotal amount of data written to disk
io_write_avg_timemsAverage time of each disk write operation in milliseconds
io_seek_countNonetotal seek operation
io_seek_avg_timemsaverage seek operation time, in milliseconds
io_sync_countNonetotal amount of fsync operations
io_sync_avg_timemsAverage time of fsync operation in milliseconds
connection_createdNoneconnection created num
connection_closedNoneconnection closed num
channel_createdNonechannel created num
channel_closedNonechannel closed num
queue_declaredNonequeue declared num
queue_createdNonequeue created num
queue_deletedNonequeue deleted num
connection_closedNoneconnection closed num

metrics: queues

Metric NameMetric UnitMetric Description
nameNoneThe name of the queue with non-ASCII characters escaped as in C.
nodeNoneThe queue on the node name
stateNoneThe state of the queue. Normally "running", but may be "{syncing, message_count}" if the queue is synchronising.
typeNoneQueue type, one of: quorum, stream, classic.
vhostNonevhost path
auto_deleteNoneWhether the queue will be deleted automatically when no longer used
policyNoneEffective policy name for the queue.
consumersNoneNumber of consumers.
memoryBBytes of memory allocated by the runtime for the queue, including stack, heap and internal structures.
messages_readyNoneNumber of messages ready to be delivered to clients
messages_unacknowledgedNoneNumber of messages delivered to clients but not yet acknowledged
messagesNoneSum of ready and unacknowledged messages (queue depth)
messages_ready_ramNoneNumber of messages from messages_ready which are resident in ram
messages_persistentNoneTotal number of persistent messages in the queue (will always be 0 for transient queues)
message_bytesBSum of the size of all message bodies in the queue. This does not include the message properties (including headers) or any overhead
message_bytes_readyBLike message_bytes but counting only those messages ready to be delivered to clients
message_bytes_unacknowledgedBLike message_bytes but counting only those messages delivered to clients but not yet acknowledged
message_bytes_ramBLike message_bytes but counting only those messages which are currently held in RAM
message_bytes_persistentBLike message_bytes but counting only those messages which are persistent