ActiveMQ

Supported OS Linux Windows Mac OS

Integration version3.1.0

Overview

The ActiveMQ check collects metrics for brokers, queues, producers, consumers, and more.

Note: This check also supports ActiveMQ Artemis (future ActiveMQ version 6) and reports metrics under the activemq.artemis namespace. See metadata.csv for a list of metrics provided by this integration.

Note: If you are running an ActiveMQ version older than 5.8.0, see the Agent 5.10.x released sample files.

Setup

Installation

The Agent’s ActiveMQ check is included in the Datadog Agent package, so you don’t need to install anything else on your ActiveMQ nodes.

The check collects metrics from JMX with JMXFetch. A JVM is needed on each node so the Agent can run JMXFetch. Datadog recommends using an Oracle-provided JVM.

Configuration

Host

To configure this check for an Agent running on a host:

  1. Make sure that JMX Remote is enabled on your ActiveMQ server.

  2. Configure the Agent to connect to ActiveMQ. Edit activemq.d/conf.yaml, in the conf.d/ folder at the root of your Agent’s configuration directory. See the sample activemq.d/conf.yaml for all available configuration options. See the metrics.yaml file for the list of default collected metrics.

    init_config:
      is_jmx: true
      collect_default_metrics: true
    
    instances:
      - host: localhost
        port: 1616
        user: username
        password: password
        name: activemq_instance
    
  3. Restart the agent

Log collection

Available for Agent versions >6.0

  1. Collecting logs is disabled by default in the Datadog Agent, enable it in your datadog.yaml file:

    logs_enabled: true
    
  2. Add this configuration block to your activemq.d/conf.yaml file to start collecting your ActiveMQ logs:

    logs:
      - type: file
        path: "<ACTIVEMQ_BASEDIR>/data/activemq.log"
        source: activemq
        service: "<SERVICE_NAME>"
      - type: file
        path: "<ACTIVEMQ_BASEDIR>/data/audit.log"
        source: activemq
        service: "<SERVICE_NAME>"
    
  3. Restart the Agent.

Containerized

For containerized environments, see the Autodiscovery Integration Templates for guidance on applying the parameters below.

Metric collection
ParameterValue
<INTEGRATION_NAME>activemq
<INIT_CONFIG>"is_jmx": true
<INSTANCE_CONFIG>{"host": "%%host%%","port":"1099"}
Log collection

Available for Agent versions >6.0

Collecting logs is disabled by default in the Datadog Agent. To enable it, see Kubernetes Log Collection.

ParameterValue
<LOG_CONFIG>{"source": "activemq", "service": "<YOUR_APP_NAME>"}

Validation

Run the Agent’s status subcommand and look for activemq under the Checks section.

Data Collected

Metrics

activemq.artemis.address.bytes_per_page
(gauge)
(Artemis only) Number of bytes used by each page for this address.
Shown as byte
activemq.artemis.address.number_of_messages
(rate)
(Artemis only) The sum of messages on queue(s), including messages in delivery.
Shown as message
activemq.artemis.address.pages_count
(gauge)
(Artemis only) Number of pages used by this address.
Shown as page
activemq.artemis.address.routed_messages
(rate)
(Artemis only) Number of messages routed to one or more bindings, as a rate.
Shown as message
activemq.artemis.address.size
(gauge)
(Artemis only) Number of estimated bytes being used by all the queue(s) bound to this address; used to control paging and blocking.
Shown as byte
activemq.artemis.address.unrouted_messages
(rate)
(Artemis only) Number of messages not routed to any bindings, as a rate.
Shown as message
activemq.artemis.address_memory_usage
(gauge)
(Artemis only) Memory used by all the addresses on broker for in-memory messages.
Shown as byte
activemq.artemis.address_memory_usage_pct
(gauge)
(Artemis only) Memory used by all the addresses on broker as a percentage of the global-max-size.
Shown as percent
activemq.artemis.connection_count
(gauge)
(Artemis only) Number of clients connected to this server.
Shown as connection
activemq.artemis.disk_store_usage_pct
(gauge)
(Artemis only) Percentage of total disk store used.
Shown as percent
activemq.artemis.max_disk_usage
(gauge)
(Artemis only) Maximum limit for disk use in percentage.
Shown as percent
activemq.artemis.queue.consumer_count
(gauge)
(Artemis only) Number of consumers consuming messages from this queue.
activemq.artemis.queue.max_consumers
(gauge)
(Artemis only) Maximum number of consumers allowed on this queue at any one time.
activemq.artemis.queue.message_count
(gauge)
(Artemis only) Number of messages currently in this queue (includes scheduled, paged, and in-delivery messages), as a rate.
Shown as message
activemq.artemis.queue.messages_acknowledged
(rate)
(Artemis only) Number of messages acknowledged from this queue since it was created, as a rate.
Shown as message
activemq.artemis.queue.messages_added
(rate)
(Artemis only) Number of messages added to this queue since it was created, as a rate.
Shown as message
activemq.artemis.queue.messages_expired
(rate)
(Artemis only) Number of messages expired from this queue since it was created, as a rate.
Shown as message
activemq.artemis.queue.messages_killed
(rate)
(Artemis only) Number of messages removed from this queue since it was created due to exceeding the max delivery attempts, as a rate.
Shown as message
activemq.artemis.total_connection_count
(rate)
(Artemis only) Number of clients which have connected to this server since it was started, as a rate.
Shown as connection
activemq.artemis.total_consumer_count
(rate)
(Artemis only) Number of consumers consuming messages from all the queues on this server, as a rate.
activemq.artemis.total_message_count
(rate)
(Artemis only) Number of messages in all queues on the server, as a rate.
Shown as connection
activemq.artemis.total_messages_acknowledged
(rate)
(Artemis only) Number of messages acknowledged from all the queues on this server since it was started, as a rate.
Shown as connection
activemq.artemis.total_messages_added
(rate)
(Artemis only) Number of messages sent to this server since it was started, as a rate.
Shown as connection
activemq.broker.memory_pct
(gauge)
The percentage of memory in use.
Shown as percent
activemq.broker.store_pct
(gauge)
The percentage of store in use.
Shown as percent
activemq.broker.temp_pct
(gauge)
The percentage of temporary in use.
Shown as percent
activemq.queue.avg_enqueue_time
(gauge)
On average the amount of time (ms) that messages remained enqueued.
Shown as millisecond
activemq.queue.consumer_count
(gauge)
The number of consumers connected.
activemq.queue.dequeue_count
(gauge)
The amount of messages that remained dequeued.
Shown as message
activemq.queue.dispatch_count
(gauge)
The amount of messages that have been dispatched.
Shown as message
activemq.queue.enqueue_count
(gauge)
The amount of messages that have been enqueued.
Shown as message
activemq.queue.expired_count
(gauge)
The amount of messages that have been expired.
Shown as message
activemq.queue.in_flight_count
(gauge)
The amount of messages that have been in flight.
Shown as message
activemq.queue.max_enqueue_time
(gauge)
The max the amount of time (ms) that messages remained enqueued.
Shown as millisecond
activemq.queue.memory_pct
(gauge)
The percentage of memory currently in use.
Shown as percent
activemq.queue.min_enqueue_time
(gauge)
The min the amount of time (ms) that messages remained enqueued.
Shown as millisecond
activemq.queue.producer_count
(gauge)
The number of producers connected.
activemq.queue.size
(gauge)
The amount of messages that remained queued.
Shown as message
Metrics associated with ActiveMQ Artemis flavor have artemis in their metric name, all others are reported for ActiveMQ “classic”.

Events

The ActiveMQ check does not include any events.

Service Checks

activemq.can_connect
Returns CRITICAL if the Agent is unable to connect to and collect metrics from the monitored ActiveMQ instance, WARNING if no metrics are collected, and OK otherwise.
Statuses: ok, critical, warning

Troubleshooting

Need help? Contact Datadog support.

Further Reading

Additional helpful documentation, links, and articles:

ActiveMQ XML Integration

Overview

Get metrics from ActiveMQ XML in real time to:

  • Visualize and monitor ActiveMQ XML states.
  • Be notified about ActiveMQ XML failovers and events.

Setup

Installation

The ActiveMQ XML check is included in the Datadog Agent package, so you don’t need to install anything else on your servers.

Configuration

Follow the instructions below to configure this check for an Agent running on a host. For containerized environments, see the Containerized section.

Host

To configure this check for an Agent running on a host:

  1. Edit activemq_xml.d/conf.yaml, in the conf.d/ folder at the root of your Agent’s configuration directory with your stats url. See the sample activemq_xml.d/conf.yaml for all available configuration options.

    Note: The ActiveMQ XML integration can potentially emit custom metrics, which may impact your billing. By default, there is a limit of 350 metrics. If you require additional metrics, contact Datadog support.

  2. Restart the Agent.

Log collection
  1. Collecting logs is disabled by default in the Datadog Agent, enable it in your datadog.yaml file:

    logs_enabled: true
    
  2. Add this configuration block to your activemq_xml.d/conf.yaml or activemq.d/conf.yaml file to start collecting your ActiveMQ logs:

    logs:
      - type: file
        path: "<ACTIVEMQ_BASEDIR>/data/activemq.log"
        source: activemq
        service: "<SERVICE_NAME>"
      - type: file
        path: "<ACTIVEMQ_BASEDIR>/data/audit.log"
        source: activemq
        service: "<SERVICE_NAME>"
    
  3. Restart the Agent.

Containerized

For containerized environments, see the Autodiscovery with JMX guide.

Validation

Run the Agent’s status subcommand and look for activemq_xml under the Checks section.

Data Collected

Metrics

activemq.queue.consumer_count
(gauge)
The number of consumers of a queue.
activemq.queue.count
(gauge)
The number of queues.
activemq.queue.dequeue_count
(gauge)
The total number of messages sent to a queue since the last restart.
Shown as message
activemq.queue.enqueue_count
(gauge)
The total number of messages removed from a queue (acknowledged by consumer) since the last restart.
Shown as message
activemq.queue.size
(gauge)
The size of a queue.
activemq.subscriber.count
(gauge)
The number of subscribers.
activemq.subscriber.dequeue_counter
(gauge)
The number of messages sent to and acknowledged by the client.
Shown as message
activemq.subscriber.dispatched_counter
(gauge)
The number of messages sent to the client.
Shown as message
activemq.subscriber.dispatched_queue_size
(gauge)
The number of messages dispatched that are awaiting acknowledgement.
Shown as message
activemq.subscriber.enqueue_counter
(gauge)
The number of messages that matched the subscription.
Shown as message
activemq.subscriber.pending_queue_size
(gauge)
The number of messages pending delivery.
Shown as message
activemq.topic.consumer_count
(gauge)
The number of consumers of a topic.
activemq.topic.count
(gauge)
The number of topics.
activemq.topic.dequeue_count
(gauge)
The total number of messages sent to a topic since the last restart.
Shown as message
activemq.topic.enqueue_count
(gauge)
The total number of messages removed from a topic (acknowledged by consumer) since the last restart.
Shown as message
activemq.topic.size
(gauge)
The size of a topic.

Events

The ActiveMQ XML check does not include any events.

Service Checks

The ActiveMQ XML check does not include any service checks.

Troubleshooting

Need help? Contact Datadog support.

Further Reading