Infrastructure Integration¶
Installation¶
No additional components need to be intalled, as RabbitMQ monitoring capability comes built in with Epoch.
Pre-requisite¶
Epoch leverages RabbitMQ's HTTP-based management & monitoring API, available via the RabbitMQ management plugin. Enable this plugin to expose the API. See RabbitMQ documentation, for details on how to enable it.
Configuration¶
-
Configure the agent by editing
/etc/nutanix/epoch-dd-agent/conf.d/rabbitmq.yaml
in the collectors. Example:init_config: instances: # for every instance a 'rabbitmq_api_url' must be provided, pointing to the api # url of the RabbitMQ Managment Plugin (http://www.rabbitmq.com/management.html) # optional: 'rabbitmq_user' (default: guest), 'rabbitmq_pass' (default: guest), # and 'tag_families' (default: false) to tag queue "families" based off of regex # matching. - rabbitmq_api_url: http://localhost:15672/api/ rabbitmq_user: guest rabbitmq_pass: guest # The (optional) ssl_verify can be used to tell the check # to skip the verification of the SSL certificate of the # RabbitMQ management web endpoint. # This is mostly useful when checking SSL connections signed with # certificates that are not themselves signed by a public authority. # When false, the check logs a warning in collector.log # Defaults to true; set to false if you want to disable # SSL certificate verification. # # ssl_verify: false # The (optional) no_proxy parameter would bypass any proxy settings enabled # and attempt to reach the the URL directly. # If no proxy is defined at any level, this flag bears no effect. # Defaults to False. # # no_proxy: false # tag_families: true # Use the `nodes` or `nodes_regexes` parameters to specify the nodes you'd like to # collect metrics on (up to 100 nodes). # If you have less than 100 nodes, you don't have to set this parameter, # the metrics will be collected on all the nodes by default. # # nodes: # - rabbit@localhost # - rabbit2@domain # nodes_regexes: # - bla.* # Use the `queues` or `queues_regexes` parameters to specify the queues you'd like to # collect metrics on (up to 200 queues). # If you have less than 200 queues, you don't have to set this parameter, # the metrics will be collected on all the queues by default. # If you have set up vhosts, set the queue names as `vhost_name/queue_name`. # If you have `tag_families` enabled, the first captured group in the regex # will be used as the queue_family tag # # queues: # - queue1 # - queue2 # queues_regexes: # - thisqueue-.* # - another_\d+queue # - (lepidorae)-\d+ # to tag queues in the lepidorae queue_family # Service checks: # By default a list of all vhosts is fetched and each one will be checked # using the aliveness API. If you prefer only certain vhosts to be monitored # with service checks then you can list the vhosts you care about. # # vhosts: # - vhost1 # - vhost2
-
Check and make sure that all yaml files are valid with following command:
/etc/init.d/epoch-collectors configcheck
-
Restart the Agent using the following command:
/etc/init.d/epoch-collectors restart
-
Execute the info command to verify that the integration check has passed:
/etc/init.d/epoch-collectors info
The output of the command should contain a section similar to the following:
Checks
======
[...]
rabbitmq
--------
- instance #0 [OK]
- Collected 8 metrics & 0 events
```
Infrastructure Datasources¶
Datasource | Available Aggregations | Unit | Description |
---|---|---|---|
rabbitmq.node.fd_used | avg max min sum |
Used file descriptors | |
rabbitmq.node.mem_used | avg max min sum |
byte | Memory used in bytes |
rabbitmq.node.run_queue | avg max min sum |
process | Average number of Erlang processes waiting to run |
rabbitmq.node.sockets_used | avg max min sum |
Number of file descriptors used as sockets | |
rabbitmq.node.partitions | avg max min sum |
Number of network partitions this node is seeing | |
rabbitmq.queue.active_consumers | avg max min sum |
Number of active consumers, consumers that can immediately receive any messages sent to the queue | |
rabbitmq.queue.consumers | avg max min sum |
Number of consumers | |
rabbitmq.queue.consumer_utilisation | avg max min sum |
fraction | The ratio of time that a queue's consumers can take new messages |
rabbitmq.queue.memory | avg max min sum |
byte | Bytes of memory consumed by the Erlang process associated with the queue, including stack, heap and internal structures |
rabbitmq.queue.messages | avg max min sum |
message | Count of the total messages in the queue |
rabbitmq.queue.messages.rate | avg max min sum |
message/second | Count per second of the total messages in the queue |
rabbitmq.queue.messages_ready | avg max min sum |
message | Number of messages ready to be delivered to clients |
rabbitmq.queue.messages_ready.rate | avg max min sum |
message/second | Number per second of messages ready to be delivered to clients |
rabbitmq.queue.messages_unacknowledged | avg max min sum |
message | Number of messages delivered to clients but not yet acknowledged |
rabbitmq.queue.messages_unacknowledged.rate | avg max min sum |
message/second | Number per second of messages delivered to clients but not yet acknowledged |
rabbitmq.queue.messages.ack.count | avg max min sum |
message | Number of messages delivered to clients and acknowledged |
rabbitmq.queue.messages.ack.rate | avg max min sum |
message/second | Number per second of messages delivered to clients and acknowledged |
rabbitmq.queue.messages.deliver.count | avg max min sum |
message | Count of messages delivered in acknowledgement mode to consumers |
rabbitmq.queue.messages.deliver.rate | avg max min sum |
message/second | Count of messages delivered in acknowledgement mode to consumers |
rabbitmq.queue.messages.deliver_get.count | avg max min sum |
message | Sum of messages delivered in acknowledgement mode to consumers, in no-acknowledgement mode to consumers, in acknowledgement mode in response to basic.get, and in no-acknowledgement mode in response to basic.get. |
rabbitmq.queue.messages.deliver_get.rate | avg max min sum |
message/second | Rate per second of the sum of messages delivered in acknowledgement mode to consumers, in no-acknowledgement mode to consumers, in acknowledgement mode in response to basic.get, and in no-acknowledgement mode in response to basic.get. |
rabbitmq.queue.messages.publish.count | avg max min sum |
message | Count of messages published |
rabbitmq.queue.messages.publish.rate | avg max min sum |
message/second | Rate per second of messages published |
rabbitmq.queue.messages.redeliver.count | avg max min sum |
message | Count of subset of messages in deliver_get which had the redelivered flag set |
rabbitmq.queue.messages.redeliver.rate | avg max min sum |
message/second | Rate per second of subset of messages in deliver_get which had the redelivered flag set |