Skip to content

Commit ae2724f

Browse files
authored
feat: improve logging (#1542)
1 parent 1fecdf9 commit ae2724f

File tree

2 files changed

+29
-10
lines changed

2 files changed

+29
-10
lines changed

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/InformerManager.java

+16-4
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import io.fabric8.kubernetes.client.dsl.Resource;
1818
import io.fabric8.kubernetes.client.informers.ResourceEventHandler;
1919
import io.javaoperatorsdk.operator.OperatorException;
20+
import io.javaoperatorsdk.operator.ReconcilerUtils;
2021
import io.javaoperatorsdk.operator.api.config.Cloner;
2122
import io.javaoperatorsdk.operator.api.config.ConfigurationServiceProvider;
2223
import io.javaoperatorsdk.operator.api.config.ResourceConfiguration;
@@ -104,14 +105,15 @@ private InformerWrapper<T> createEventSource(
104105

105106
@Override
106107
public void stop() {
107-
for (InformerWrapper<T> source : sources.values()) {
108+
log.info("Stopping {}", this);
109+
sources.forEach((ns, source) -> {
108110
try {
109-
log.info("Stopping informer {} -> {}", this, source);
111+
log.debug("Stopping informer for namespace: {} -> {}", ns, source);
110112
source.stop();
111113
} catch (Exception e) {
112-
log.warn("Error stopping informer {} -> {}", this, source, e);
114+
log.warn("Error stopping informer for namespace: {} -> {}", ns, source, e);
113115
}
114-
}
116+
});
115117
}
116118

117119
@Override
@@ -167,4 +169,14 @@ public List<T> byIndex(String indexName, String indexKey) {
167169
return sources.values().stream().map(s -> s.byIndex(indexName, indexKey))
168170
.flatMap(List::stream).collect(Collectors.toList());
169171
}
172+
173+
@Override
174+
public String toString() {
175+
final var selector = configuration.getLabelSelector();
176+
return "InformerManager ["
177+
+ ReconcilerUtils.getResourceTypeNameWithVersion(configuration.getResourceClass())
178+
+ "] watching: "
179+
+ configuration.getEffectiveNamespaces()
180+
+ (selector != null ? " selector: " + selector : "");
181+
}
170182
}

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/InformerWrapper.java

+13-6
Original file line numberDiff line numberDiff line change
@@ -38,16 +38,18 @@ public void start() throws OperatorException {
3838
try {
3939
informer.run();
4040
} catch (Exception e) {
41-
final var apiTypeClass = informer.getApiTypeClass();
42-
final var fullResourceName = HasMetadata.getFullResourceName(apiTypeClass);
43-
final var version = HasMetadata.getVersion(apiTypeClass);
44-
log.error("Couldn't start informer for " + fullResourceName + "/" + version + " resources",
45-
e);
46-
ReconcilerUtils.handleKubernetesClientException(e, fullResourceName);
41+
log.error("Couldn't start informer for " + versionedFullResourceName() + " resources", e);
42+
ReconcilerUtils.handleKubernetesClientException(e,
43+
HasMetadata.getFullResourceName(informer.getApiTypeClass()));
4744
throw e;
4845
}
4946
}
5047

48+
private String versionedFullResourceName() {
49+
final var apiTypeClass = informer.getApiTypeClass();
50+
return ReconcilerUtils.getResourceTypeNameWithVersion(apiTypeClass);
51+
}
52+
5153
@Override
5254
public void stop() throws OperatorException {
5355
informer.stop();
@@ -92,4 +94,9 @@ public void addIndexers(Map<String, Function<T, List<String>>> indexers) {
9294
public List<T> byIndex(String indexName, String indexKey) {
9395
return informer.getIndexer().byIndex(indexName, indexKey);
9496
}
97+
98+
@Override
99+
public String toString() {
100+
return "InformerWrapper [" + versionedFullResourceName() + "] (" + informer + ')';
101+
}
95102
}

0 commit comments

Comments
 (0)