Add sql/connection_pool/connections metric

Export the number of active (true) and idle (false) connections
inside of the connection pool, if the connection pool was enabled.

Change-Id: I42f4f24a27883a63730f6fe9e3649b93f59ebfc8
This commit is contained in:
Shawn Pearce
2015-11-12 18:38:08 -08:00
parent a093f127d4
commit 5ae5356717
6 changed files with 53 additions and 8 deletions

View File

@@ -22,6 +22,9 @@ import com.google.common.collect.Lists;
import com.google.gerrit.common.Die;
import com.google.gerrit.extensions.events.LifecycleListener;
import com.google.gerrit.lifecycle.LifecycleModule;
import com.google.gerrit.metrics.DisabledMetricMaker;
import com.google.gerrit.metrics.MetricMaker;
import com.google.gerrit.metrics.dropwizard.DropWizardMetricMaker;
import com.google.gerrit.server.config.GerritServerConfig;
import com.google.gerrit.server.config.GerritServerConfigModule;
import com.google.gerrit.server.config.SitePath;
@@ -93,7 +96,13 @@ public abstract class SiteProgram extends AbstractProgram {
}
/** @return provides database connectivity and site path. */
protected Injector createDbInjector(final DataSourceProvider.Context context) {
protected Injector createDbInjector(DataSourceProvider.Context context) {
return createDbInjector(false, context);
}
/** @return provides database connectivity and site path. */
protected Injector createDbInjector(final boolean enableMetrics,
final DataSourceProvider.Context context) {
final Path sitePath = getSitePath();
final List<Module> modules = new ArrayList<>();
@@ -107,6 +116,17 @@ public abstract class SiteProgram extends AbstractProgram {
};
modules.add(sitePathModule);
if (enableMetrics) {
modules.add(new DropWizardMetricMaker.ApiModule());
} else {
modules.add(new AbstractModule() {
@Override
protected void configure() {
bind(MetricMaker.class).to(DisabledMetricMaker.class);
}
});
}
modules.add(new LifecycleModule() {
@Override
protected void configure() {