Jira Data Center monitoring

To help you monitor the performance of your Jira Data Center instance, we've introduced a number of monitors you can use to analyze bottlenecks and get alerts if something attention-worthy is happening. 

The alerts are available in the App Diagnostics framework by going to  <JIRA_URL>/plugins/servlet/diagnostics/overview.

JQL monitors

Jira has already provided alerts for slow and complex JQL queries, but in Jira 8.4 we have added an alert for queries with a large number of custom fields. The thresholds for the below alerts are checked every time a JQL query is executed. When a slow JQL query is detected one of the below alerts are raised.

The following monitors are available for Jira Data Center version 8.4 and later.

Type of alert

Description

Configuration options

Alert type

Data captured

Slow JQL queryDefault Alert raised when a JQL query is slow to execute
jira.diagnostics.thresholds.slow-query-millis
  • Threshold in milliseconds defined for slow JQL query alerts

  • Default 5000

Info
  • Thread dump

  • Number of clauses per field

  • Number of clauses in query

  • Number of custom fields

  • Number of results (numberOfResults=-1 means the number couldn't be determined)

  • Execution time in milliseconds

Complex JQL queryRaised when a complex JQL query is executed.
jira.diagnostics.thresholds.query-complexity
  • Query complexity alert threshold defined in the number of Lucene query clauses.

  • Default 10000

Info
  • Thread dump

  • Number of clauses per field

  • Number of clauses in query

  • Number of custom fields

  • Number of results (numberOfResults=-1 means the number couldn't be determined)

  • Execution time in milliseconds

Large number of requestRaised when a JQL query produces a large number of results.
jira.diagnostics.thresholds.number-of-results
  • Threshold in the number of returned issues from a JQL query for JQL alerts

  • Default 1000


Info
  • Thread dump

  • Number of clauses per field

  • Number of clauses in query

  • Number of custom fields

  • Number of results (numberOfResults=-1 means the number couldn't be determined)

  • Execution time in milliseconds

Large number of custom fieldsRaised when a JQL query contains a large number of custom fields.
jira.diagnostics.thresholds.query-custom-fields
  • Threshold for the number of custom fields used in a JQL query

  • Default 1000

Info
  • Thread dump

  • Number of clauses per field

  • Number of clauses in query

  • Number of custom fields

  • Number of results (numberOfResults=-1 means the number couldn't be determined)

  • Execution time in milliseconds

Data Center-specific monitors: Database, Scheduler, REST resources and Servlets 

The following monitors have been introduced in Jira 8.4 and are available for Jira Data Center 8.4 and later.


Database monitoring

The following are the alerts for slow database queries, high pool utilization, and abandoned connections:

Type of alert

Description

Default Threshold

Configuration options

Alert type

Data captured

Connection leakRaised when a database connection has leaked from the pool.300 secondsConfigurable via the tomcat pool-remove-abandoned-timeout option.Warning
  • Active connection count

  • Idle connection count

  • Max pool size

High connection pool utilization alert

Raised when the database connection pool is utilized at the limit for a specified period of time.


Has a default polling interval of 5 seconds
90% utilization for 15 minutes
jira.diagnostics.threshold.database-pool-utilization
  • Percentage threshold for raising an alert on database pool utilization.

  • Default 80

jira.diagnostics.threshold.database-pool-utilization-time-window
  • Time window in minutes for tracking database pool utilization

  • Default 15 minutes

jira.diagnostics.settings.database-pool-poller-interval
  • Poller interval for database pool in seconds

  • Default 5

Info
  • Active connection count

  • Idle connection count

  • Max pool size

Slow operation alertRaised when an SQL operation is slow to execute. Optionally, the SQL statement being executed can also be captured but this is configurable and is disabled by default.5 seconds with SQL not included in alerts
jira.diagnostics.settings.include-sql-in-alerts
  • Settings to include potentially exposed SQL queries in diagnostic alerts

  • Default false

jira.diagnostics.thresholds.slow-query-millis
  • Threshold in milliseconds defined for slow JQL query alerts

  • Default 5000

Info
  • SQL statement (optional)

  • Execution time in milliseconds

  • Plugins involved

  • Thread Name

Note: The data such as URL or username are not currently captured.

Scheduler monitoring

The following are the alerts for high pool utilization and slow jobs:

Type of alert

Description

Default Threshold

Configuration options

Alert type

Data captured

High utilization alert

Raised when the scheduler worker threads are 100% utilized for a period of time.

Has a default polling interval of 5 seconds.

More than or equal to 100% utilization for 15 minutes
jira.diagnostics.threshold.scheduler-utilization-time-window
  • Time window in minutes for tracking high scheduler utilization

  • Default 15

jira.diagnostics.settings.scheduler-poller-interval
  • Poller interval for scheduler diagnostics in seconds

  • Default 5

Info
  • Number of worker threads

  • Details of all executing jobs including:

    • Job runner key

    • Job ID

    • Running time

    • Job Runner class (if available)

    • Plugin of origin (if available)

Slow job alert

Raised when a scheduled job is taking longer than its configured interval to execute.

Has a default polling interval of 5 seconds.


jira.diagnostics.settings.scheduler-poller-interval
  • Poller interval for scheduler diagnostics in seconds

  • Default 5

Info
  • Job runner key

  • Job ID

  • Execution time

  • Job Runner class (if available)

  • Plugin of origin (if available)


REST resources and Servlets monitoring

The following is the alerts for slow running http requests:

Type of alert

Description

Default Threshold

Configuration options

Alert type

Data captured

Slow requestRaised when a HTTP request is slow to respond.60 seconds
jira.diagnostics.settings.http-request-max-elapsed-time
  • Threshold for in seconds for long running HTTP requests

  • Default 60

Info
  • Request path

  • Username

  • Execution time in milliseconds

  • Thread ID

  • Thread status

Configuration

Specific configuration

Unless described in the table, each of the above mentioned alerts is configurable through the jira-config.properties file located in the <jira-home> directory. For more information on how to configure the file, see jira-config.properties file

All alerts

Apart from the specific configuration described for each of the available alerts, you can change the general alert configuration. This way, your changes will apply to all alerts. To do that, open jira-config.properties and edit the following metrics:


 - com.atlassian.jira.health.diagnostics.alerts.retention-period-days: number of days to retain Diagnostics Alerts; 30 by default
 - com.atlassian.jira.health.diagnostics.alerts.truncation-interval-days: number of days to run the truncation job; 1 by default

For more information on how to configure the file, see jira-config.properties file

Changing default threshold

To change the default threshold, you need to edit the following properties in the jira-config.properties file:

  • jira.diagnostics
  • com.atlassian.jira.health.diagnostics.

Enabling and disabling alerts

The monitors are enabled by default, but they can be disabled and enabled with FeatureFlags. Learn more about how to work with dark features.

Feature typeFeature name
All monitorscom.atlassian.diagnostics.monitors
JQLcom.atlassian.diagnostics.jql.monitor
Databasecom.atlassian.diagnostics.database.monitor
Schedulercom.atlassian.diagnostics.scheduler.monitor
REST resources and Servletscom.atlassian.diagnostics.http.monitor
Last modified on Mar 27, 2024

Was this helpful?

Yes
No
Provide feedback about this article
Powered by Confluence and Scroll Viewport.