Skip to content

Commit 0be48a8

Browse files
authored
Allow SDElement partition names to be configured (#75)
* Allow SDElement partition names to be configured - Now NLF_01 requires `component.name` environment variable to be present when calling NLFPlugin.syslogMessage - Added ConfigurableSourceable to be able to test the exception throwing for the change - Changed mentions of `aer_02` to `aer` * Fix hardcoded `aer` value in DefaultSDElements.sdElements
1 parent b83f3a8 commit 0be48a8

42 files changed

Lines changed: 1152 additions & 807 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

src/main/java/com/teragrep/nlf_01/NLFPlugin.java

Lines changed: 30 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ public List<SyslogMessage> syslogMessage(final ParsedEvent parsedEvent) throws P
8181
final String containerLogHostnameKey = source.source("containerlog.hostname.annotation");
8282
final String syslogExpectedProcessName = source.source("syslogtype.processname");
8383
final String realHostname = new RealHostname("localhost").hostname();
84+
final String componentNameForPartitions = source.source("component.name");
8485

8586
if (!parsedEvent.isJsonStructure()) {
8687
// non-applicable
@@ -98,53 +99,55 @@ public List<SyslogMessage> syslogMessage(final ParsedEvent parsedEvent) throws P
9899
jsonObject.containsKey("Type") && jsonObject.get("Type").getValueType().equals(JsonValue.ValueType.STRING)
99100
) {
100101
if (jsonObject.getString("Type").equals("ADFActivityRun")) {
101-
eventTypes.add(new ADFActivityRunType(parsedEvent, realHostname));
102+
eventTypes.add(new ADFActivityRunType(parsedEvent, realHostname, componentNameForPartitions));
102103
}
103104
else if (jsonObject.getString("Type").equals("ADFPipelineRun")) {
104-
eventTypes.add(new ADFPipelineRunType(parsedEvent, realHostname));
105+
eventTypes.add(new ADFPipelineRunType(parsedEvent, realHostname, componentNameForPartitions));
105106
}
106107
else if (jsonObject.getString("Type").equals("AppEvents")) {
107-
eventTypes.add(new AppEventsType(parsedEvent, realHostname));
108+
eventTypes.add(new AppEventsType(parsedEvent, realHostname, componentNameForPartitions));
108109
}
109110
else if (jsonObject.getString("Type").equals("AppServiceConsoleLogs")) {
110-
eventTypes.add(new AppServiceConsoleLogsType(parsedEvent, realHostname));
111+
eventTypes.add(new AppServiceConsoleLogsType(parsedEvent, realHostname, componentNameForPartitions));
111112
}
112113
else if (jsonObject.getString("Type").equals("AppTraces")) {
113-
eventTypes.add(new AppInsightType(parsedEvent, realHostname));
114+
eventTypes.add(new AppInsightType(parsedEvent, realHostname, componentNameForPartitions));
114115
}
115116
else if (jsonObject.getString("Type").equals("ContainerAppConsoleLogs")) {
116-
eventTypes.add(new ContainerAppConsoleLogsType(parsedEvent, realHostname));
117+
eventTypes.add(new ContainerAppConsoleLogsType(parsedEvent, realHostname, componentNameForPartitions));
117118
}
118119
else if (jsonObject.getString("Type").equals("DataverseActivity")) {
119-
eventTypes.add(new DataverseActivityType(parsedEvent, realHostname));
120+
eventTypes.add(new DataverseActivityType(parsedEvent, realHostname, componentNameForPartitions));
120121
}
121122
else if (jsonObject.getString("Type").equals("FunctionAppLogs")) {
122-
eventTypes.add(new FunctionAppLogsType(parsedEvent, realHostname));
123+
eventTypes.add(new FunctionAppLogsType(parsedEvent, realHostname, componentNameForPartitions));
123124
}
124125
else if (jsonObject.getString("Type").equals("LogicAppWorkflowRuntime")) {
125-
eventTypes.add(new LogicAppWorkflowRuntimeType(parsedEvent, realHostname));
126+
eventTypes.add(new LogicAppWorkflowRuntimeType(parsedEvent, realHostname, componentNameForPartitions));
126127
}
127128
else if (jsonObject.getString("Type").equals("PGSQLServerLogs")) {
128-
eventTypes.add(new PGSQLServerLogsType(parsedEvent, realHostname));
129+
eventTypes.add(new PGSQLServerLogsType(parsedEvent, realHostname, componentNameForPartitions));
129130
}
130131
else if (jsonObject.getString("Type").equals("PowerAutomateActivity")) {
131-
eventTypes.add(new PowerAutomateActivityType(parsedEvent, realHostname));
132+
eventTypes.add(new PowerAutomateActivityType(parsedEvent, realHostname, componentNameForPartitions));
132133
}
133134
else if (jsonObject.getString("Type").equals("PowerPlatformAdminActivity")) {
134-
eventTypes.add(new PowerPlatformAdminActivityType(parsedEvent, realHostname));
135+
eventTypes
136+
.add(new PowerPlatformAdminActivityType(parsedEvent, realHostname, componentNameForPartitions));
135137
}
136138
else if (jsonObject.getString("Type").endsWith("fluent_audit_log_events_CL")) {
137-
eventTypes.add(new CCType(parsedEvent, realHostname));
139+
eventTypes.add(new CCType(parsedEvent, realHostname, componentNameForPartitions));
138140
}
139141
else if (jsonObject.getString("Type").endsWith("_CL")) {
140-
eventTypes.add(new CLType(parsedEvent, realHostname));
142+
eventTypes.add(new CLType(parsedEvent, realHostname, componentNameForPartitions));
141143
}
142144
else if (jsonObject.getString("Type").equals("ContainerLogV2")) {
143145
if (
144146
jsonObject.containsKey("PodNamespace")
145147
&& jsonObject.getString("PodNamespace").equals("aks-istio-ingress")
146148
) {
147-
eventTypes.add(new IstioIngressContainerType(parsedEvent, realHostname));
149+
eventTypes
150+
.add(new IstioIngressContainerType(parsedEvent, realHostname, componentNameForPartitions));
148151
}
149152
else {
150153
eventTypes
@@ -153,21 +156,30 @@ else if (jsonObject.getString("Type").equals("ContainerLogV2")) {
153156
parsedEvent,
154157
containerLogHostnameKey,
155158
containerLogAppNameKey,
156-
realHostname
159+
realHostname,
160+
componentNameForPartitions
157161
)
158162
);
159163
}
160164
}
161165
else if (jsonObject.getString("Type").equals("Syslog")) {
162-
eventTypes.add(new SyslogType(parsedEvent, syslogExpectedProcessName, realHostname));
166+
eventTypes
167+
.add(
168+
new SyslogType(
169+
parsedEvent,
170+
syslogExpectedProcessName,
171+
realHostname,
172+
componentNameForPartitions
173+
)
174+
);
163175
}
164176
}
165177
else if (
166178
jsonObject.containsKey("AppType")
167179
&& jsonObject.get("AppType").getValueType().equals(JsonValue.ValueType.STRING)
168180
) {
169181
if (jsonObject.getString("AppType").equals("PostgreSQL")) {
170-
eventTypes.add(new PostgreSQLType(parsedEvent, realHostname));
182+
eventTypes.add(new PostgreSQLType(parsedEvent, realHostname, componentNameForPartitions));
171183
}
172184
}
173185

src/main/java/com/teragrep/nlf_01/types/ADFActivityRunType.java

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,10 +67,16 @@ public final class ADFActivityRunType implements EventType {
6767

6868
private final ParsedEvent parsedEvent;
6969
private final String realHostname;
70+
private final String componentNameForPartitions;
7071

71-
public ADFActivityRunType(final ParsedEvent parsedEvent, final String realHostname) {
72+
public ADFActivityRunType(
73+
final ParsedEvent parsedEvent,
74+
final String realHostname,
75+
final String componentNameForPartitions
76+
) {
7277
this.parsedEvent = parsedEvent;
7378
this.realHostname = realHostname;
79+
this.componentNameForPartitions = componentNameForPartitions;
7480
}
7581

7682
@Override
@@ -110,7 +116,12 @@ public long timestamp() throws PluginException {
110116

111117
@Override
112118
public Set<SDElement> sdElements() {
113-
final SDElements defaultSDElements = new DefaultSDElements(parsedEvent, realHostname, this.getClass());
119+
final SDElements defaultSDElements = new DefaultSDElements(
120+
parsedEvent,
121+
realHostname,
122+
this.getClass(),
123+
componentNameForPartitions
124+
);
114125

115126
return defaultSDElements.sdElements();
116127
}

src/main/java/com/teragrep/nlf_01/types/ADFPipelineRunType.java

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,10 +67,16 @@ public final class ADFPipelineRunType implements EventType {
6767

6868
private final ParsedEvent parsedEvent;
6969
private final String realHostname;
70+
private final String componentNameForPartitions;
7071

71-
public ADFPipelineRunType(final ParsedEvent parsedEvent, final String realHostname) {
72+
public ADFPipelineRunType(
73+
final ParsedEvent parsedEvent,
74+
final String realHostname,
75+
final String componentNameForPartitions
76+
) {
7277
this.parsedEvent = parsedEvent;
7378
this.realHostname = realHostname;
79+
this.componentNameForPartitions = componentNameForPartitions;
7480
}
7581

7682
@Override
@@ -112,7 +118,12 @@ public long timestamp() throws PluginException {
112118

113119
@Override
114120
public Set<SDElement> sdElements() {
115-
final SDElements defaultSDElements = new DefaultSDElements(parsedEvent, realHostname, this.getClass());
121+
final SDElements defaultSDElements = new DefaultSDElements(
122+
parsedEvent,
123+
realHostname,
124+
this.getClass(),
125+
componentNameForPartitions
126+
);
116127

117128
return defaultSDElements.sdElements();
118129
}

src/main/java/com/teragrep/nlf_01/types/AppEventsType.java

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,10 +67,16 @@ public final class AppEventsType implements EventType {
6767

6868
private final ParsedEvent parsedEvent;
6969
private final String realHostname;
70+
private final String componentNameForPartitions;
7071

71-
public AppEventsType(final ParsedEvent parsedEvent, final String realHostname) {
72+
public AppEventsType(
73+
final ParsedEvent parsedEvent,
74+
final String realHostname,
75+
final String componentNameForPartitions
76+
) {
7277
this.parsedEvent = parsedEvent;
7378
this.realHostname = realHostname;
79+
this.componentNameForPartitions = componentNameForPartitions;
7480
}
7581

7682
@Override
@@ -115,7 +121,12 @@ public long timestamp() throws PluginException {
115121

116122
@Override
117123
public Set<SDElement> sdElements() throws PluginException {
118-
final SDElements defaultSDElements = new DefaultSDElements(parsedEvent, realHostname, this.getClass());
124+
final SDElements defaultSDElements = new DefaultSDElements(
125+
parsedEvent,
126+
realHostname,
127+
this.getClass(),
128+
componentNameForPartitions
129+
);
119130

120131
return defaultSDElements.sdElements();
121132
}

src/main/java/com/teragrep/nlf_01/types/AppInsightType.java

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,10 +59,16 @@ public final class AppInsightType implements EventType {
5959

6060
private final ParsedEvent parsedEvent;
6161
private final String realHostname;
62+
private final String componentNameForPartitions;
6263

63-
public AppInsightType(final ParsedEvent parsedEvent, final String realHostname) {
64+
public AppInsightType(
65+
final ParsedEvent parsedEvent,
66+
final String realHostname,
67+
final String componentNameForPartitions
68+
) {
6469
this.parsedEvent = parsedEvent;
6570
this.realHostname = realHostname;
71+
this.componentNameForPartitions = componentNameForPartitions;
6672
}
6773

6874
@Override
@@ -105,7 +111,12 @@ public long timestamp() throws PluginException {
105111

106112
@Override
107113
public Set<SDElement> sdElements() {
108-
final SDElements defaultSDElements = new DefaultSDElements(parsedEvent, realHostname, this.getClass());
114+
final SDElements defaultSDElements = new DefaultSDElements(
115+
parsedEvent,
116+
realHostname,
117+
this.getClass(),
118+
componentNameForPartitions
119+
);
109120

110121
return defaultSDElements.sdElements();
111122
}

src/main/java/com/teragrep/nlf_01/types/AppServiceConsoleLogsType.java

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,10 +67,16 @@ public final class AppServiceConsoleLogsType implements EventType {
6767

6868
private final ParsedEvent parsedEvent;
6969
private final String realHostname;
70+
private final String componentNameForPartitions;
7071

71-
public AppServiceConsoleLogsType(final ParsedEvent parsedEvent, final String realHostname) {
72+
public AppServiceConsoleLogsType(
73+
final ParsedEvent parsedEvent,
74+
final String realHostname,
75+
final String componentNameForPartitions
76+
) {
7277
this.parsedEvent = parsedEvent;
7378
this.realHostname = realHostname;
79+
this.componentNameForPartitions = componentNameForPartitions;
7480
}
7581

7682
@Override
@@ -110,7 +116,12 @@ public long timestamp() throws PluginException {
110116

111117
@Override
112118
public Set<SDElement> sdElements() throws PluginException {
113-
final SDElements defaultSDElements = new DefaultSDElements(parsedEvent, realHostname, this.getClass());
119+
final SDElements defaultSDElements = new DefaultSDElements(
120+
parsedEvent,
121+
realHostname,
122+
this.getClass(),
123+
componentNameForPartitions
124+
);
114125

115126
return defaultSDElements.sdElements();
116127
}

src/main/java/com/teragrep/nlf_01/types/CCType.java

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -71,18 +71,25 @@ public final class CCType implements EventType {
7171
private final ParsedEvent parsedEvent;
7272
private final String realHostname;
7373
private final Pattern appNamePattern;
74+
private final String componentNameForPartitions;
7475

7576
/**
7677
* Parses the appName from data.resourceName's value between the second '=' symbol and the next '/' symbol
7778
*/
78-
public CCType(final ParsedEvent parsedEvent, final String realHostname) {
79-
this(parsedEvent, realHostname, Pattern.compile("=.*?=(?<value>.*?)(?=/)"));
79+
public CCType(final ParsedEvent parsedEvent, final String realHostname, final String componentNameForPartitions) {
80+
this(parsedEvent, realHostname, Pattern.compile("=.*?=(?<value>.*?)(?=/)"), componentNameForPartitions);
8081
}
8182

82-
private CCType(final ParsedEvent parsedEvent, final String realHostname, final Pattern appNamePattern) {
83+
private CCType(
84+
final ParsedEvent parsedEvent,
85+
final String realHostname,
86+
final Pattern appNamePattern,
87+
final String componentNameForPartitions
88+
) {
8389
this.parsedEvent = parsedEvent;
8490
this.realHostname = realHostname;
8591
this.appNamePattern = appNamePattern;
92+
this.componentNameForPartitions = componentNameForPartitions;
8693
}
8794

8895
@Override
@@ -138,7 +145,12 @@ public long timestamp() throws PluginException {
138145

139146
@Override
140147
public Set<SDElement> sdElements() throws PluginException {
141-
final SDElements defaultSDElements = new DefaultSDElements(parsedEvent, realHostname, this.getClass());
148+
final SDElements defaultSDElements = new DefaultSDElements(
149+
parsedEvent,
150+
realHostname,
151+
this.getClass(),
152+
componentNameForPartitions
153+
);
142154

143155
return defaultSDElements.sdElements();
144156
}

src/main/java/com/teragrep/nlf_01/types/CLType.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,10 +60,12 @@ public final class CLType implements EventType {
6060

6161
private final ParsedEvent parsedEvent;
6262
private final String realHostname;
63+
private final String componentNameForPartitions;
6364

64-
public CLType(final ParsedEvent parsedEvent, final String realHostname) {
65+
public CLType(final ParsedEvent parsedEvent, final String realHostname, final String componentNameForPartitions) {
6566
this.parsedEvent = parsedEvent;
6667
this.realHostname = realHostname;
68+
this.componentNameForPartitions = componentNameForPartitions;
6769
}
6870

6971
@Override
@@ -112,7 +114,12 @@ public long timestamp() throws PluginException {
112114

113115
@Override
114116
public Set<SDElement> sdElements() throws PluginException {
115-
final SDElements defaultSDElements = new DefaultSDElements(parsedEvent, realHostname, this.getClass());
117+
final SDElements defaultSDElements = new DefaultSDElements(
118+
parsedEvent,
119+
realHostname,
120+
this.getClass(),
121+
componentNameForPartitions
122+
);
116123
final Set<SDElement> elems = defaultSDElements.sdElements();
117124

118125
final JsonObject mainObject = parsedEvent.asJsonStructure().asJsonObject();

src/main/java/com/teragrep/nlf_01/types/ContainerAppConsoleLogsType.java

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,10 +68,16 @@ public final class ContainerAppConsoleLogsType implements EventType {
6868

6969
private final ParsedEvent parsedEvent;
7070
private final String realHostname;
71+
private final String componentNameForPartitions;
7172

72-
public ContainerAppConsoleLogsType(final ParsedEvent parsedEvent, final String realHostname) {
73+
public ContainerAppConsoleLogsType(
74+
final ParsedEvent parsedEvent,
75+
final String realHostname,
76+
final String componentNameForPartitions
77+
) {
7378
this.parsedEvent = parsedEvent;
7479
this.realHostname = realHostname;
80+
this.componentNameForPartitions = componentNameForPartitions;
7581
}
7682

7783
@Override
@@ -125,7 +131,12 @@ public long timestamp() throws PluginException {
125131

126132
@Override
127133
public Set<SDElement> sdElements() throws PluginException {
128-
final SDElements defaultSDElements = new DefaultSDElements(parsedEvent, realHostname, this.getClass());
134+
final SDElements defaultSDElements = new DefaultSDElements(
135+
parsedEvent,
136+
realHostname,
137+
this.getClass(),
138+
componentNameForPartitions
139+
);
129140

130141
return defaultSDElements.sdElements();
131142
}

0 commit comments

Comments
 (0)