SQ Official Doc Link: https://docs.sonarqube.org/display/SONAR/Monitoring
Table of Contents
The SonarQube Server offers visibility about what happens internally through the exposure of JMX MBeans. ElasticSearch (ES) is used for searching in SonarQube, and there are multiple dedicated tools for ES monitoring.
Exposed JMX MBeans
In addition to the classical Java MBeans providing information about the ClassLoader, OS, Memory and Threads you have access to four more MBeans in the SonarQube Server:
- ComputeEngine
- Database
- ElasticSearch
- SonarQube
All these MBeans are read-only. It's not possible to modify or reset their values in real time.
ComputeEngineTasks MBean
Attribute Name | Description |
---|---|
ProcessingTime | Measure the time (in ms) spent to process Background Tasks since the last restart of SonarQube. Its value will always increase and will be reset by a restart of SonarQube. This measure is very powerful when:
|
ErrorCount | Number of Background Tasks which failed since the last restart of SonarQube |
PendingCount | Number of Background Tasks waiting to be processed since the last restart of SonarQube |
InProgressCount | Number of Background Tasks currently under processing. Its value is either 1 or 0, since SonarQube can process only one task at a time. |
SuccessCount | Number of Background Tasks successfully processed since the last restart of SonarQube |
WorkerCount | Number of Background Tasks that can be processed at the same time |
Note:
- the total number of Background Tasks handled since the last restart of SonarQube is equal to SuccessCount + ErrorCount
- these values are reset to their default values by restarting SonarQube
Database MBean
Same attributes are available for both ComputeEngineServer and WebServer.
Attribute Name | Description |
---|---|
MigrationStatus | Possible values are: UP_TO_DATE, REQUIRES_UPGRADE, REQUIRES_DOWNGRADE, FRESH_INSTALL (only available for WebServer). |
PoolActiveConnections | Number of active database connections |
PoolIdleConnections | Number of database connections waiting to be used |
PoolInitialSize | Initial size of the database connections pool. |
PoolMaxActiveConnections | Maximum number of active database connections |
PoolMaxIdleConnections | Maximum number of database connections waiting to be used |
PoolMaxWaitMillis | In milliseconds |
PoolRemoveAbandoned | Possible values : true, false |
PoolRemoveAbandonedTimeoutSeconds | In Seconds |
ElasticSearch MBean
Attribute Name | Description |
---|---|
NumberOfNodes | Number of ES Nodes in your SonarQube installation. |
State | Possible values are: GREEN, YELLOW, RED |
SonarQube MBean
Attribute Name | Description |
---|---|
LogLevel | Log Level: INFO, DEBUG, TRACE |
ServerId | SonarQube Server ID |
Version | SonarQube Version |
How to Activate JMX ?
Local Access
There is nothing to activate to view SonarQube MBeans if your tool is running on the same server as the SonarQube Server.
Remote Access
Here are examples of configuration to activate remote access to JMX MBeans.
For the WebServer:
|
For the SearchServer:
|
For the ComputeEngine:
There is no specific javaAdditionalOpts entry, simply amend the sonar.ce.javaOpts one.
Example of jmxremote.access:
|
Example of jmxremote.password:
|
Note: on jmxremote.password, you should apply chmod 600
or 400
for security reasons.
How to Monitor ElasticSearch?
Configure in conf/sonar.properties the entry sonar.search.httpPort
. This will activate the ElasticSearch REST End-Point required by most ES Monitoring Tools.
Here what you can get using Elastic HQ (Free, OS) :
Add Comment