Skip to content

Commit 0b52435

Browse files
changed watermark strategy
1 parent 5597332 commit 0b52435

File tree

3 files changed

+43
-32
lines changed

3 files changed

+43
-32
lines changed

src/main/java/com/appdynamics/monitors/kubernetes/Utilities.java

Lines changed: 36 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,18 @@
11
package com.appdynamics.monitors.kubernetes;
22

33
import com.appdynamics.monitors.kubernetes.config.Globals;
4+
import com.fasterxml.jackson.core.JsonParser;
45
import com.fasterxml.jackson.databind.ObjectMapper;
56
import com.fasterxml.jackson.databind.node.ArrayNode;
67
import com.fasterxml.jackson.databind.node.ObjectNode;
78
import io.kubernetes.client.models.V1Event;
89
import io.kubernetes.client.models.V1EventList;
10+
import org.joda.time.DateTime;
911
import org.slf4j.Logger;
1012
import org.slf4j.LoggerFactory;
1113
import java.net.MalformedURLException;
1214
import java.net.URL;
15+
import java.util.Date;
1316

1417
class Utilities {
1518
private static final Logger logger = LoggerFactory.getLogger(Utilities.class);
@@ -28,38 +31,41 @@ static ArrayNode createEventPayload(V1EventList eventList) {
2831
ObjectMapper mapper = new ObjectMapper();
2932
ArrayNode arrayNode = mapper.createArrayNode();
3033
for (V1Event item : eventList.getItems()) {
31-
Globals.lastElement = item.getMetadata().getSelfLink();
32-
if (item.getMetadata().getSelfLink().equals(Globals.previousElement)){
33-
arrayNode = mapper.createArrayNode();
34-
}
35-
else {
36-
ObjectNode objectNode = mapper.createObjectNode();
37-
objectNode = checkAddObject(objectNode, item.getFirstTimestamp(), "firstTimestamp");
38-
objectNode = checkAddObject(objectNode, item.getMetadata().getAnnotations(), "annotations");
39-
objectNode = checkAddObject(objectNode, item.getLastTimestamp(), "lastTimestamp");
40-
objectNode = checkAddObject(objectNode, item.getMetadata().getCreationTimestamp(), "creationTimestamp");
41-
objectNode = checkAddObject(objectNode, item.getMetadata().getDeletionTimestamp(), "deletionTimestamp");
42-
objectNode = checkAddObject(objectNode, item.getMetadata().getFinalizers(), "finalizers");
43-
objectNode = checkAddObject(objectNode, item.getMetadata().getInitializers(), "initializers");
44-
objectNode = checkAddObject(objectNode, item.getMetadata().getLabels(), "labels");
45-
objectNode = checkAddObject(objectNode, item.getMetadata().getOwnerReferences(), "ownerReferences");
46-
objectNode = checkAddObject(objectNode, item.getInvolvedObject().getKind(), "object_kind");
47-
objectNode = checkAddObject(objectNode, item.getInvolvedObject().getName(), "object_name");
48-
objectNode = checkAddObject(objectNode, item.getInvolvedObject().getNamespace(), "object_namespace");
49-
objectNode = checkAddObject(objectNode, item.getInvolvedObject().getResourceVersion(), "object_resourceVersion");
50-
objectNode = checkAddObject(objectNode, item.getInvolvedObject().getUid(), "object_uid");
51-
objectNode = checkAddObject(objectNode, item.getMessage(), "message");
52-
objectNode = checkAddObject(objectNode, item.getMetadata().getClusterName(), "clusterName");
53-
objectNode = checkAddObject(objectNode, item.getMetadata().getGenerateName(), "generateName");
54-
objectNode = checkAddObject(objectNode, item.getMetadata().getGeneration(), "generation");
55-
objectNode = checkAddObject(objectNode, item.getMetadata().getName(), "name");
56-
objectNode = checkAddObject(objectNode, item.getMetadata().getNamespace(), "namespace");
57-
objectNode = checkAddObject(objectNode, item.getMetadata().getResourceVersion(), "resourceVersion");
58-
objectNode = checkAddObject(objectNode, item.getMetadata().getSelfLink(), "selfLink");
59-
arrayNode.add(objectNode);
34+
if (item.getLastTimestamp().isAfter(Globals.previousRunTimestamp) || Globals.previousRunTimestamp == null){
35+
if (!item.getMetadata().getSelfLink().equals(Globals.previousRunSelfLink)){
36+
ObjectNode objectNode = mapper.createObjectNode();
37+
objectNode = checkAddObject(objectNode, item.getFirstTimestamp(), "firstTimestamp");
38+
objectNode = checkAddObject(objectNode, item.getMetadata().getAnnotations(), "annotations");
39+
objectNode = checkAddObject(objectNode, item.getLastTimestamp(), "lastTimestamp");
40+
objectNode = checkAddObject(objectNode, item.getMetadata().getCreationTimestamp(), "creationTimestamp");
41+
objectNode = checkAddObject(objectNode, item.getMetadata().getDeletionTimestamp(), "deletionTimestamp");
42+
objectNode = checkAddObject(objectNode, item.getMetadata().getFinalizers(), "finalizers");
43+
objectNode = checkAddObject(objectNode, item.getMetadata().getInitializers(), "initializers");
44+
objectNode = checkAddObject(objectNode, item.getMetadata().getLabels(), "labels");
45+
objectNode = checkAddObject(objectNode, item.getMetadata().getOwnerReferences(), "ownerReferences");
46+
objectNode = checkAddObject(objectNode, item.getInvolvedObject().getKind(), "object_kind");
47+
objectNode = checkAddObject(objectNode, item.getInvolvedObject().getName(), "object_name");
48+
objectNode = checkAddObject(objectNode, item.getInvolvedObject().getNamespace(), "object_namespace");
49+
objectNode = checkAddObject(objectNode, item.getInvolvedObject().getResourceVersion(), "object_resourceVersion");
50+
objectNode = checkAddObject(objectNode, item.getInvolvedObject().getUid(), "object_uid");
51+
objectNode = checkAddObject(objectNode, item.getMessage(), "message");
52+
objectNode = checkAddObject(objectNode, item.getMetadata().getClusterName(), "clusterName");
53+
objectNode = checkAddObject(objectNode, item.getMetadata().getGenerateName(), "generateName");
54+
objectNode = checkAddObject(objectNode, item.getMetadata().getGeneration(), "generation");
55+
objectNode = checkAddObject(objectNode, item.getMetadata().getName(), "name");
56+
objectNode = checkAddObject(objectNode, item.getMetadata().getNamespace(), "namespace");
57+
objectNode = checkAddObject(objectNode, item.getMetadata().getResourceVersion(), "resourceVersion");
58+
objectNode = checkAddObject(objectNode, item.getMetadata().getSelfLink(), "selfLink");
59+
arrayNode.add(objectNode);
60+
Globals.lastElementSelfLink = item.getMetadata().getSelfLink();
61+
}
62+
if(item.getLastTimestamp().isAfter(Globals.lastElementTimestamp) || Globals.lastElementTimestamp == null){
63+
Globals.lastElementTimestamp = item.getLastTimestamp();
64+
}
6065
}
6166
}
62-
Globals.previousElement = Globals.lastElement;
67+
Globals.previousRunSelfLink = Globals.lastElementSelfLink;
68+
Globals.previousRunTimestamp = Globals.lastElementTimestamp;
6369

6470
return arrayNode;
6571
}
Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
package com.appdynamics.monitors.kubernetes.config;
22

3+
import org.joda.time.DateTime;
4+
35
public class Globals {
4-
public static String lastElement = "";
5-
public static String previousElement = "";
6+
public static DateTime lastElementTimestamp = null;
7+
public static DateTime previousRunTimestamp = null;
8+
public static String lastElementSelfLink = "";
9+
public static String previousRunSelfLink = "";
610
}

src/test/java/com/appdynamics/monitors/kubernetes/KubernetesEventsMonitorTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ public Object answer(InvocationOnMock invocationOnMock) {
7777
null,
7878
null,
7979
null);
80+
8081
String payload = Utilities.createEventPayload(eventList).toString();
8182

8283
if(!payload.equals("[]")){

0 commit comments

Comments
 (0)