From b1e5edd2b04bfeb36bf0451ec205928d88e0be81 Mon Sep 17 00:00:00 2001 From: csviri Date: Thu, 26 Jan 2023 14:25:11 +0100 Subject: [PATCH] improve: logging for informer health check --- .../operator/health/InformerHealthIndicator.java | 4 +--- .../event/source/informer/InformerWrapper.java | 11 +++++++++++ 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/health/InformerHealthIndicator.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/health/InformerHealthIndicator.java index afd8b61bed..4cdb96d8f8 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/health/InformerHealthIndicator.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/health/InformerHealthIndicator.java @@ -9,9 +9,7 @@ public interface InformerHealthIndicator extends EventSourceHealthIndicator { boolean isRunning(); @Override - default Status getStatus() { - return isRunning() && hasSynced() && isWatching() ? Status.HEALTHY : Status.UNHEALTHY; - } + Status getStatus(); String getTargetNamespace(); } diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/InformerWrapper.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/InformerWrapper.java index a872e9daa3..26ce893fba 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/InformerWrapper.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/InformerWrapper.java @@ -22,6 +22,7 @@ import io.javaoperatorsdk.operator.ReconcilerUtils; import io.javaoperatorsdk.operator.api.config.ConfigurationServiceProvider; import io.javaoperatorsdk.operator.health.InformerHealthIndicator; +import io.javaoperatorsdk.operator.health.Status; import io.javaoperatorsdk.operator.processing.LifecycleAware; import io.javaoperatorsdk.operator.processing.event.ResourceID; import io.javaoperatorsdk.operator.processing.event.source.IndexerResourceCache; @@ -175,6 +176,16 @@ public boolean isRunning() { return informer.isRunning(); } + @Override + public Status getStatus() { + var status = isRunning() && hasSynced() && isWatching() ? Status.HEALTHY : Status.UNHEALTHY; + log.debug( + "Informer status: {} for for type: {}, namespace: {}, details[ is running: {}, has synced: {}, is watching: {} ]", + status, informer.getApiTypeClass().getSimpleName(), namespaceIdentifier, isRunning(), + hasSynced(), isWatching()); + return status; + } + @Override public String getTargetNamespace() { return namespaceIdentifier;