Live monitoring using the JMX interface
This article describes how to expose JMX MBeans within Jira for monitoring with a JMX client.
This guide provides a basic introduction to the JMX interface and is provided as is. Our support team can help you troubleshoot a specific Jira problem, but aren't able to help you set up your monitoring system or interpret the results.
What is JMX?
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. For large instances of Jira Server or Jira Data Center, enabling JMX allows you to more easily monitor the consumption of application resources and diagnose performance issues related to indexing. This enables you to make better decisions about how to maintain and optimize machine resources.
Metrics collected by Jira
The following table lists metrics (MBeans) that are collected by Jira. All of them are grouped in the com.atlassian.jira
property.
Metric | Description | Reset after restarting Jira |
---|---|---|
dashboard.view.count | The number of times all dashboards were viewed by users. | Yes |
entity.attachments.total | The number of attachments. | - |
entity.components.total | The number of components. | - |
entity.customfields.total | The number of custom fields. | - |
entity.filters.total | The number of filters. | - |
entity.groups.total | The number of user groups. | - |
entity.issues.total | The number of issues. | - |
entity.users.total | The number of users. | - |
entity.versions.total | The number of versions created. | - |
issue.assigned.count | The number of times issues were assigned or reassigned to users (counts each action). | Yes |
issue.created.count | The number of issues that you created after starting your Jira instance. | Yes |
issue.link.count | The number of issue links created after starting your Jira instance. | Yes |
issue.search.count | The number of times you searched for issues. | Yes |
issue.updated.count | The number of times you updated issues (each update after adding or changing some information). | Yes |
issue.worklogged.count | The number of times you logged work on issues. | Yes |
jira.license | The types of licenses you have, the number of active users, and the maximum number of users available for each license type. | - |
quicksearch.concurrent.search | The number of concurrent searches that are being performed in real-time by using the quick search. You can use it to determine whether the limit set for concurrent searches is sufficient or should be increased. | Yes |
web.requests | The number of requests (invocation.count), and the total response time (total.elapsed.time). | Yes |
The following metrics have been added to Jira as of 8.1 and are exposed under under com.atlassian.jira/metrics
. All the metrics mentioned below will be reset after restarting Jira.
Metric path | Description |
---|---|
comment | Metrics related to comment operations |
comment/Create | Comment being created |
comment/Delete | Comment being deleted |
comment/Update | Comment being updated |
indexing | Metrics related to issue, comment, worklog, and change indexing |
indexing/CreateChangeHistoryDocument | Index documents being created for Change History entities. Note that many Change History Documents can be created for every issue. |
indexing/CreateCommentDocument | Index documents being created for Comment entities. |
indexing/CreateIssueDocument | Index documents being created for Issue entities |
indexing/IssueAddFieldIndexers | FieldIndexer modules enrich Issue documents as part of Index document creation. Plugins can register custom FieldIndexer modules. These metrics provide insight into how much time is spent in FieldIndexer, and can be used to track down indexing performance issues caused by them. The metrics describe how much time was spent in all FieldIndexers combined per Issue document created. |
indexing/LuceneAddDocument | How much time was spent adding a document to the Lucene index |
indexing/LuceneDeleteDocument | How much time was spent deleting one or more documents matching a term from the Lucene index |
indexing/LuceneOptimize | Metrics about Lucene index optimization (triggered manually from Jira) |
indeding/LuceneUpdateDocument | How much time was spent adding a created document to the Lucene index. |
indexing/ReplicationLatency | Replication latency is the time between an issue, comment, or worklog being indexed on the node where the change was made and the indexing operation being replayed on the current node. |
indexing/WaitForLucene | Documents are written to the Lucene index asynchronously. This metric captures how much time Jira’s indexing thread spent waiting for Lucene to complete the write. |
indexing/issueAddSearchExtractors | EntitySearchExtractor enriches issue documents as part of Index document creation. Plugins can register custom EntitySearchExtractor modules. These metrics provide insight into how much time is spent in EntitySearchExtractor and can be used to track down indexing performance issues they cause. The metrics describe how much time was spent in all EntitySearchExtractors combined per issue document created. |
issue | Metrics about issue operations |
issue/Create | Issue being created |
issue/Delete | Issue being deleted |
issue/Index | Issue being added to the Lucene index. This covers issue document creation and adding the document to the index. |
issue/DeIndex | Issue being removed from the Lucene index |
issue/ReIndex | Issue being re-indexed (as a result of issue updates). This covers issue document creation, deleting the old document from the index and adding new documents to the index. |
issue/Update | Issue being updated |
Monitoring Jira
Before you can monitor Jira, you need to enable JMX monitoring and then use a JMX client to view the metrics.
Viewing the metrics will always have some performance impact on Jira. We recommend that you don't refresh them more than once a second.
Enabling JMX monitoring in Jira
All of the metrics are collected by default, but you need to enable JMX monitoring to expose them. You can do it in Jira but you must be a Jira admin.
- In Jira, go to Administration () > System > JMX monitoring.
- Toggle Enable JMX monitoring.
Monitoring with JConsole
After you enabled JMX monitoring, you can use any JMX client to view the metrics. To make it quick and easy, we've described how to view them by using JConsole. You can monitor your Jira instance either locally, or remotely:
Monitoring Jira locally is good if you're troubleshooting a particular issue, or only need to monitor Jira for a short time. Local monitoring can have a performance impact on your server, so it's not recommended for long-term monitoring of your production system.
Monitoring Jira remotely is recommended for production systems, as it does not consume resources on your Jira server.