Apache ActiveMQ Monitoring


Apache ActiveMQ - An Overview

Apache ActiveMQ is a powerful open source message broker that supports JMS and a variety of Cross Language Clients and Protocols (from Java, C, C++, C#, Ruby, Perl, Python and PHP). ActiveMQ offers full support for the Enterprise Integration Patterns both in the JMS client and the Message Broker. 

Monitoring Apache ActiveMQ - What we do.

Applications Manager aims to help administrators collect ActiveMQ metrics, correlate your queue and broker performance with your infrastructure, maintain configurations for high availability and scalability, and be alerted automatically of potential issues.

Let’s take a look at what you need to see to fully utilize ActiveMQ  and the performance metrics that you can gather with Applications Manager:

  • Resource utilization details - Automatically discover ActiveMQ servers, monitor memory and CPU and get alerts of changes in resource consumption.
  • Topic and Queue Details - Automatically collect and visualize ActiveMQ queue data like memory usage, average message size, average enqueue time and broker metrics all in one place. Analyse topic details including memory consumed by each topic, average message size, blocked sends, health of each topic etc. and make informed decisions.
  • Subscriber Statistics -  Monitor the most important subscriber metrics from the out-of-the-box ActiveMQ dashboard, including subscriber count and subscriber queue metrics. Correlate subscriber metrics with their respective topic metrics to diagnose issues.
  • Fix Performance Problems Faster - Get instant notifications when there are performance issues with the components of Apache ActiveMQ. Become aware of performance bottlenecks and take quick remedial actions before your end users experience issues.

Apache ActiveMQ - Adding a new monitor

Prerequisites for setting up Apache ActiveMQ Monitoring:

Apache ActiveMQ has extensive support for JMX to allow you to monitor and control the behavior of the broker via the JMX MBeans. You can enable/disable JMX support by following the steps mentioned here.

Using the REST API to add a new Apache ActiveMQ monitor: Click here

To create an Apache ActiveMQ monitor, follow the steps given below: 

  1. Click on New Monitor link. Choose Apache ActiveMQ.
  2. Enter Display Name of the monitor.
  3. Enter the IP Address or hostname of the host in which Apache ActiveMQ Broker is running.
  4. Enter the JMX Port in the JMX Port field.
  5. Enter the credential details like user name and password  of Apache ActiveMQ Broker or select credentials from a Credential Manager list.
  6. Enter the JNDI path. For example:- JNDIPATH for default installations of Apache ActiveMQ Broker is /jmxrmi.
  7. Enter the polling interval time in minutes.
  8. Click Test Credentials button, if you want to test the access to Apache ActiveMQ Server.
  9. Choose the Monitor Group from the combo box with which you want to associate Apache ActiveMQ Monitor (optional). You can choose multiple groups to associate your monitor.
  10. Click Add Monitor(s). This discovers Apache ActiveMQ from the network and starts monitoring.
Note:
  • In case you are unable to add the monitor even after enabling JMX, try providing the below argument:
     -Djava.rmi.server.hostname=[YOUR_IP]
  • Click here to know more about establishing Apache ActiveMQ Failover.

Monitored Parameters

Go to the Monitors Category View by clicking the Monitors tab. Click on Apache ActiveMQ under the Middleware/Portal Table. Displayed is the Apache ActiveMQ bulk configuration view distributed into three tabs:

  • Availability tab gives the Availability history for the past 24 hours or 30 days.
  • Performance tab gives the Health Status and events for the past 24 hours or 30 days.
  • List view enables you to perform bulk admin configurations.

Click on the monitor name to see all the server details listed under the following tabs:

Overview

Parameter Description
Configuration Details
Memory Usage The memory usage, in bytes, used by undelivered messages.
Store Usage  
Temp Usage  
Memory Details
Total Physical Memory Size The total amount of physical memory in Megabytes.
Free Physical Memory Size The amount of free physical memory in Megabytes.
Committed Virtual Memory Size The amount of virtual memory that is guaranteed to be available to the running process in Megabytes.
Total Swap Space Size The total size of virtual memory hold by the JVM.
Free Swap Space Size The free virtual memory size.
Thread Details
Daemon Thread Count The number of daemon threads currently running.
Peak Thread Count The peak live thread count since the Java virtual machine started or peak was reset.
Live Thread Count The number of live threads currently running.
Total Started Thread Count The total number of threads created and also started since the Java virtual machine started.
Heap and Non-Heap Memory Details
Heap Memory Usage The heap memory currently in use.
Non-Heap Memory Usage The non-heap memory currently in use.

Topic Details

Parameter Description
Topic Details
Name  
Memory Usage (%)  
Queue Size The number of messages in the destination which are yet to be consumed (potentially dispatched but unacknowledged).
Average Message Size The average message size on this destination.
Blocked Sends  The number of messages blocked for Flow Control.
Average Blocked Time The average time (ms) messages are blocked for Flow Control.
Topic Count Details
Producer The total number of producers that have posted messages to the ActiveMQ instance
Consumer Count The total number of consumers that have consumed the messages posted by the producers.
In Flight Count The number of messages sent to a consumer session and have not received an acknowledgement.
Enqueue Count The total number of messages sent to the queue since the last restart.
Dispatch Count

The total number of messages sent to consumer sessions (Dequeue + Inflight).

Dequeue Count The total number of messages removed from the queue (acknowledged by consumer) since last restart.
Expired Count  The number of messages that were not delivered because they were expired.

Queue Details

Parameter Description
Queue Details
Memory Usage The memory usage, in bytes, used by undelivered messages.
Cursor Usage The message cursor memory usage, in bytes.
Average Message Size The average message size on this destination.
Average Enqueue Time The average time a message has been held this destination.
Average Blocked Time The average time (ms) a message is blocked for Flow Control.
Cache Enabled Specifies if caching is enabled.
Blocked Producer Warning Interval The interval between warnings issued when a producer is blocked from adding messages to the destination.
Queue Count Details
Enqueue Count The total number of messages sent to the queue since the last restart.
Dispatch Count The total number of messages sent to consumer sessions (Dequeue + Inflight).
Dequeue Count The total number of messages removed from the queue (acknowledged by consumer) since last restart.
Expired Count   The number of messages that were not delivered because they were expired.

Subscriber Details

Parameter Description
Subscriber Details
Designation Name  
Cursor Usage The message cursor memory usage, in bytes.
Maximum Pending Messages The maximum number of pending messages allowed.
Messages Awaiting Acknowledgement The number of messages dispatched to the client and are awaiting acknowledgement.
Pending Queue Size The number of messages pending delivery.
Enqueue Counter Counts the number of messages that matched the subscription.
Dequeue Counter   Counts the number of messages were sent to and acknowledge by the client.

Configuration

Parameter Description
Configuration Details
Broker Version The version of the broker.
Broker ID The unique id of the broker.
Broker Name The name of the broker.
Average Message Size The average message size on this destination.
Current Connection Count  
Job Scheduler Store Limit The disk limit, in bytes, used for scheduled messages before producers are blocked.
Job Scheduler Store The percentage of job store limit used.
Maximum Message Size The maximum message size on this destination.
Memory Limit The memory limit, in bytes, used for holding undelivered messages before paging to temporary storage.
Minimum Message Size The minimum message size on this destination.
Total Connection Count The total number of connections (Both the producer and consumer have to connect to the ActiveMQ instance for posting and consuming messages respectively). 
Total Consumer Count The total number of consumers that have consumed the messages posted by the producers
Total DeQueue Count The total number of messages removed from the queue (acknowledged by consumer) since last restart.
Total Enqueue Count The total number of messages sent to the queue since the last restart.
Total Message Count  The total number of messages in the queue, including the number of enqueued and dequeued messages. 
Total Producer Count The total number of producers that have posted messages to the ActiveMQ instance
Store Limit  The percent of store limit used.