Document toolboxDocument toolbox

User Guide

Prerequisites

Only JIRA Administrators and JIRA System Administrators can access the License Monitoring menu.

To access the Thread Profiler settings: 

  1. Choose  Jira Settings→ System

  2. Locate Thread Profiler section and select the Settings menu.

Configuration


You can configure:

  • Thread expiration time (ms): The time in milliseconds after a thread will become a slow thread. As soon as the response time of any thread bypasses this limit several thread dump will be created for later analysis. The default value is 10000 (10 seconds).

  • Max log count (1-10): The number of the maximum StackTrace logging of a slow thread. The default value is 6.

  • Check frequency (ms): The frequency in milliseconds of StackTrace logging of a slow thread. The default value is 500.

For the configuration to take effect you must disable and enable the app!

The default configuration means that a thread will be considered as slow when the Jira server does not send the HTTP response for the user's request in 10 seconds. After that, the Thread Profiler will log a stack trace and some additional information of the thread. If the thread is still not finished a new stack trace will be logged of the thread in the given frequency (500 ms) and count (6).

 

 

 

Logging


The slow thread log messages will be logged in to the atlassian-jira.log file by default. For better reading and easier analyzing it is recommended to log these stack traces into a separate log file. You can extend the default Log4J configuration with this configuration for example:

##################################################### # Everit profiler logging configuration ##################################################### log4j.appender.everitProfilerLog=com.atlassian.jira.logging.JiraHomeAppender log4j.appender.everitProfilerLog.File=everit-profiler.log log4j.appender.everitProfilerLog.MaxFileSize=20480KB log4j.appender.everitProfilerLog.MaxBackupIndex=10 log4j.appender.everitProfilerLog.layout=com.atlassian.logging.log4j.NewLineIndentingFilteringPatternLayout log4j.appender.everitProfilerLog.layout.ConversionPattern=%d %t %p %X{jira.username} %X{jira.request.id} %X{jira.request.assession.id} %X{jira.request.ipaddr} %X{jira.request.url} [%q{2}] %m%n log4j.appender.everitProfilerLog.layout.StackTracePackagingExamined=false log4j.appender.everitProfilerLog.layout.MinimumLines=6 log4j.appender.everitProfilerLog.layout.ShowEludedSummary=false log4j.appender.everitProfilerLog.layout.FilteringApplied=true log4j.appender.everitProfilerLog.layout.FilteredFrames=@jira-filtered-frames.properties log4j.logger.biz.everit.jira.profiler = INFO, everitProfilerLog log4j.additivity.biz.everit.jira.profiler = false #####################################################

 

Recommendation


It is recommended to turn on the profiling option in Jira system as well for better understanding what happened in your Jira.