Real-Time Diagnostics

With JasperReports Server 5.0, Jaspersoft introduces full instrumentation of the server so that it can provide real-time diagnostic information such as memory usage, concurrent reports being run, cache statistics, and much more. Whereas auditing and monitoring provide a historical record of events on the server, diagnostics display the current status of the server and its Java Virtual Machine (JVM) environment.

The diagnostic feature relies on the Java Management Extensions (JMX) industry standard to gather run-time data and expose it to other management interfaces. JasperReports Server implements several elements of the JMX architecture:

New JMX managed beans that are used to gather and hold diagnostic data such as the number of concurrent reports.
Its own JMX agent, like a server, that responds to JMX requests and exposes the information from the managed beans.
Connections to existing JMX managed beans in other components such as Ehcache to include their diagnostic data.
Connections to other JMX agents such as JVM agent to gather system diagnostics.

There are two ways to use diagnostic data from JasperReports Server:

If you have an external management console that can connect to a JMX agent, you can use it to connect to the server’s JMX agent. You will probably also want to connect to the JVM’s JMX agent as well. You can then view the real-time diagnostic data from JasperReports Server integrated with the data from your other servers in your management console. Management consoles often offer further functionality such as thresholds and alarms that you can set on data from any JMX managed bean.
Jaspersoft provides a custom data source within the server that collects the same information from the managed beans in the server and in the JVM. You can then create JasperReports that access this data source and present this diagnostic data in a report that suits your needs. Jaspersoft also provides a report and an Ad Hoc Topic to demonstrate this.