From 07cb5a3989e8e9b015c5777052298246b7c729e8 Mon Sep 17 00:00:00 2001 From: Chris Laprun Date: Thu, 13 Oct 2022 10:08:45 +0200 Subject: [PATCH] feat: improve logging --- .../source/informer/InformerManager.java | 20 +++++++++++++++---- .../source/informer/InformerWrapper.java | 19 ++++++++++++------ 2 files changed, 29 insertions(+), 10 deletions(-) diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/InformerManager.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/InformerManager.java index 09e262d3cf..f5f52d1c0e 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/InformerManager.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/InformerManager.java @@ -17,6 +17,7 @@ import io.fabric8.kubernetes.client.dsl.Resource; import io.fabric8.kubernetes.client.informers.ResourceEventHandler; import io.javaoperatorsdk.operator.OperatorException; +import io.javaoperatorsdk.operator.ReconcilerUtils; import io.javaoperatorsdk.operator.api.config.Cloner; import io.javaoperatorsdk.operator.api.config.ConfigurationServiceProvider; import io.javaoperatorsdk.operator.api.config.ResourceConfiguration; @@ -104,14 +105,15 @@ private InformerWrapper createEventSource( @Override public void stop() { - for (InformerWrapper source : sources.values()) { + log.info("Stopping {}", this); + sources.forEach((ns, source) -> { try { - log.info("Stopping informer {} -> {}", this, source); + log.debug("Stopping informer for namespace: {} -> {}", ns, source); source.stop(); } catch (Exception e) { - log.warn("Error stopping informer {} -> {}", this, source, e); + log.warn("Error stopping informer for namespace: {} -> {}", ns, source, e); } - } + }); } @Override @@ -167,4 +169,14 @@ public List byIndex(String indexName, String indexKey) { return sources.values().stream().map(s -> s.byIndex(indexName, indexKey)) .flatMap(List::stream).collect(Collectors.toList()); } + + @Override + public String toString() { + final var selector = configuration.getLabelSelector(); + return "InformerManager [" + + ReconcilerUtils.getResourceTypeNameWithVersion(configuration.getResourceClass()) + + "] watching: " + + configuration.getEffectiveNamespaces() + + (selector != null ? " selector: " + selector : ""); + } } 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 ba3b5c5ba2..12ec40c03d 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 @@ -38,16 +38,18 @@ public void start() throws OperatorException { try { informer.run(); } catch (Exception e) { - final var apiTypeClass = informer.getApiTypeClass(); - final var fullResourceName = HasMetadata.getFullResourceName(apiTypeClass); - final var version = HasMetadata.getVersion(apiTypeClass); - log.error("Couldn't start informer for " + fullResourceName + "/" + version + " resources", - e); - ReconcilerUtils.handleKubernetesClientException(e, fullResourceName); + log.error("Couldn't start informer for " + versionedFullResourceName() + " resources", e); + ReconcilerUtils.handleKubernetesClientException(e, + HasMetadata.getFullResourceName(informer.getApiTypeClass())); throw e; } } + private String versionedFullResourceName() { + final var apiTypeClass = informer.getApiTypeClass(); + return ReconcilerUtils.getResourceTypeNameWithVersion(apiTypeClass); + } + @Override public void stop() throws OperatorException { informer.stop(); @@ -92,4 +94,9 @@ public void addIndexers(Map>> indexers) { public List byIndex(String indexName, String indexKey) { return informer.getIndexer().byIndex(indexName, indexKey); } + + @Override + public String toString() { + return "InformerWrapper [" + versionedFullResourceName() + "] (" + informer + ')'; + } }