This is an automated email from the ASF dual-hosted git repository.

btellier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git

commit 58322e72b45fe3270810315881b2bf38ed3b7861
Author: LanKhuat <[email protected]>
AuthorDate: Tue Mar 17 10:34:44 2020 +0700

    JAMES-3117 Add logs for HealthChecks for unhealthy/degraded status
---
 .../java/org/apache/james/backends/es/ElasticSearchHealthCheck.java   | 1 +
 .../java/org/apache/james/backends/rabbitmq/RabbitMQHealthCheck.java  | 2 +-
 .../org/apache/james/mailbox/events/EventDeadLettersHealthCheck.java  | 3 ++-
 .../src/main/java/org/apache/james/GuiceLifecycleHealthCheck.java     | 4 ++++
 .../jmap/api/projections/MessageFastViewProjectionHealthCheck.java    | 4 ++++
 .../main/java/org/apache/james/jpa/healthcheck/JPAHealthCheck.java    | 4 +++-
 6 files changed, 15 insertions(+), 3 deletions(-)

diff --git 
a/backends-common/elasticsearch/src/main/java/org/apache/james/backends/es/ElasticSearchHealthCheck.java
 
b/backends-common/elasticsearch/src/main/java/org/apache/james/backends/es/ElasticSearchHealthCheck.java
index 58cd813..6182f01 100644
--- 
a/backends-common/elasticsearch/src/main/java/org/apache/james/backends/es/ElasticSearchHealthCheck.java
+++ 
b/backends-common/elasticsearch/src/main/java/org/apache/james/backends/es/ElasticSearchHealthCheck.java
@@ -81,6 +81,7 @@ public class ElasticSearchHealthCheck implements HealthCheck {
             case YELLOW:
                 return Result.healthy(COMPONENT_NAME);
             case RED:
+                LOGGER.error("ElasticSearchCluster return RED status");
                 return Result.unhealthy(COMPONENT_NAME, 
response.getClusterName() + " status is RED");
             default:
                 throw new NotImplementedException("Un-handled ElasticSearch 
cluster status");
diff --git 
a/backends-common/rabbitmq/src/main/java/org/apache/james/backends/rabbitmq/RabbitMQHealthCheck.java
 
b/backends-common/rabbitmq/src/main/java/org/apache/james/backends/rabbitmq/RabbitMQHealthCheck.java
index 7946173..c50f99e 100644
--- 
a/backends-common/rabbitmq/src/main/java/org/apache/james/backends/rabbitmq/RabbitMQHealthCheck.java
+++ 
b/backends-common/rabbitmq/src/main/java/org/apache/james/backends/rabbitmq/RabbitMQHealthCheck.java
@@ -52,7 +52,7 @@ public class RabbitMQHealthCheck implements HealthCheck {
                 return Result.healthy(COMPONENT_NAME);
             } else {
                 String message = "The created connection was not opened";
-                LOGGER.error(message);
+                LOGGER.error("Unhealthy RabbitMQ instances: {}", message);
                 return Result.unhealthy(COMPONENT_NAME, message);
             }
         } catch (Exception e) {
diff --git 
a/mailbox/api/src/main/java/org/apache/james/mailbox/events/EventDeadLettersHealthCheck.java
 
b/mailbox/api/src/main/java/org/apache/james/mailbox/events/EventDeadLettersHealthCheck.java
index 2d20af9..50a0a8b 100644
--- 
a/mailbox/api/src/main/java/org/apache/james/mailbox/events/EventDeadLettersHealthCheck.java
+++ 
b/mailbox/api/src/main/java/org/apache/james/mailbox/events/EventDeadLettersHealthCheck.java
@@ -49,12 +49,13 @@ public class EventDeadLettersHealthCheck implements 
HealthCheck {
             boolean containEvents = eventDeadLetters.containEvents().block();
 
             if (containEvents) {
+                LOGGER.warn("EventDeadLetters is not empty");
                 return Result.degraded(COMPONENT_NAME, "EventDeadLetters 
contain events. This might indicate transient failure on mailbox event 
processing.");
             }
 
             return Result.healthy(COMPONENT_NAME);
         } catch (Exception e) {
-            LOGGER.error("Error checking EventDeadLettersHealthCheck", e);
+            LOGGER.error("EventDeadLettersHealthCheck threw an exception", e);
             return Result.unhealthy(COMPONENT_NAME, e.getMessage());
         }
     }
diff --git 
a/server/container/guice/guice-common/src/main/java/org/apache/james/GuiceLifecycleHealthCheck.java
 
b/server/container/guice/guice-common/src/main/java/org/apache/james/GuiceLifecycleHealthCheck.java
index b7a6fe4..2ee8e9e 100644
--- 
a/server/container/guice/guice-common/src/main/java/org/apache/james/GuiceLifecycleHealthCheck.java
+++ 
b/server/container/guice/guice-common/src/main/java/org/apache/james/GuiceLifecycleHealthCheck.java
@@ -24,8 +24,11 @@ import javax.inject.Inject;
 import org.apache.james.core.healthcheck.ComponentName;
 import org.apache.james.core.healthcheck.HealthCheck;
 import org.apache.james.core.healthcheck.Result;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class GuiceLifecycleHealthCheck implements HealthCheck {
+    private static final Logger LOGGER = 
LoggerFactory.getLogger(GuiceLifecycleHealthCheck.class);
     private final IsStartedProbe probe;
 
     @Inject
@@ -43,6 +46,7 @@ public class GuiceLifecycleHealthCheck implements HealthCheck 
{
         if (probe.isStarted()) {
             return Result.healthy(componentName());
         } else {
+            LOGGER.error("James server is not started");
             return Result.unhealthy(componentName(), "James server is not 
started.");
         }
     }
diff --git 
a/server/data/data-jmap/src/main/java/org/apache/james/jmap/api/projections/MessageFastViewProjectionHealthCheck.java
 
b/server/data/data-jmap/src/main/java/org/apache/james/jmap/api/projections/MessageFastViewProjectionHealthCheck.java
index de18851..b2877ad 100644
--- 
a/server/data/data-jmap/src/main/java/org/apache/james/jmap/api/projections/MessageFastViewProjectionHealthCheck.java
+++ 
b/server/data/data-jmap/src/main/java/org/apache/james/jmap/api/projections/MessageFastViewProjectionHealthCheck.java
@@ -29,9 +29,12 @@ import org.apache.james.core.healthcheck.HealthCheck;
 import org.apache.james.core.healthcheck.Result;
 import org.apache.james.metrics.api.Metric;
 import org.apache.james.metrics.api.MetricFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class MessageFastViewProjectionHealthCheck implements HealthCheck {
 
+    private static final Logger LOGGER = 
LoggerFactory.getLogger(MessageFastViewProjectionHealthCheck.class);
     private static final ComponentName COMPONENT_NAME = new 
ComponentName("MessageFastViewProjection");
     private static final double MAXIMUM_MISS_PERCENTAGE_ACCEPTED = 10;
 
@@ -64,6 +67,7 @@ public class MessageFastViewProjectionHealthCheck implements 
HealthCheck {
         long totalCount = hitCount + missCount;
         double missCountPercentage = missCount * 100.0d / totalCount;
         if (missCountPercentage > MAXIMUM_MISS_PERCENTAGE_ACCEPTED) {
+            LOGGER.warn("MessageFastViewProjection missCountPercentage 
exceeded the threshold");
             return Result.degraded(COMPONENT_NAME,
                 String.format("retrieveMissCount percentage %s%% (%d/%d) is 
higher than the threshold %s%%",
                     missCountPercentage, missCount, totalCount, 
MAXIMUM_MISS_PERCENTAGE_ACCEPTED));
diff --git 
a/server/data/data-jpa/src/main/java/org/apache/james/jpa/healthcheck/JPAHealthCheck.java
 
b/server/data/data-jpa/src/main/java/org/apache/james/jpa/healthcheck/JPAHealthCheck.java
index 2447427..81bc728 100644
--- 
a/server/data/data-jpa/src/main/java/org/apache/james/jpa/healthcheck/JPAHealthCheck.java
+++ 
b/server/data/data-jpa/src/main/java/org/apache/james/jpa/healthcheck/JPAHealthCheck.java
@@ -55,9 +55,11 @@ public class JPAHealthCheck implements HealthCheck {
                 return healthy(componentName());
             }
         } catch (IllegalStateException stateException) {
-            LOGGER.debug("EntityManagerFactory or EntityManager thrown an 
IllegalStateException, the connection is unhealthy");
+            LOGGER.debug("EntityManagerFactory or EntityManager threw an 
IllegalStateException, the connection is unhealthy");
             return unhealthy(componentName(), stateException.getMessage());
         }
+
+        LOGGER.error("EntityManager is not open, the connection is unhealthy");
         return unhealthy(componentName(), "entityManager is not open");
     }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to