The following groovy script displays a list of queues in ActiveMQ with some statistics per queue.
import javax.management.*
import javax.management.remote.*
import javax.lang.management.*
def serverUrl = 'service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi'
def env = [(JMXConnector.CREDENTIALS): ["smx","smx"] as String[]]
def jmxUrl = new JMXServiceURL(serverUrl)
def connect = JMXConnectorFactory.connect(jmxUrl,env)
def server = connect.MBeanServerConnection
def query = new ObjectName('org.apache.activemq:Type=Queue,*')
def queues = server.queryNames(query,null)
printf "%-50s, %7s, %7s, %7s, %7s, %7s, %7s, %7s, %7s, %7sn", "Name", "Avg QT", "Max QT", "Min QT", "Enq Cnt", "Dsp Cnt", "Exp Cnt", "Inf Cnt", "Consumrs", "Producr"
printf "%-50s, %7s, %7s, %7s, %7s, %7s, %7s, %7s, %7s, %7sn", "----", "------", "------", "------", "-------", "-------", "-------", "-------", "--------", "-------"
queues.each { queue ->
def queueBean = new GroovyMBean(server,queue)
printf "%-50s, %7.2g, %7.2g, %7.2g, %7s, %7s, %7s, %7s, %7s, %7sn",
queueBean.Name,
queueBean.AverageEnqueueTime as Float, queueBean.MaxEnqueueTime as Float, queueBean.MinEnqueueTime as Float,
queueBean.EnqueueCount, queueBean.DispatchCount, queueBean.ExpiredCount, queueBean.InFlightCount,
queueBean.ConsumerCount, queueBean.ProducerCount
}