Config: allow per-check timeout configuration
Introduce healthcheck.config and allow global and
check-specific timeout settings.
Change-Id: I800908168ec232f98282fccf42216876b420be5f
diff --git a/src/main/java/com/googlesource/gerrit/plugins/healthcheck/HealthCheckConfig.java b/src/main/java/com/googlesource/gerrit/plugins/healthcheck/HealthCheckConfig.java
new file mode 100644
index 0000000..b1fe43d
--- /dev/null
+++ b/src/main/java/com/googlesource/gerrit/plugins/healthcheck/HealthCheckConfig.java
@@ -0,0 +1,60 @@
+// Copyright (C) 2019 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.googlesource.gerrit.plugins.healthcheck;
+
+import com.google.common.annotations.VisibleForTesting;
+import com.google.common.base.Strings;
+import com.google.gerrit.extensions.annotations.PluginName;
+import com.google.gerrit.server.config.PluginConfigFactory;
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import java.util.concurrent.TimeUnit;
+import org.eclipse.jgit.errors.ConfigInvalidException;
+import org.eclipse.jgit.lib.Config;
+
+@Singleton
+public class HealthCheckConfig {
+ public static final String HEALTHCHECK = "healthcheck";
+ private final Config config;
+ private static final long HEALTHCHECK_TIMEOUT_DEFAULT = 500L;
+ public static final HealthCheckConfig DEFAULT_CONFIG = new HealthCheckConfig(null);
+
+ @Inject
+ public HealthCheckConfig(PluginConfigFactory configFactory, @PluginName String pluginName) {
+ config = configFactory.getGlobalPluginConfig(pluginName);
+ }
+
+ @VisibleForTesting
+ public HealthCheckConfig(String configText) {
+ config = new Config();
+ if (!Strings.isNullOrEmpty(configText)) {
+ try {
+ config.fromText(configText);
+ } catch (ConfigInvalidException e) {
+ throw new IllegalArgumentException("Invalid configuration " + configText, e);
+ }
+ }
+ }
+
+ public long getTimeout() {
+ return getTimeout(null);
+ }
+
+ public long getTimeout(String healthCheckName) {
+ long defaultTimeout = healthCheckName == null ? HEALTHCHECK_TIMEOUT_DEFAULT : getTimeout(null);
+ return config.getTimeUnit(
+ HEALTHCHECK, healthCheckName, "timeout", defaultTimeout, TimeUnit.MILLISECONDS);
+ }
+}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/healthcheck/check/AbstractHealthCheck.java b/src/main/java/com/googlesource/gerrit/plugins/healthcheck/check/AbstractHealthCheck.java
index a71e287..8aa6432 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/healthcheck/check/AbstractHealthCheck.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/healthcheck/check/AbstractHealthCheck.java
@@ -16,6 +16,7 @@
import com.google.common.util.concurrent.ListenableFuture;
import com.google.common.util.concurrent.ListeningExecutorService;
+import com.googlesource.gerrit.plugins.healthcheck.HealthCheckConfig;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
@@ -24,16 +25,20 @@
public abstract class AbstractHealthCheck implements HealthCheck {
private static final Logger log = LoggerFactory.getLogger(AbstractHealthCheck.class);
- public static final long CHECK_TIMEOUT = 500L;
+ private final long timeout;
private final String name;
private final ListeningExecutorService executor;
private final MetricsHandler metricsHandler;
protected AbstractHealthCheck(
- ListeningExecutorService executor, String name, MetricsHandler.Factory metricsHandler) {
+ ListeningExecutorService executor,
+ HealthCheckConfig config,
+ String name,
+ MetricsHandler.Factory metricsHandler) {
this.executor = executor;
this.name = name;
this.metricsHandler = metricsHandler.create(name);
+ this.timeout = config.getTimeout(name);
}
@Override
@@ -58,7 +63,7 @@
return new Status(healthy, ts, System.currentTimeMillis() - ts);
});
try {
- status = resultFuture.get(CHECK_TIMEOUT, TimeUnit.MILLISECONDS);
+ status = resultFuture.get(timeout, TimeUnit.MILLISECONDS);
} catch (TimeoutException e) {
log.warn("Check {} timed out", name, e);
status = new Status(Result.TIMEOUT, ts, System.currentTimeMillis() - ts);
diff --git a/src/main/java/com/googlesource/gerrit/plugins/healthcheck/check/JGitHealthCheck.java b/src/main/java/com/googlesource/gerrit/plugins/healthcheck/check/JGitHealthCheck.java
index 7de042c..90c9fd9 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/healthcheck/check/JGitHealthCheck.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/healthcheck/check/JGitHealthCheck.java
@@ -20,6 +20,7 @@
import com.google.gerrit.server.config.AllProjectsName;
import com.google.gerrit.server.git.GitRepositoryManager;
import com.google.inject.Inject;
+import com.googlesource.gerrit.plugins.healthcheck.HealthCheckConfig;
import org.eclipse.jgit.lib.ObjectId;
import org.eclipse.jgit.lib.Repository;
@@ -30,10 +31,11 @@
@Inject
public JGitHealthCheck(
ListeningExecutorService executor,
+ HealthCheckConfig config,
GitRepositoryManager repositoryManager,
AllProjectsName allProjectsName,
MetricsHandler.Factory metricsHandlerFactory) {
- super(executor, JGIT, metricsHandlerFactory);
+ super(executor, config, JGIT, metricsHandlerFactory);
this.repositoryManager = repositoryManager;
this.allProjectsName = allProjectsName;
}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/healthcheck/check/ProjectsListHealthCheck.java b/src/main/java/com/googlesource/gerrit/plugins/healthcheck/check/ProjectsListHealthCheck.java
index c31a286..0c9a120 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/healthcheck/check/ProjectsListHealthCheck.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/healthcheck/check/ProjectsListHealthCheck.java
@@ -20,6 +20,7 @@
import com.google.gerrit.extensions.common.ProjectInfo;
import com.google.gerrit.server.project.ListProjects;
import com.google.inject.Inject;
+import com.googlesource.gerrit.plugins.healthcheck.HealthCheckConfig;
import java.util.SortedMap;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -32,9 +33,10 @@
@Inject
public ProjectsListHealthCheck(
ListeningExecutorService executor,
+ HealthCheckConfig config,
ListProjects listProjects,
MetricsHandler.Factory metricHandlerFactory) {
- super(executor, PROJECTSLIST, metricHandlerFactory);
+ super(executor, config, PROJECTSLIST, metricHandlerFactory);
this.listProjects = listProjects;
}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/healthcheck/check/ReviewDbHealthCheck.java b/src/main/java/com/googlesource/gerrit/plugins/healthcheck/check/ReviewDbHealthCheck.java
index 7bd60cf..805eaa1 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/healthcheck/check/ReviewDbHealthCheck.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/healthcheck/check/ReviewDbHealthCheck.java
@@ -21,6 +21,7 @@
import com.google.gerrit.reviewdb.server.ReviewDb;
import com.google.gwtorm.server.SchemaFactory;
import com.google.inject.Inject;
+import com.googlesource.gerrit.plugins.healthcheck.HealthCheckConfig;
public class ReviewDbHealthCheck extends AbstractHealthCheck {
private final SchemaFactory<ReviewDb> reviewDb;
@@ -28,9 +29,10 @@
@Inject
public ReviewDbHealthCheck(
ListeningExecutorService executor,
+ HealthCheckConfig config,
SchemaFactory<ReviewDb> reviewDb,
MetricsHandler.Factory metricHandlerFactory) {
- super(executor, REVIEWDB, metricHandlerFactory);
+ super(executor, config, REVIEWDB, metricHandlerFactory);
this.reviewDb = reviewDb;
}
diff --git a/src/main/resources/Documentation/about.md b/src/main/resources/Documentation/about.md
new file mode 100644
index 0000000..b2f798d
--- /dev/null
+++ b/src/main/resources/Documentation/about.md
@@ -0,0 +1,3 @@
+This plugin provides support for monitoring and alerting purposes.
+A common use-case is the automatic detection and recovery of issues
+for Gerrit Servers that need to be available on a 24x7 basis.
diff --git a/src/main/resources/Documentation/config.md b/src/main/resources/Documentation/config.md
new file mode 100644
index 0000000..5af0790
--- /dev/null
+++ b/src/main/resources/Documentation/config.md
@@ -0,0 +1,56 @@
+@PLUGIN@ configuration
+======================
+
+The @PLUGIN@
+------------
+
+The plugin does not require any configuration at all and exposes an HTTP
+endpoint for querying the service status.
+
+```
+GET /config/server/healthcheck~status
+
+)]}'
+{
+ "ts": 139402910202,
+ "elapsed": 100,
+ "reviewdb": {
+ "ts": 139402910202,
+ "elapsed": 50,
+ "result": "passed"
+ },
+ "projectslist": {
+ "ts": 139402910202,
+ "elapsed": 100,
+ "result": "passed"
+ },
+ "auth": {
+ "ts": 139402910202,
+ "elapsed": 80,
+ "result": "passed"
+ }
+}
+```
+
+Settings
+--------
+
+The plugin allows to customize its behaviour through a specific
+`healthcheck.config` file in the `$GERRIT_SITE/etc` directory.
+
+Each section of the form `[healthcheck "<checkName>"]` can tailor the
+behaviour of an individual `<checkName>`. The section `[healthcheck]`
+defines the global defaults valid for all checks.
+
+The following check names are available:
+
+- `reviewdb` : check connectivity and ability to query ReviewDb
+- `jgit` : check connectivity to the filesystem and ability to open a JGit ref and object
+- `projectslist` : check the ability to list projects with their descriptions
+
+The follwing parameters are available:
+
+- `healthcheck.<checkName>.timeout` : Specific timeout (msec) for the
+ healthcheck to complete. Zero means that there is no timeout.
+
+ Default: 500
\ No newline at end of file
diff --git a/src/test/java/com/googlesource/gerrit/plugins/healthcheck/HealthCheckConfigTest.java b/src/test/java/com/googlesource/gerrit/plugins/healthcheck/HealthCheckConfigTest.java
new file mode 100644
index 0000000..fc215ff
--- /dev/null
+++ b/src/test/java/com/googlesource/gerrit/plugins/healthcheck/HealthCheckConfigTest.java
@@ -0,0 +1,48 @@
+// Copyright (C) 2019 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.googlesource.gerrit.plugins.healthcheck;
+
+import static com.google.common.truth.Truth.assertThat;
+import static com.googlesource.gerrit.plugins.healthcheck.HealthCheckConfig.DEFAULT_CONFIG;
+
+import org.junit.Test;
+
+public class HealthCheckConfigTest {
+
+ @Test
+ public void shouldHaveDefaultTimeout() {
+ long defaultTimeout = DEFAULT_CONFIG.getTimeout(null);
+ assertThat(defaultTimeout).isGreaterThan(0L);
+ assertThat(DEFAULT_CONFIG.getTimeout("fooCheck")).isEqualTo(defaultTimeout);
+ }
+
+ @Test
+ public void shouldHaveGlobalTimeout() {
+ HealthCheckConfig config = new HealthCheckConfig("[healthcheck]\n" + "timeout=1000");
+
+ assertThat(config.getTimeout(null)).isEqualTo(1000);
+ assertThat(config.getTimeout("barCheck")).isEqualTo(1000);
+ }
+
+ @Test
+ public void shouldHaveCheckOverriddenTimeout() {
+ HealthCheckConfig config =
+ new HealthCheckConfig(
+ "[healthcheck]\n" + "timeout=2000\n" + "[healthcheck \"fooCheck\"]\n" + "timeout=1000");
+
+ assertThat(config.getTimeout("fooCheck")).isEqualTo(1000);
+ assertThat(config.getTimeout("barCheck")).isEqualTo(2000);
+ }
+}
diff --git a/src/test/java/com/googlesource/gerrit/plugins/healthcheck/HealthCheckStatusEndpointTest.java b/src/test/java/com/googlesource/gerrit/plugins/healthcheck/HealthCheckStatusEndpointTest.java
index 1d46933..4bc63ba 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/healthcheck/HealthCheckStatusEndpointTest.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/healthcheck/HealthCheckStatusEndpointTest.java
@@ -15,7 +15,9 @@
package com.googlesource.gerrit.plugins.healthcheck;
import static com.google.common.truth.Truth.assertThat;
+import static com.googlesource.gerrit.plugins.healthcheck.HealthCheckConfig.DEFAULT_CONFIG;
+import com.google.common.util.concurrent.MoreExecutors;
import com.google.gerrit.extensions.registration.DynamicSet;
import com.google.gerrit.extensions.restapi.Response;
import com.google.gerrit.metrics.DisabledMetricMaker;
@@ -24,30 +26,44 @@
import com.google.inject.Guice;
import com.google.inject.Injector;
import com.googlesource.gerrit.plugins.healthcheck.api.HealthCheckStatusEndpoint;
+import com.googlesource.gerrit.plugins.healthcheck.check.AbstractHealthCheck;
import com.googlesource.gerrit.plugins.healthcheck.check.HealthCheck;
+import com.googlesource.gerrit.plugins.healthcheck.check.MetricsHandler;
+import java.util.concurrent.Executors;
import javax.servlet.http.HttpServletResponse;
import org.junit.Test;
public class HealthCheckStatusEndpointTest {
- public static class TestHealthCheck implements HealthCheck {
- private final HealthCheck.Status checkResult;
- private final String checkName;
+ public static class TestHealthCheck extends AbstractHealthCheck {
+ private final HealthCheck.Result checkResult;
+ private final long sleep;
- public TestHealthCheck(String checkName, HealthCheck.Result result, long ts, long elapsed) {
- this.checkName = checkName;
- this.checkResult = new Status(result, ts, elapsed);
+ public TestHealthCheck(
+ HealthCheckConfig config, String checkName, HealthCheck.Result result, long sleep) {
+ super(
+ MoreExecutors.listeningDecorator(Executors.newFixedThreadPool(10)),
+ config,
+ checkName,
+ new MetricsHandler.Factory() {
+
+ @Override
+ public MetricsHandler create(String name) {
+ return new MetricsHandler(checkName, new DisabledMetricMaker());
+ }
+ });
+ this.checkResult = result;
+ this.sleep = sleep;
}
@Override
- public Status run() {
+ public Result doCheck() {
+ try {
+ Thread.sleep(sleep);
+ } catch (InterruptedException e) {
+ }
return checkResult;
}
-
- @Override
- public String name() {
- return checkName;
- }
}
@Test
@@ -58,7 +74,10 @@
@Override
protected void configure() {
DynamicSet.bind(binder(), HealthCheck.class)
- .toInstance(new TestHealthCheck("checkOk", HealthCheck.Result.PASSED, 1, 2));
+ .toInstance(
+ new TestHealthCheck(
+ DEFAULT_CONFIG, "checkOk", HealthCheck.Result.PASSED, 0));
+ bind(HealthCheckConfig.class).toInstance(DEFAULT_CONFIG);
DynamicSet.bind(binder(), MetricMaker.class).toInstance(new DisabledMetricMaker());
}
});
@@ -71,6 +90,29 @@
}
@Test
+ public void shouldReturnServerErrorWhenOneChecksTimesOut() throws Exception {
+ Injector injector =
+ testInjector(
+ new AbstractModule() {
+ @Override
+ protected void configure() {
+ HealthCheckConfig config =
+ new HealthCheckConfig("[healthcheck]\n" + "timeout = 20");
+ DynamicSet.bind(binder(), HealthCheck.class)
+ .toInstance(
+ new TestHealthCheck(config, "checkOk", HealthCheck.Result.PASSED, 30));
+ bind(HealthCheckConfig.class).toInstance(config);
+ }
+ });
+
+ HealthCheckStatusEndpoint healthCheckApi =
+ injector.getInstance(HealthCheckStatusEndpoint.class);
+ Response<?> resp = (Response<?>) healthCheckApi.apply(null);
+
+ assertThat(resp.statusCode()).isEqualTo(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
+ }
+
+ @Test
public void shouldReturnServerErrorWhenAtLeastOneCheckIsFailing() throws Exception {
Injector injector =
testInjector(
@@ -78,9 +120,13 @@
@Override
protected void configure() {
DynamicSet.bind(binder(), HealthCheck.class)
- .toInstance(new TestHealthCheck("checkOk", HealthCheck.Result.PASSED, 1, 2));
+ .toInstance(
+ new TestHealthCheck(
+ DEFAULT_CONFIG, "checkOk", HealthCheck.Result.PASSED, 0));
DynamicSet.bind(binder(), HealthCheck.class)
- .toInstance(new TestHealthCheck("checkKo", HealthCheck.Result.FAILED, 1, 2));
+ .toInstance(
+ new TestHealthCheck(
+ DEFAULT_CONFIG, "checkKo", HealthCheck.Result.FAILED, 0));
}
});
diff --git a/src/test/java/com/googlesource/gerrit/plugins/healthcheck/JGitHealthCheckTest.java b/src/test/java/com/googlesource/gerrit/plugins/healthcheck/JGitHealthCheckTest.java
index b9beb77..6e78dfe 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/healthcheck/JGitHealthCheckTest.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/healthcheck/JGitHealthCheckTest.java
@@ -15,6 +15,7 @@
package com.googlesource.gerrit.plugins.healthcheck;
import static com.google.common.truth.Truth.assertThat;
+import static com.googlesource.gerrit.plugins.healthcheck.HealthCheckConfig.DEFAULT_CONFIG;
import static org.eclipse.jgit.lib.RefUpdate.Result.NEW;
import com.google.common.util.concurrent.ListeningExecutorService;
@@ -70,7 +71,11 @@
public void shouldBeHealthyWhenJGitIsWorking() {
JGitHealthCheck reviewDbCheck =
new JGitHealthCheck(
- executor, getWorkingRepositoryManager(), allProjectsName, metricsHandlerFactory);
+ executor,
+ DEFAULT_CONFIG,
+ getWorkingRepositoryManager(),
+ allProjectsName,
+ metricsHandlerFactory);
assertThat(reviewDbCheck.run().result).isEqualTo(Result.PASSED);
}
@@ -78,7 +83,11 @@
public void shouldBeUnhealthyWhenJGitIsFailing() {
JGitHealthCheck jGitHealthCheck =
new JGitHealthCheck(
- executor, getFailingGitRepositoryManager(), allProjectsName, metricsHandlerFactory);
+ executor,
+ DEFAULT_CONFIG,
+ getFailingGitRepositoryManager(),
+ allProjectsName,
+ metricsHandlerFactory);
assertThat(jGitHealthCheck.run().result).isEqualTo(Result.FAILED);
}
diff --git a/src/test/java/com/googlesource/gerrit/plugins/healthcheck/ProjectsListHealthCheckTest.java b/src/test/java/com/googlesource/gerrit/plugins/healthcheck/ProjectsListHealthCheckTest.java
index 942af0c..e07c12c 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/healthcheck/ProjectsListHealthCheckTest.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/healthcheck/ProjectsListHealthCheckTest.java
@@ -15,6 +15,7 @@
package com.googlesource.gerrit.plugins.healthcheck;
import static com.google.common.truth.Truth.assertThat;
+import static com.googlesource.gerrit.plugins.healthcheck.HealthCheckConfig.DEFAULT_CONFIG;
import com.google.common.util.concurrent.ListeningExecutorService;
import com.google.gerrit.extensions.common.ProjectInfo;
@@ -23,7 +24,6 @@
import com.google.gerrit.server.project.ListProjects;
import com.google.inject.Guice;
import com.google.inject.Inject;
-import com.googlesource.gerrit.plugins.healthcheck.check.AbstractHealthCheck;
import com.googlesource.gerrit.plugins.healthcheck.check.HealthCheck.Result;
import com.googlesource.gerrit.plugins.healthcheck.check.MetricsHandler;
import com.googlesource.gerrit.plugins.healthcheck.check.ProjectsListHealthCheck;
@@ -43,21 +43,23 @@
@Inject private ListeningExecutorService executor;
@Before
- public void setUp() {
+ public void setUp() throws Exception {
Guice.createInjector(new HealthCheckModule()).injectMembers(this);
}
@Test
public void shouldBeHealthyWhenListProjectsWorks() {
ProjectsListHealthCheck jGitHealthCheck =
- new ProjectsListHealthCheck(executor, getWorkingProjectList(0), metricsHandlerFactory);
+ new ProjectsListHealthCheck(
+ executor, DEFAULT_CONFIG, getWorkingProjectList(0), metricsHandlerFactory);
assertThat(jGitHealthCheck.run().result).isEqualTo(Result.PASSED);
}
@Test
public void shouldBeUnhealthyWhenListProjectsIsFailing() {
ProjectsListHealthCheck jGitHealthCheck =
- new ProjectsListHealthCheck(executor, getFailingProjectList(), metricsHandlerFactory);
+ new ProjectsListHealthCheck(
+ executor, DEFAULT_CONFIG, getFailingProjectList(), metricsHandlerFactory);
assertThat(jGitHealthCheck.run().result).isEqualTo(Result.FAILED);
}
@@ -66,7 +68,8 @@
ProjectsListHealthCheck jGitHealthCheck =
new ProjectsListHealthCheck(
executor,
- getWorkingProjectList(AbstractHealthCheck.CHECK_TIMEOUT * 2),
+ DEFAULT_CONFIG,
+ getWorkingProjectList(DEFAULT_CONFIG.getTimeout() * 2),
metricsHandlerFactory);
assertThat(jGitHealthCheck.run().result).isEqualTo(Result.TIMEOUT);
}
diff --git a/src/test/java/com/googlesource/gerrit/plugins/healthcheck/ReviewDbHealthCheckTest.java b/src/test/java/com/googlesource/gerrit/plugins/healthcheck/ReviewDbHealthCheckTest.java
index 6c5e008..fc818b7 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/healthcheck/ReviewDbHealthCheckTest.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/healthcheck/ReviewDbHealthCheckTest.java
@@ -15,6 +15,7 @@
package com.googlesource.gerrit.plugins.healthcheck;
import static com.google.common.truth.Truth.assertThat;
+import static com.googlesource.gerrit.plugins.healthcheck.HealthCheckConfig.DEFAULT_CONFIG;
import com.google.common.util.concurrent.ListeningExecutorService;
import com.google.gerrit.lifecycle.LifecycleManager;
@@ -54,14 +55,16 @@
@Test
public void shouldBeHealthyWhenReviewDbIsWorking() {
ReviewDbHealthCheck reviewDbCheck =
- new ReviewDbHealthCheck(executor, workingReviewDbFactory, metricsHandlerFactory);
+ new ReviewDbHealthCheck(
+ executor, DEFAULT_CONFIG, workingReviewDbFactory, metricsHandlerFactory);
assertThat(reviewDbCheck.run().result).isEqualTo(HealthCheck.Result.PASSED);
}
@Test
public void shouldBeUnhealthyWhenReviewDbIsFailing() {
ReviewDbHealthCheck reviewDbCheck =
- new ReviewDbHealthCheck(executor, getFailingReviewDbProvider(), metricsHandlerFactory);
+ new ReviewDbHealthCheck(
+ executor, DEFAULT_CONFIG, getFailingReviewDbProvider(), metricsHandlerFactory);
assertThat(reviewDbCheck.run().result).isEqualTo(HealthCheck.Result.FAILED);
}