diff options
Diffstat (limited to 'feature-healthcheck/src')
2 files changed, 23 insertions, 2 deletions
diff --git a/feature-healthcheck/src/main/java/org/onap/policy/drools/healthcheck/HealthCheckManager.java b/feature-healthcheck/src/main/java/org/onap/policy/drools/healthcheck/HealthCheckManager.java index b310168d..59d0bfbe 100644 --- a/feature-healthcheck/src/main/java/org/onap/policy/drools/healthcheck/HealthCheckManager.java +++ b/feature-healthcheck/src/main/java/org/onap/policy/drools/healthcheck/HealthCheckManager.java @@ -21,6 +21,7 @@ package org.onap.policy.drools.healthcheck; import com.google.common.base.Strings; +import java.lang.management.ManagementFactory; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -168,7 +169,7 @@ public class HealthCheckManager implements HealthCheck { } CompletableFuture<Report>[] reportFutures = futures(getControllers()); - return summary(engineHealthcheck(), reportFutures); + return log(summary(engineHealthcheck(), reportFutures)); } @Override @@ -178,7 +179,7 @@ public class HealthCheckManager implements HealthCheck { * it could be useful for troubleshooting. */ CompletableFuture<Report>[] reportFutures = futures(List.of(controller)); - return summary(engineHealthcheck(), reportFutures); + return log(summary(engineHealthcheck(), reportFutures)); } @Override @@ -470,6 +471,23 @@ public class HealthCheckManager implements HealthCheck { return false; } + protected boolean isTimeout(Reports reports) { + return + reports.getDetails() + .stream() + .anyMatch(report -> report.getCode() == TIMEOUT_CODE); + } + + protected Reports log(Reports reports) { + if (isTimeout(reports)) { + logger.warn("Healthcheck Timeout encountered"); + Arrays.stream(ManagementFactory.getThreadMXBean() + .dumpAllThreads(true, true, 100)) + .forEach(threadInfo -> logger.info("Healthcheck Timeout Encountered:\n{}", threadInfo)); + } + return reports; + } + // the following methods may be overridden by junit tests protected PolicyEngine getEngineManager() { diff --git a/feature-healthcheck/src/test/java/org/onap/policy/drools/healthcheck/HealthCheckManagerTest.java b/feature-healthcheck/src/test/java/org/onap/policy/drools/healthcheck/HealthCheckManagerTest.java index 73d70da9..20cfa9e0 100644 --- a/feature-healthcheck/src/test/java/org/onap/policy/drools/healthcheck/HealthCheckManagerTest.java +++ b/feature-healthcheck/src/test/java/org/onap/policy/drools/healthcheck/HealthCheckManagerTest.java @@ -238,6 +238,9 @@ public class HealthCheckManagerTest { /* with argument */ + reports = monitor.controllerHealthcheck(controller1); + logger.info("{}", reports); + reports = monitor.controllerHealthcheck(controller2); logger.info("{}", reports); |