the JBossMonitor ZenPack that system administrators to monitor JBoss Application Servers. JBossMonitor uses the JMX Remote API and accesses MBeans deployed within JBoss that contain performance information about the components that are being managed.
The collected performance information includes: pool sizes for data sources (JDBC), Enterprise Java Beans (EJBs), message queues (JMS), threads, servlets, JSPs, and classloaders. Cache information is also accessible, providing system administrators insight into the number of hits (or misses) their cache policy has produced.
The ZenPack also aggregates individual performance metrics into higher level concepts that provide a picture of the performance of the application. Cache hits and misses are combined on the same graph to provide an overall picture of cache performance. Likewise, queue metrics are combined to show the number of messages currently on the queue, being processed, and being placed on the queue. Queue subscribers and publishers are also graphed.
Each of the individual performance metrics can be trended and predicted, and thresholds can be explicitly defined. Both the predicted thresholds and explicit thresholds inform system administrators of potential future problems before they occur. Since so much of J2EE involves "managed resources", the ability to monitor pool sizes and alert administrators prior to resources being exhausted is extremely valuable and can reduce the likelihood of a fatal outage caused by resource depletion.
Most of the metrics that are collected in JBossMonitor represent combinations of individual component metrics. For example, the Thread Pool metric represents all threads in all pools. It is possible to configure JBossMonitor to perform at higher granularity and have it monitor a Thread Pool with a particular name. However, since these names are application specific we have chosen to configure JBossMonitor to collect at a rather coarse-grained level by default. The installer is highly encouraged to customize and configure!
One particular performance template that requires end-user configuration involves Servlets. If a site to be monitored is revenue generating, and credit card submissions from the website are handled via a back-end servlet, it may be critically important to monitor the resources made available by the JBoss container to the servlet container. If the number of free spaces in the servlet pool dwindles to zero it could prevent your application from making a sale.
The following are the collected metrics for JBoss servers:
Active Threads
JMS Message cache memory usage
JMS Message hits/misses
JMS Topic/Destination queue size
Java heap memory usage
JCA commit, rollback, and transaction count
JCA Connection pool in-use connections and available connections
JCA connections created/destroyed
JCA total connections
JGroups cluster messages sent/received
JGroups cluster bytes sent/received
MBean creation/removal count
MBean messages processed count