Developers and administrators of Java applications should be very familiar with the Java VisualVM tool. This tool allows access to important information related to a Java process:
Java VisualVM is a tool that provides a visual interface for viewing detailed information about Java applications while they are running on a Java Virtual Machine (JVM), and for troubleshooting and profiling these applications.
Java VisualVM federates tools such as JConsole, jstat, jinfo, jstack, and jmap to obtain data from the JVM software, then re-organizes and presents the information graphically, to enable you to view different data about multiple Java applications uniformly, whether they are running locally or on remote machines.
This tool is an invaluable resource when monitoring or diagnosing (and resolving) a number of situations and scenarios:
- generating and analysing heap dumps
- tracking down memory leaks
- performing and monitoring garbage collection
- performing lightweight memory and CPU profiling.
Our development/support team have used the VisualVM tool to address a number of issues with various Confluence installations. The team decided to make the next logical step of integrating the power of VisualVM directly within Confluence.
Such integration would avoid any of the complexities of configuring the application externally and allow for direct access of vital system data from within the application itself. The flexibility of Confluence's plugin system and the extensible nature of the VisualVM code gave rise to the Adaptavist VisualVM Plugin.
The main screen of the plugin provides graph or numerical details for:
- CPU usage
We unleashed our UI experts on this plugin and we think they have done a pretty good job. It is possible to select a section of the any of the graphed data and zoom in for a more detailed view of the information recorded. The zoomed view is synchronised across all four graphing panels. Hovering over certain points in the graph provides further information for that point in the collected data.
The polling time for the plugin can also be configured to record information at differnt granularity levels.
The Threads tab presents details of the threads currently running within the JVM serving up Confluence. This information is invaluable when diagnosing deadlock issues. The Garbage Collection tab provides further details relating to the memory usage for the JVM. It is also possible to suggest a GC from this tab panel.
The plugin also allows for the capture of a snapshot of the information recorded. This means that the information can be reviewed on another instance - extremely useful in support cases.
The VisualVM Plugin is exclusively available to all subscribers of our support service.