ActiveMQ Queue Test
An ActiveMQ queue is a messaging construct used for point-to-point communication, allowing messages to be reliably stored and processed in a first-in, first-out order. The queue is a fundamental component in ActiveMQ and is commonly used in various messaging scenarios to facilitate asynchronous communication between components or services.
This test monitors the queue and collect some of the key metrics like count of producers, consumers, size of queue etc. The trends of these metrics provide valuable insights to the administrators about the current and potential problems. Using these insights, administrators can handle the problem before it causes performance dissipation.
Target of the test : An Active MQ Server
Agent deploying the test : An internal/remote agent.
Outputs of the test : One set of results for each queue in ActiveMQ Server
Parameter |
Description |
Test period |
How often should the test be executed. |
Host |
The host for which the test is to be configured. |
Port |
The port at which the specified host listens. Default value is 8161. |
Timeout |
Specify the duration (in seconds) for which this test should wait for a response from the target ActiveMQ Server. If there is no response from the target beyond the configured duration, the test will timeout. By default, this is set to 240 seconds. |
JMX Remote Port |
Specify the port at which the JMX listens for requests from remote hosts. Ensure that you specify the same port that you configured in the management.properties file in the <JAVA_HOME>\jre\lib\management folder used by the ActiveMQ Server. |
JNDI Name |
Specify the lookup name for connecting to the JMX connector of the ActiveMQ Server. By default, this is jmxmi. |
JMX User, JMX Password and Confirm Password |
These parameters appear only if the Measurement Mode is set to jmx. If JMX requires authentication only (but no security), then ensure that the JMX User and JMX Password parameters are configured with the credentials of a user with read-write access to JMX. |
JMX Registry SSL |
If you have registered the JMX connector in an SSL-enabled RMI registry , set this flag to Yes. By default, this is set to No. |
Measurement |
Description |
Measurement Unit |
Interpretation |
||||||
---|---|---|---|---|---|---|---|---|---|
Producer count |
Indicates the total number of producers who are publishing messages to this queue. |
Number |
If there is a very large number of producers publishing to queue, it is just matter of time before system will start experiencing performance issues. If the number of producers is increasing, the administrators may need to augment capacity or add more queues. |
||||||
Consumer count |
Indicates the total number of consumers who are receiving messages from this queue. |
Number |
Ideally the number should be optimal, and this doesn't directly correspond to the number of producers. If the value of this measures is low, it indicates that there are inadequate consumers to consume majority of messages in the queue. This may lead to congestion in the queue. |
||||||
Queue size |
Indicates the number of messages available on this queue. |
Number |
If the size of queue is gradually increasing over the period of time, it may indicate issues at consumer side or queue expiration policy. |
||||||
Dequeue count |
Indicates the total number of messages deleted from this queue since the last restart. |
Number |
|
||||||
Enqueue count |
Indicates the total number of messages sent to this queue since the last restart. |
Number |
Together with dequeue count, a high number indicates healthy use of queue. |
||||||
Dispatch count |
Indicates the total number of messages sent to consumer sessions from this queue. |
Number |
Number of messages delivered should be near to the number of messages produced. |
||||||
Expired count |
Indicates the total number of messages that were not delivered from this queue because they expired. |
Number |
As per the queue expiration policy, messages expire after some time if not delivered to right consumer. a large count indicates that there are not enough consumers. |
||||||
Inflight count |
Indicates the total number of messages that were sent to consumer sessions from this queue but have not received acknowledgment. |
Number |
The value of this measure should be very low. |
||||||
Subscriptions |
Indicates the number of subscriptions made to this queue. |
Number |
There is no hard limit to number of subscription to the queue but the number should be optimal for best performance. |
||||||
DLQ |
Indicates whether/not this queue is a DLQ (Dead Letter Queue). |
|
A dead-letter queue (DLQ) is a special type of message queue that temporarily stores messages that a software system cannot process due to errors. The numeric values that correspond to these measure values are as follows:
Note: By default, this measure reports the Measure Values listed in the table above to indicate whether the queue is DLQ or not. In the graph of this measure however, the same is indicated using the numeric equivalents only. |
||||||
Average message size |
Indicates the average size of messages published to this queue. |
Bytes |
Although there is no limitation on the size of messages, high average size could explain slow delivery of messages. |
||||||
Maximum page size |
Indicates the maximum number of messages that can be paged in from this queue. |
Number |
Increase this value to improve performance for queue destinations that contain grouped messages that are consumed by multiple concurrent consumers. |
||||||
Maximum enqueue time |
Indicates the maximum amount of time for which the messages in this queue remained enqueued. |
Seconds |
A high enqueue time for few messages could be due to large message size, average enqueue time is a better indicator of queue performance assuming the sizes are properly distributed.
|
||||||
Minimum enqueue time |
Indicates the minimum amount of time for which the messages in this queue remained enqueued. |
Seconds |
|||||||
Average enqueue time |
Indicates the average amount of time the messages in this queue remained enqueued. |
Seconds |
|||||||
Memory limit |
Indicates the memory limit configured for holding undelivered messages before paging in to a temporary queue from this queue. |
MB |
|
||||||
Memory percentage usage |
Indicates the percentage of memory used by this queue. |
Percentage |
|
||||||
Memory usage byte count |
Indicates the amount of memory used by this queue. |
MB |
A low value is preferred for this measure. |