Database-Monitoring

JavaMelody supports out of the box JNDI DataSource in Web container (Tomcat). Because Gerrit instantiates its data source on its own, JavaMelody can not intercept it and therefore no SQL statistic reports can be gathered.

To overcome that problem a data source proxy must be installed.

Datasource interceptor JAR (that creates the data source proxy) must be available in the bootstrap classpath for Gerrit core to load it. Moreover, because the interceptor depends on javamelody core library, it must be provided in the bootstrap classpath too. In this case the plugin must not contain the javamelody core library (shaded jar).

Thus the javamelody dependencies must not be packaged in the plugin itself.

Add the following line to $gerrit_site/etc/gerrit.config under database section:

dataSourceInterceptorClass = com.googlesource.gerrit.plugins.javamelody.MonitoringDataSourceInterceptor

Compile the plugin according to the instructions in the build page.

Deploy the plugin dependencies with datasource-interceptor to $gerrit_site/lib:

cp bazel-bin/plugins/javamelody/javamelody-deps_deploy.jar `$gerrit_site/lib`

Deploy the plugin without dependencies:

cp bazel-bin/plugins/javamelody/javamelody.jar `$gerrit_site/plugins`

Run Gerrit@Jetty and enjoy SQL statistics, a lá:

http://i.imgur.com/8EyAA9u.png