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

mpochatkin pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/ignite-3.git


The following commit(s) were added to refs/heads/main by this push:
     new c29fcc94125 IGNITE-27654 Add debug logs to health checks (#7470)
c29fcc94125 is described below

commit c29fcc9412524dbd18453f190d414ae0ed95c713
Author: Vadim Pakhnushev <[email protected]>
AuthorDate: Thu Jan 29 15:19:30 2026 +0300

    IGNITE-27654 Add debug logs to health checks (#7470)
---
 .../rest/health/NodeLivenessIndicator.java         |  5 ++++
 .../rest/health/NodeReadinessIndicator.java        | 28 +++++++++++++++++++---
 2 files changed, 30 insertions(+), 3 deletions(-)

diff --git 
a/modules/rest/src/main/java/org/apache/ignite/internal/rest/health/NodeLivenessIndicator.java
 
b/modules/rest/src/main/java/org/apache/ignite/internal/rest/health/NodeLivenessIndicator.java
index 3211a2b79bc..bb5390d8c49 100644
--- 
a/modules/rest/src/main/java/org/apache/ignite/internal/rest/health/NodeLivenessIndicator.java
+++ 
b/modules/rest/src/main/java/org/apache/ignite/internal/rest/health/NodeLivenessIndicator.java
@@ -23,6 +23,8 @@ import 
io.micronaut.management.health.indicator.HealthIndicator;
 import io.micronaut.management.health.indicator.HealthResult;
 import io.micronaut.management.health.indicator.annotation.Liveness;
 import jakarta.inject.Singleton;
+import org.apache.ignite.internal.logger.IgniteLogger;
+import org.apache.ignite.internal.logger.Loggers;
 import org.reactivestreams.Publisher;
 import reactor.core.publisher.Flux;
 
@@ -32,8 +34,11 @@ import reactor.core.publisher.Flux;
 @Singleton
 @Liveness
 public class NodeLivenessIndicator implements HealthIndicator {
+    private static final IgniteLogger LOG = 
Loggers.forClass(HealthIndicator.class);
+
     @Override
     public Publisher<HealthResult> getResult() {
+        LOG.debug("Liveness check is UP.");
         return Flux.just(HealthResult.builder("node", UP).build());
     }
 }
diff --git 
a/modules/rest/src/main/java/org/apache/ignite/internal/rest/health/NodeReadinessIndicator.java
 
b/modules/rest/src/main/java/org/apache/ignite/internal/rest/health/NodeReadinessIndicator.java
index d7cc719a743..3ff456ae70c 100644
--- 
a/modules/rest/src/main/java/org/apache/ignite/internal/rest/health/NodeReadinessIndicator.java
+++ 
b/modules/rest/src/main/java/org/apache/ignite/internal/rest/health/NodeReadinessIndicator.java
@@ -19,13 +19,16 @@ package org.apache.ignite.internal.rest.health;
 
 import static io.micronaut.health.HealthStatus.DOWN;
 import static io.micronaut.health.HealthStatus.UP;
-import static 
org.apache.ignite.internal.util.CompletableFutures.isCompletedSuccessfully;
 
 import io.micronaut.health.HealthStatus;
 import io.micronaut.management.health.indicator.HealthIndicator;
 import io.micronaut.management.health.indicator.HealthResult;
 import io.micronaut.management.health.indicator.annotation.Readiness;
 import jakarta.inject.Singleton;
+import java.util.concurrent.CompletableFuture;
+import org.apache.ignite.Ignite;
+import org.apache.ignite.internal.logger.IgniteLogger;
+import org.apache.ignite.internal.logger.Loggers;
 import org.apache.ignite.internal.rest.cluster.JoinFutureProvider;
 import org.reactivestreams.Publisher;
 import reactor.core.publisher.Flux;
@@ -36,6 +39,8 @@ import reactor.core.publisher.Flux;
 @Singleton
 @Readiness
 public class NodeReadinessIndicator implements HealthIndicator {
+    private static final IgniteLogger LOG = 
Loggers.forClass(HealthIndicator.class);
+
     private final JoinFutureProvider joinFutureProvider;
 
     public NodeReadinessIndicator(JoinFutureProvider joinFutureProvider) {
@@ -44,7 +49,24 @@ public class NodeReadinessIndicator implements 
HealthIndicator {
 
     @Override
     public Publisher<HealthResult> getResult() {
-        HealthStatus healthStatus = 
isCompletedSuccessfully(joinFutureProvider.joinFuture()) ? UP : DOWN;
-        return Flux.just(HealthResult.builder("node", healthStatus).build());
+        return Flux.just(HealthResult.builder("node", 
getHealthStatus()).build());
+    }
+
+    private HealthStatus getHealthStatus() {
+        CompletableFuture<Ignite> future = joinFutureProvider.joinFuture();
+        if (future.isDone()) {
+            if (future.isCancelled()) {
+                LOG.debug("Readiness check is DOWN. Join process was 
cancelled", future.handle((res, ex) -> ex).join());
+                return DOWN;
+            }
+            if (future.isCompletedExceptionally()) {
+                LOG.debug("Readiness check is DOWN. Node has not joined the 
cluster", future.handle((res, ex) -> ex).join());
+                return DOWN;
+            }
+            LOG.debug("Readiness check is UP.");
+            return UP;
+        }
+        LOG.debug("Readiness check is DOWN. Node has not yet finished joining 
the cluster.");
+        return DOWN;
     }
 }

Reply via email to