Skip to content

Commit 1d674cb

Browse files
committed
wip
Signed-off-by: Attila Mészáros <a_meszaros@apple.com>
1 parent 5165f39 commit 1d674cb

File tree

13 files changed

+90
-89
lines changed

13 files changed

+90
-89
lines changed

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/MDCUtils.java

Lines changed: 55 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -35,38 +35,73 @@ public class MDCUtils {
3535
private static final boolean enabled =
3636
Utils.getBooleanFromSystemPropsOrDefault(Utils.USE_MDC_ENV_KEY, true);
3737

38-
private static final String INFORMER_EVENT_RESOURCE_NAME = "informer.event.resource.name";
39-
private static final String INFORMER_EVENT_RESOURCE_NAMESPACE =
40-
"informer.event.resource.namespace";
41-
private static final String INFORMER_EVENT_RESOURCE_KIND = "informer.event.resource.kind";
42-
private static final String INFORMER_EVENT_RESOURCE_VERSION =
43-
"informer.event.resource.resourceVersion";
44-
private static final String INFORMER_EVENT_ACTION = "informer.event.action";
45-
private static final String INFORMER_NAME = "informer.name";
38+
private static final String EVENT_RESOURCE_NAME = "eventsource.event.resource.name";
39+
private static final String EVENT_RESOURCE_UID = "eventsource.event.resource.uid";
40+
private static final String EVENT_RESOURCE_NAMESPACE =
41+
"eventsource.event.resource.namespace";
42+
private static final String EVENT_RESOURCE_KIND = "eventsource.event.resource.kind";
43+
private static final String EVENT_RESOURCE_VERSION =
44+
"eventsource.event.resource.resourceVersion";
45+
private static final String EVENT_ACTION = "eventsource.event.action";
46+
private static final String EVENT_SOURCE_NAME = "eventsource.name";
4647

4748
public static void addInformerEventInfo(
4849
HasMetadata resource, ResourceAction action, String eventSourceName) {
4950
if (enabled) {
50-
MDC.put(INFORMER_EVENT_RESOURCE_NAME, resource.getMetadata().getName());
51-
MDC.put(INFORMER_EVENT_RESOURCE_NAMESPACE, resource.getMetadata().getNamespace());
52-
MDC.put(INFORMER_EVENT_RESOURCE_KIND, HasMetadata.getKind(resource.getClass()));
53-
MDC.put(INFORMER_EVENT_RESOURCE_VERSION, resource.getMetadata().getNamespace());
54-
MDC.put(INFORMER_EVENT_ACTION, action.name());
55-
MDC.put(INFORMER_NAME, eventSourceName);
51+
MDC.put(EVENT_RESOURCE_NAME, resource.getMetadata().getName());
52+
MDC.put(EVENT_RESOURCE_NAMESPACE, resource.getMetadata().getNamespace());
53+
MDC.put(EVENT_RESOURCE_KIND, HasMetadata.getKind(resource.getClass()));
54+
MDC.put(EVENT_RESOURCE_VERSION, resource.getMetadata().getResourceVersion());
55+
MDC.put(EVENT_RESOURCE_UID, resource.getMetadata().getUid());
56+
MDC.put(EVENT_ACTION, action == null ? null : action.name());
57+
MDC.put(EVENT_SOURCE_NAME, eventSourceName);
5658
}
5759
}
5860

5961
public static void removeInformerEventInfo() {
6062
if (enabled) {
61-
MDC.remove(INFORMER_EVENT_RESOURCE_NAME);
62-
MDC.remove(INFORMER_EVENT_RESOURCE_NAMESPACE);
63-
MDC.remove(INFORMER_EVENT_RESOURCE_KIND);
64-
MDC.remove(INFORMER_EVENT_RESOURCE_VERSION);
65-
MDC.remove(INFORMER_EVENT_ACTION);
66-
MDC.remove(INFORMER_NAME);
63+
MDC.remove(EVENT_RESOURCE_NAME);
64+
MDC.remove(EVENT_RESOURCE_NAMESPACE);
65+
MDC.remove(EVENT_RESOURCE_KIND);
66+
MDC.remove(EVENT_RESOURCE_VERSION);
67+
MDC.remove(EVENT_RESOURCE_UID);
68+
MDC.remove(EVENT_ACTION);
69+
MDC.remove(EVENT_SOURCE_NAME);
6770
}
6871
}
6972

73+
public static void withMDCForEvent(HasMetadata resource, Runnable runnable, String nameSourceName) {
74+
withMDCForEvent(resource,null,runnable,nameSourceName);
75+
}
76+
77+
public static void withMDCForEvent(HasMetadata resource, ResourceAction action, Runnable runnable, String nameSourceName) {
78+
try {
79+
MDCUtils.addInformerEventInfo(resource, action, nameSourceName);
80+
runnable.run();
81+
} finally {
82+
MDCUtils.removeInformerEventInfo();
83+
}
84+
}
85+
86+
public static void withMDCForResourceID(ResourceID resourceID,Runnable runnable) {
87+
try {
88+
MDCUtils.addResourceIDInfo(resourceID);
89+
runnable.run();
90+
} finally {
91+
MDCUtils.removeResourceIDInfo();
92+
}
93+
}
94+
95+
public static void withMDCForPrimary(HasMetadata primary,Runnable runnable) {
96+
try {
97+
MDCUtils.addResourceInfo(primary);
98+
runnable.run();
99+
} finally {
100+
MDCUtils.removeResourceInfo();
101+
}
102+
}
103+
104+
70105
public static void addResourceIDInfo(ResourceID resourceID) {
71106
if (enabled) {
72107
MDC.put(NAME, resourceID.getName());

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/controller/ControllerEventSource.java

Lines changed: 6 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -35,22 +35,21 @@
3535
import io.javaoperatorsdk.operator.processing.event.source.informer.TemporaryResourceCache.EventHandling;
3636

3737
import static io.javaoperatorsdk.operator.ReconcilerUtilsInternal.handleKubernetesClientException;
38-
import static io.javaoperatorsdk.operator.processing.KubernetesResourceUtils.getVersion;
3938
import static io.javaoperatorsdk.operator.processing.event.source.controller.InternalEventFilters.*;
4039

4140
public class ControllerEventSource<T extends HasMetadata>
4241
extends ManagedInformerEventSource<T, T, ControllerConfiguration<T>>
4342
implements ResourceEventHandler<T> {
4443

4544
private static final Logger log = LoggerFactory.getLogger(ControllerEventSource.class);
46-
public static final String NAME = "ControllerResourceEventSource";
45+
public static final String ControllerResourceEventSource = "ControllerResourceEventSource";
4746

4847
private final Controller<T> controller;
4948

5049
@SuppressWarnings({"unchecked", "rawtypes"})
5150
public ControllerEventSource(Controller<T> controller) {
5251
super(
53-
NAME,
52+
ControllerResourceEventSource,
5453
controller.getCRClient(),
5554
controller.getConfiguration(),
5655
controller.getConfiguration().getInformerConfig().isComparableResourceVersions());
@@ -88,12 +87,7 @@ protected synchronized void handleEvent(
8887
ResourceAction action, T resource, T oldResource, Boolean deletedFinalStateUnknown) {
8988
try {
9089
if (log.isDebugEnabled()) {
91-
log.debug(
92-
"Event received for resource: {} version: {} uuid: {} action: {}",
93-
ResourceID.fromResource(resource),
94-
getVersion(resource),
95-
resource.getMetadata().getUid(),
96-
action);
90+
log.debug("Event received for with action: {}", action);
9791
log.trace("Event Old resource: {},\n new resource: {}", oldResource, resource);
9892
}
9993
MDCUtils.addResourceInfo(resource);
@@ -112,7 +106,7 @@ protected synchronized void handleEvent(
112106
.handleEvent(new ResourceEvent(action, ResourceID.fromResource(resource), resource));
113107
}
114108
} else {
115-
log.debug("Skipping event handling resource {}", ResourceID.fromResource(resource));
109+
log.debug("Skipping event handling for resource");
116110
}
117111
} finally {
118112
MDCUtils.removeResourceInfo();
@@ -156,11 +150,7 @@ private void handleOnAddOrUpdate(
156150
if (handling == EventHandling.NEW) {
157151
handleEvent(action, newCustomResource, oldCustomResource, null);
158152
} else if (log.isDebugEnabled()) {
159-
log.debug(
160-
"{} event propagation for action: {} resource id: {} ",
161-
handling,
162-
action,
163-
ResourceID.fromResource(newCustomResource));
153+
log.debug("{} event propagation for action: {}", handling, action);
164154
}
165155
}
166156

@@ -196,6 +186,6 @@ public void setOnDeleteFilter(OnDeleteFilter<? super T> onDeleteFilter) {
196186

197187
@Override
198188
public String name() {
199-
return NAME;
189+
return ControllerResourceEventSource;
200190
}
201191
}

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

Lines changed: 11 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -105,11 +105,7 @@ public void onAdd(R newResource) {
105105
ResourceAction.ADDED,
106106
() -> {
107107
if (log.isDebugEnabled()) {
108-
log.debug(
109-
"On add event received for resource id: {} type: {} version: {}",
110-
ResourceID.fromResource(newResource),
111-
resourceType().getSimpleName(),
112-
newResource.getMetadata().getResourceVersion());
108+
log.debug("On add event received");
113109
}
114110
onAddOrUpdate(ResourceAction.ADDED, newResource, null);
115111
});
@@ -123,32 +119,27 @@ public void onUpdate(R oldObject, R newObject) {
123119
() -> {
124120
if (log.isDebugEnabled()) {
125121
log.debug(
126-
"On update event received for resource id: {} type: {} version: {} old version: {}"
127-
+ " ",
128-
ResourceID.fromResource(newObject),
129-
resourceType().getSimpleName(),
130-
newObject.getMetadata().getResourceVersion(),
122+
"On update event received. Old version: {}",
131123
oldObject.getMetadata().getResourceVersion());
132124
}
133125
onAddOrUpdate(ResourceAction.UPDATED, newObject, oldObject);
134126
});
135127
}
136128

137129
@Override
138-
public synchronized void onDelete(R resource, boolean b) {
130+
public synchronized void onDelete(R resource, boolean deletedFinalStateUnknown) {
139131
withMDC(
140132
resource,
141133
ResourceAction.DELETED,
142134
() -> {
143135
if (log.isDebugEnabled()) {
144136
log.debug(
145-
"On delete event received for resource id: {} type: {}",
146-
ResourceID.fromResource(resource),
147-
resourceType().getSimpleName());
137+
"On delete event received for resource id. deletedFinalStateUnknown: {}",
138+
deletedFinalStateUnknown);
148139
}
149140
primaryToSecondaryIndex.onDelete(resource);
150-
temporaryResourceCache.onDeleteEvent(resource, b);
151-
if (acceptedByDeleteFilters(resource, b)) {
141+
temporaryResourceCache.onDeleteEvent(resource, deletedFinalStateUnknown);
142+
if (acceptedByDeleteFilters(resource, deletedFinalStateUnknown)) {
152143
propagateEvent(resource);
153144
}
154145
});
@@ -176,16 +167,11 @@ private synchronized void onAddOrUpdate(ResourceAction action, R newObject, R ol
176167

177168
if (eventHandling != EventHandling.NEW) {
178169
log.debug(
179-
"{} event propagation for {}. Resource ID: {}",
180-
eventHandling == EventHandling.DEFER ? "Deferring" : "Skipping",
181-
action,
182-
ResourceID.fromResource(newObject));
170+
"{} event propagation", eventHandling == EventHandling.DEFER ? "Deferring" : "Skipping");
183171
} else if (eventAcceptedByFilter(action, newObject, oldObject)) {
184172
log.debug(
185-
"Propagating event for {}, resource with same version not result of a reconciliation."
186-
+ " Resource ID: {}",
187-
action,
188-
resourceID);
173+
"Propagating event for {}, resource with same version not result of a reconciliation.",
174+
action);
189175
propagateEvent(newObject);
190176
} else {
191177
log.debug("Event filtered out for operation: {}, resourceID: {}", action, resourceID);
@@ -227,9 +213,8 @@ public Set<R> getSecondaryResources(P primary) {
227213
} else {
228214
secondaryIDs = primaryToSecondaryMapper.toSecondaryResourceIDs(primary);
229215
log.debug(
230-
"Using PrimaryToSecondaryMapper to find secondary resources for primary: {}. Found"
216+
"Using PrimaryToSecondaryMapper to find secondary resources for primary. Found"
231217
+ " secondary ids: {} ",
232-
primary,
233218
secondaryIDs);
234219
}
235220
return secondaryIDs.stream()

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

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -94,12 +94,12 @@ public void changeNamespaces(Set<String> namespaces) {
9494
@SuppressWarnings("unchecked")
9595
public R eventFilteringUpdateAndCacheResource(R resourceToUpdate, UnaryOperator<R> updateMethod) {
9696
ResourceID id = ResourceID.fromResource(resourceToUpdate);
97-
log.debug("Starting event filter and cache update for: {}", id);
97+
log.debug("Starting event filter and cache update");
9898
R updatedResource = null;
9999
try {
100100
temporaryResourceCache.startEventFilteringModify(id);
101101
updatedResource = updateMethod.apply(resourceToUpdate);
102-
log.debug("Resource update successful: {}", id);
102+
log.debug("Resource update successful");
103103
handleRecentResourceUpdate(id, updatedResource, resourceToUpdate);
104104
return updatedResource;
105105
} finally {
@@ -142,7 +142,7 @@ public R eventFilteringUpdateAndCacheResource(R resourceToUpdate, UnaryOperator<
142142
? ((ResourceDeleteEvent) r).isDeletedFinalStateUnknown()
143143
: null);
144144
},
145-
() -> log.debug("No new event present after the filtering update; id: {}", id));
145+
() -> log.debug("No new event present after the filtering update"));
146146
}
147147
}
148148

@@ -269,11 +269,6 @@ public void setControllerConfiguration(ControllerConfiguration<R> controllerConf
269269
}
270270

271271
protected void withMDC(R resource, ResourceAction action, Runnable runnable) {
272-
try {
273-
MDCUtils.addInformerEventInfo(resource, action, name());
274-
runnable.run();
275-
} finally {
276-
MDCUtils.removeInformerEventInfo();
277-
}
272+
MDCUtils.withMDCForEvent(resource,action,runnable, name());
278273
}
279274
}

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

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -127,10 +127,7 @@ private synchronized EventHandling onEvent(
127127

128128
var resourceId = ResourceID.fromResource(resource);
129129
if (log.isDebugEnabled()) {
130-
log.debug(
131-
"Processing event for resource id: {} version: {} ",
132-
resourceId,
133-
resource.getMetadata().getResourceVersion());
130+
log.debug("Processing event for resource");
134131
}
135132
if (!unknownState) {
136133
log.debug("Setting latest resource version to: {}", latestResourceVersion);
@@ -142,8 +139,7 @@ private synchronized EventHandling onEvent(
142139
int comp = ReconcilerUtilsInternal.compareResourceVersions(resource, cached);
143140
if (comp >= 0 || unknownState) {
144141
log.debug(
145-
"Removing resource from temp cache. id: {} comparison: {} unknown state: {}",
146-
resourceId,
142+
"Removing resource from temp cache. comparison: {} unknown state: {}",
147143
comp,
148144
unknownState);
149145
cache.remove(resourceId);

operator-framework-core/src/test/resources/log4j2.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
<Configuration status="WARN">
2020
<Appenders>
2121
<Console name="Console" target="SYSTEM_OUT">
22-
<PatternLayout pattern="%d %threadId %-30c{1.} [%-5level] %msg%n%throwable "/>
22+
<PatternLayout pattern="%d %threadId %-30c{1.} [%-5level] %msg p:[%X{resource.name}:%X{resource.namespace}:%X{resource.resourceVersion}] e:[%X{informer.name}:%X{informer.event.action}:%X{informer.event.resource.name}:%X{informer.event.resource.namespace}:%X{informer.event.resource.resourceVersion}] %n%throwable"/>
2323
</Console>
2424
</Appenders>
2525
<Loggers>

operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/informerrelatedbehavior/InformerRelatedBehaviorITS.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ private void assertInformerNotWatchingForAdditionalNamespace(Operator operator)
158158
InformerHealthIndicator controllerHealthIndicator =
159159
(InformerHealthIndicator)
160160
unhealthyEventSources
161-
.get(ControllerEventSource.NAME)
161+
.get(ControllerEventSource.ControllerResourceEventSource)
162162
.informerHealthIndicators()
163163
.get(additionalNamespace);
164164
assertThat(controllerHealthIndicator).isNotNull();
@@ -306,14 +306,14 @@ private void assertRuntimeInfoNoCRPermission(Operator operator) {
306306
.unhealthyEventSources()
307307
.get(INFORMER_RELATED_BEHAVIOR_TEST_RECONCILER);
308308
assertThat(unhealthyEventSources).isNotEmpty();
309-
assertThat(unhealthyEventSources.get(ControllerEventSource.NAME)).isNotNull();
309+
assertThat(unhealthyEventSources.get(ControllerEventSource.ControllerResourceEventSource)).isNotNull();
310310
var informerHealthIndicators =
311311
operator
312312
.getRuntimeInfo()
313313
.unhealthyInformerWrappingEventSourceHealthIndicator()
314314
.get(INFORMER_RELATED_BEHAVIOR_TEST_RECONCILER);
315315
assertThat(informerHealthIndicators).isNotEmpty();
316-
assertThat(informerHealthIndicators.get(ControllerEventSource.NAME).informerHealthIndicators())
316+
assertThat(informerHealthIndicators.get(ControllerEventSource.ControllerResourceEventSource).informerHealthIndicators())
317317
.hasSize(1);
318318
}
319319

operator-framework/src/test/resources/log4j2.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
<Configuration name="TestConfig" status="WARN">
2020
<Appenders>
2121
<Console name="Console" target="SYSTEM_OUT">
22-
<PatternLayout pattern="%d %threadId %-30c{1.} [%-5level] %msg [%X{resource.name}:%X{resource.resourceVersion}][%X{informer.event.action}:%X{informer.event.resource.name}:%X{informer.event.resource.resourceVersion}:%X{informer.name}] %n%throwable"/>
22+
<PatternLayout pattern="%d %threadId %-30c{1.} [%-5level] %msg p:[%X{resource.name}:%X{resource.namespace}:%X{resource.resourceVersion}] e:[%X{informer.name}:%X{informer.event.action}:%X{informer.event.resource.name}:%X{informer.event.resource.namespace}:%X{informer.event.resource.resourceVersion}] %n%throwable"/>
2323
</Console>
2424
</Appenders>
2525
<Loggers>

sample-operators/controller-namespace-deletion/src/main/resources/log4j2.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
<Configuration status="WARN">
2020
<Appenders>
2121
<Console name="Console" target="SYSTEM_OUT">
22-
<PatternLayout pattern="%d %-30c{1.} [%-5level] %msg%n%throwable"/>
22+
<PatternLayout pattern="%d %threadId %-30c{1.} [%-5level] %msg p:[%X{resource.name}:%X{resource.namespace}:%X{resource.resourceVersion}] e:[%X{informer.name}:%X{informer.event.action}:%X{informer.event.resource.name}:%X{informer.event.resource.namespace}:%X{informer.event.resource.resourceVersion}] %n%throwable"/>
2323
</Console>
2424
</Appenders>
2525
<Loggers>

sample-operators/leader-election/src/main/resources/log4j2.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
<Configuration status="WARN">
2020
<Appenders>
2121
<Console name="Console" target="SYSTEM_OUT">
22-
<PatternLayout pattern="%d %-30c{1.} [%-5level] %msg%n%throwable"/>
22+
<PatternLayout pattern="%d %threadId %-30c{1.} [%-5level] %msg p:[%X{resource.name}:%X{resource.namespace}:%X{resource.resourceVersion}] e:[%X{informer.name}:%X{informer.event.action}:%X{informer.event.resource.name}:%X{informer.event.resource.namespace}:%X{informer.event.resource.resourceVersion}] %n%throwable"/>
2323
</Console>
2424
</Appenders>
2525
<Loggers>

0 commit comments

Comments
 (0)