Monitor your Confluence server application performance in the wiki

Work smarter, better, and faster with weekly tips and how-tos.

This is a guest post by Keith Brophy from Adaptavist. Announced at Atlassian Summit 2010, the new VisualVM Plugin allows you to profile and measure how your enterprise wiki is performing. This post will describe the different features of plugin.

Summit Spotlight: VisualVM Plugin

As with any Java application, Confluence consumes system resources (CPU, memory, etc.) as it helps your team collaborate and share information. Understanding how, and why, these resources are being consumed can help you make informed decisions and answer common questions:

How will usage of a plugin affect application performance?

Why is the application running slowly?

How is the application coping with day-to-day traffic?

How is memory being consumed by the application?

There are various tools available that allow you to profile and measure how your Java application is performing. The Java VisualVM tool is one such tool that exposes resource utilisation data from your application and presents it in graphical format. These tools all require installation and/or configuration for connection to Confluence. Some require the specification of new startup parameters, in order to allow the monitoring application correctly communicate with Confluence.

The Adaptavist engineers have used these tools in numerous scenarios, while helping clients improve performance of their Confluence system and diagnose related issues. Always looking for more efficient and effective ways of tackling problems, our engineers put their talents to integrating this monitoring capability within Confluence as a plugin. This work gave rise to the VisualVM plugin.

Health Monitor

The VisualVM plugin is easily installed in Confluence in the normal manner – without the need for further configuration or a system restart. The plugin immediately starts monitoring Confluence and how it is using the system resources, providing you with up-to-the-second data as to how the application is performing.

The main dashboard of the plugin provides graphical and numerical data for four main resource/process types:

CPU usage

Memory usage

Classes

Threads

Special attention has been given to the dashboard UI in order to provide informative, interactive graphs. Hovering over points within a graph provides pin-point detail. The various graphs can be modified to display only the data in which you are interested. The graphs are updated in real-time and reflect exactly how the system resources are being utilised.

Microscopic

Each graph allows you to select a region and zoom in for further, closer inspection of the data. This allows further analysis of resource usage during the selected zoom-range. The zoom region is also synchronised over all graphs so that you can review the same time-frame for the data collected.

The plugin also allows you to capture a snapshot of all the data collected, or just the data from your selected zoom-range. This data can then be sent to your developers or system administrators for review.

A Plugin a Day

The Visual VM plugin is extremely useful for initial diagnosis of Confluence’s usage of system resources. For all performance related issues, it is vital to establish a baseline upon which further changes can be benchmarked against. The VisualVM plugin can provide this data as well as quickly highlight spikes in CPU or memory usage or thread deadlock situations.

System administrators will welcome the direct access to the monitoring data and the ability to review how Confluence is performing in relation to system resource usage. Monitoring data can now be correlated with reports of degraded system response at certain times – providing possibilities for further investigation. New plugins can be tested with system resource usage metrics collected and reviewed, before deploying to live systems.

Plugin developers can also collect load test metrics, along with system resource usage data from the VisualVM plugin, and verify that a new plugin meets expected load requirements. CPU or memory intensive behaviour encountered in the VisualVM plugin data might also spark a code review of a new plugin in order to determine if some code optimisations were required.