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;
}
}