How to set up Monitoring for queue in activemq

Yes it is possible in Java.

Starting from version 5.8 of ActiveMQ jolokia agent comes embedded. So it is possible for you to get all stats that JMX can pull using HTTP request which will retuen you stats as JSON and then you can check current values and raise Email alert using SMTP if values go beyond threshold you have decided.

Lets say you want to pull Broker stats using Jolokia hit below URL in your browser enter AMQ console username and password which is admin by default http://servername.com:8161/api/jolokia/read/org.apache.activemq:type=Broker,brokerName=localhost

Or if you dont want to go through all this trouble , You can use ready made Python script which I have created to Monitor AMQ Heap, Queue params and Broker availability.You can take a look , it may help you in developing your custiom script or program

AMQMonitor and Alerting script


you can use Java via JMX APIs to periodically poll for queue stats (see this guide)

for the notification approach, you'd need to use advisory messages to monitor messages delivered to a queue (see this guide)


For a JMX-free approach, you can also use the XML feed served by the activemq console page. The XML feed is hosted at http://ip:port/admin/xml/queues.jsp

This will have tags similar to this for each queue:

<queue name="your queue">
<stats size="0" consumerCount="1" enqueueCount="0" dequeueCount="0"/>
....
</queue>

Just parse this XML in your code and you are good to go.