Skip to content

Infrastructure Integration

image

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

  1. Configure the agent by editing /etc/nutanix/epoch-dd-agent/conf.d/rabbitmq.yamlin 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
    
  2. Check and make sure that all yaml files are valid with following command:

    /etc/init.d/epoch-collectors configcheck
    
  3. Restart the Agent using the following command:

    /etc/init.d/epoch-collectors restart
    
  4. 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