AppDynamics Monitoring Extension for use with Atlassian Confluence

An AppDynamics extension to be used with a stand alone Java machine agent to provide metrics for Atlassian Confluence

Use Case

Atlassian Confluence is a wiki used by more than half of Fortune 100 companies to connect people with the content and co-workers they need to get their jobs done, faster. Connect your entire business in one place online to collaborate and capture knowledge – create, share, and discuss your documents, ideas, minutes, and projects.


  1. Before the extension is installed, the prerequisites mentioned here need to be met. Please do not proceed with the extension installation if the specified prerequisites are not met.

  2. This extension extracts the metrics from Confluence using the JMX protocol. By default, Confluence starts with local or remote JMX disabled. Please follow the link to enable JMX. To know more about JMX, please follow the link Monitoring and Management Using JMX Technology.


  1. Download the
  2. Unzip as "ConfluenceMonitor" and copy the "ConfluenceMonitor" directory to <MACHINE_AGENT_HOME>/monitors
  3. Edit the file config.yml located at <MachineAgent_Dir>/monitors/ConfluenceMonitor. The metricPrefix of the extension has to be configured as specified here. Please make sure that the right metricPrefix is chosen based on your machine agent deployment, otherwise this could lead to metrics not being visible in the controller.


Note : Please make sure to not use tab (\t) while editing yaml files. You may want to validate the yaml file using a yaml validator

  1. Configure the Confluence instances by editing the config.yml file in <MACHINE_AGENT_HOME>/monitors/ConfluenceMonitor/.
  2. Below is the default config.yml which has metrics configured already For eg.

      #This will create this metric in all the tiers, under this path
      metricPrefix: Custom Metrics|Confluence
      #This will create it in specific Tier/Component. Make sure to replace <COMPONENT_ID> with the appropriate one from your environment.
      #To find the <COMPONENT_ID> in your environment, please follow the screenshot
      #metricPrefix: Server|Component:<COMPONENT_ID>|Custom Metrics|Confluence
      # List of Confluence Instances
        - host: "localhost"
          port: 8889
          displayName: "LocalConfluence"  #displayName is a REQUIRED field for  level metrics.
      # number of concurrent tasks.
      # This doesn't need to be changed unless many instances are configured
      numberOfThreads: 10
      # The configuration of different metrics from various mbeans of Confluence server
      # For most cases, the mbean configuration does not need to be changed.
        - objectName: "Confluence:name=IndexingStatistics"
          #aggregation: true #uncomment this only if you want the extension to do aggregation for all the metrics in this mbean for a cluster
              - Flushing : "Flushing"
                convert : {
                  true : "1",
                  false : "2"
              - LastElapsedMilliseconds : "LastElapsedMilliseconds"
              - LastElapsedReindexing : "LastElapsedReindexing"
              - TaskQueueLength : "TaskQueueLength"
        - objectName: "Confluence:name=MailTaskQueue"
              - ErrorQueueSize : "ErrorQueueSize"
              - Flushing : "Flushing"
                convert : {
                  true : "1",
                  false : "2"
              - RetryCount : "RetryCount"
              - TasksSize : "TasksSize"
  3. Configure the path to the config.yml file by editing the in the monitor.xml file in the <MACHINE_AGENT_HOME>/monitors/ConfluenceMonitor/ directory. Below is the sample For Windows, make sure you enter the right path.

         <!-- config file-->
         <argument name="config-file" is-required="true" default-value="monitors/ConfluenceMonitor/config.yml" />

Metrics Provided

In addition to the metrics exposed by Confluence, we also add a metric called "Metrics Collection Successful" with a value 0 when an error occurs and 1 when the metrics collection is successful.

Note : By default, a Machine agent or a AppServer agent can send a fixed number of metrics to the controller. To change this limit, please follow the instructions mentioned here. For eg.

    java -Dappdynamics.agent.maxMetrics=2500 -jar machineagent.jar

Password Encryption Support

To avoid setting the clear text password in the config.yaml, please follow the process below to encrypt the password

  1. Download the util jar to encrypt the password from and navigate to the downloaded directory
  2. Encrypt password from the commandline java -cp appd-exts-commons-1.1.2.jar com.appdynamics.extensions.crypto.Encryptor encryptionKey myPassword
  3. Specify the passwordEncrypted and encryptionKey in config.yaml

Custom Dashboard

Troubleshooting steps

Before configuring the extension, please make sure to run the below steps to check if the set up is correct.

  1. Telnet into your Confluence server from the box where the extension is deployed.

          telnet <hostname> <port>
          <port> - It is the jmxremote.port specified.
          <hostname> - IP address

    If telnet works, it confirm the access to the Confluence server.

  2. Start jconsole. Jconsole comes as a utility with installed jdk. After giving the correct host and port , check if Confluence mbean shows up.

  3. It is a good idea to match the mbean configuration in the config.yml against the jconsole. JMX is case sensitive so make sure the config matches exact.

  4. Please look at the troubleshooting document and make sure that everything is followed correctly. These are a set of common issues that customers might have faced during the installation of the extension. If these don't solve your issue, please follow the last step on the troubleshooting-document to contact the support team.


Always feel free to fork and contribute any changes directly via GitHub.


Confluence Versions Tested On5.10.4
Machine Agent Compatibility4.0+
Last Update3 Oct 2016


Releases Notes

  • 1.0.0: Initial release