|
JMX (Java Management eXtensions) is a technology for monitoring and managing Java applications. JMX uses objects called MBeans (Managed Beans) to expose data and resources from your application.
By default, Confluence uses the Apache Tomcat web server. To use JMX, you must enable it on your Tomcat server, by carrying out the steps under the Apache Tomcat documentation, entitled Enabling JMX Remote. With those steps completed, restart your Tomcat server.
For the stand-alone, add the startup parameter -Dcom.sun.management.jmxremote to setenv.sh or setenv.bat. See instructions for the Windows Service - enter it in the same place as PermGen Memory.
You need to use a JMX client in order to view the JMX output from Confluence. JConsole is a readily available JMX client that is included with the supported Java Developer Kit (version 5 onwards). The full name is the 'Java Monitoring and Management Console', but we will refer to it as JConsole for the purposes of this document.
You must add the location of the JConsole binary file to your path environment variable. As JConsole resides in the 'bin' (binaries) folder under your Java directory, the path should resemble something like this:
JDK_HOME/bin/ |
In this example, replace 'JDK_HOME' with the full system path to your Java directory.
To configure JConsole:
You will be prompted to create a new connection. Choose remote process and enter the hostname of your Confluence instance and a port of your choosing.
To connect easily, add the startup parameters to setenv.bat or setenv.sh: |
JConsole, or any JMX client, will not see applications which are not owned by the same user. For example under Windows, if an application is started as a service, it is the System User which owns the process, and not the Current User. |
Note: Other JMX clients besides JConsole can read JMX information from Confluence.
The JMX interface allows you to see live internal information from your Confluence instance, via the following MBeans:
This MBean shows information related to search indexing.
Property name | Function | Values |
|---|---|---|
Flushing | Shows state of cache (i.e. flushing, or not). | True/False |
LastElapsedMilliseconds | Time taken during last indexing. | Milliseconds |
LastElapsedReindexing | Time taken during last re-indexing. | Milliseconds |
TaskQueueLength | Shows number of tasks in the queue. | Integer |
This MBean shows information related to database latency. It also contains most of the information presented on the System Information page.
Property name | Function | Values |
|---|---|---|
DatabaseExampleLatency | Shows the latency of an example query performed against the database. | Milliseconds |
This MBean shows information related to system load and error pages served.
Property name | Function | Values |
|---|---|---|
AverageExecutionTimeForLastTenRequests | Average execution time for the last ten requests. | Milliseconds |
CurrentNumberOfRequestsBeingServed | Number of requests being served at this instant. | Integer |
ErrorCount | Number of times the Confluence error page was served. | Integer |
NumberOfRequestsInLastTenSeconds | Obviously, the Number Of Requests In the Last Ten Seconds. | Integer |
This MBean shows information related to email dispatch attempts and failures. There will be an MBean for every SMTP Mailserver that has been configured in the Confluence instance.
Property name | Function | Values |
|---|---|---|
EmailsAttempted | The number of email messages Confluence has tried to send. | Integer |
EmailsSent | The number of email messages sent successfully. | Integer |
This MBean shows information related to the email workload.
Property name | Function | Values |
|---|---|---|
ErrorQueueSize | Number of errors in the queue. | Integer |
Flushing | Shows state (i.e. flushing, or not) | True/False |
FlushStarted | Time that operation began. | Time |
RetryCount | The number of retries that were performed. | Integer |
TaskSize | Number of email messages queued for dispatch. | Integer |
This MBean shows information related to current jobs, scheduled tasks and the time that they were last run.
For Java 1.6, add the Top Threads Plugin to monitor whether CPU is spiking. Download it to a directory and run JConsole like this:
JConsole -pluginpath /pathto/topthreads.jar
This works only with JDK 1.6, but that can be on the remote machine if the server is running a lower version.
Please note, adding live monitoring to a production instance may itself have an impact on performance. |