Skip to content

Commit 4427cd0

Browse files
author
Aarushi Singh
committed
Update to otel.proto version to 0.18
1 parent fdb9062 commit 4427cd0

File tree

18 files changed

+95
-140
lines changed

18 files changed

+95
-140
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
.idea
22
.gradle
3+
.DS_Store
34
build
45
/logs

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ dependencies {
2424
api group: 'ch.qos.logback', name: 'logback-classic', version: '1.2.11'
2525
api group: 'org.projectlombok', name: 'lombok', version: '1.18.20'
2626
api group: 'com.fasterxml.jackson.dataformat', name: 'jackson-dataformat-yaml', version: '2.13.2'
27-
api group: 'io.opentelemetry', name: 'opentelemetry-proto', version: '1.6.0-alpha'
27+
api group: 'io.opentelemetry.proto', name: 'opentelemetry-proto', version: '0.18.0-alpha'
2828
api group: 'io.opentelemetry', name: 'opentelemetry-sdk-trace', version: '1.12.0'
2929
api group: 'com.google.guava', name: 'guava', version: 'r05'
3030
api group: 'org.apache.commons', name: 'commons-collections4', version: '4.4'

example-definitions/log-definition.yaml

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,7 @@
1616

1717
globalPayloadFrequencySeconds: 30
1818
logs:
19-
- name: k8slogs
20-
attributes:
19+
- attributes:
2120
log.labels: '{"generator": roundRobin(["Telemetry-Generator", "Telemetry-Generator-v2"]), "type": "k8s"}'
2221
severityOrderFunction: 'severityDistributionCount(["INFO", "ERROR", "DEBUG"], [1, 2, 3])'
2322
payloadFrequencySeconds: 20
@@ -26,15 +25,13 @@ logs:
2625
reportingEntitiesCounts:
2726
container: 10
2827
pod: 10
29-
- name: logevents1
30-
severityOrderFunction: 'severityDistributionCount(["ERROR", "WARN", "DEBUG"], [1, 1, 4])'
28+
- severityOrderFunction: 'severityDistributionCount(["ERROR", "WARN", "DEBUG"], [1, 1, 4])'
3129
payloadFrequencySeconds: 20
3230
payloadCount: 2
3331
copyCount: 200
3432
reportingEntitiesCounts:
3533
node: 30
36-
- name: logevents2
37-
severityOrderFunction: 'severityDistributionPercentage(["INFO", "TRACE"], [20, 80])'
34+
- severityOrderFunction: 'severityDistributionPercentage(["INFO", "TRACE"], [20, 80])'
3835
payloadFrequencySeconds: 10
3936
payloadCount: 5
4037
reportingEntitiesCounts:

src/main/java/io/opentelemetry/contrib/generator/telemetry/logs/LogGeneratorThread.java

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,9 @@
2626
import io.opentelemetry.contrib.generator.telemetry.transport.PayloadHandler;
2727
import io.opentelemetry.proto.collector.logs.v1.ExportLogsServiceRequest;
2828
import io.opentelemetry.proto.common.v1.AnyValue;
29-
import io.opentelemetry.proto.common.v1.InstrumentationLibrary;
30-
import io.opentelemetry.proto.logs.v1.InstrumentationLibraryLogs;
29+
import io.opentelemetry.proto.common.v1.InstrumentationScope;
3130
import io.opentelemetry.proto.logs.v1.ResourceLogs;
31+
import io.opentelemetry.proto.logs.v1.ScopeLogs;
3232
import io.opentelemetry.proto.resource.v1.Resource;
3333
import io.opentelemetry.proto.logs.v1.LogRecord;
3434
import jakarta.el.ELProcessor;
@@ -64,9 +64,9 @@ public LogGeneratorThread(LogDefinition logDefinition, PayloadHandler payloadHan
6464

6565
@Override
6666
public void run() {
67-
log.debug(requestID + ": Log generator thread invoked for Log Definition type: " + logDefinition.getName());
67+
log.debug(requestID + ": Log generator thread invoked for Log Definition type: " + logDefinition);
6868
if (logGeneratorState.isGenerateData() &&
69-
logGeneratorState.getThreadPayloadCounts().get(logDefinition.getName()) < logDefinition.getPayloadCount()) {
69+
logGeneratorState.getThreadPayloadCounts().get(logDefinition.getId()) < logDefinition.getPayloadCount()) {
7070
List<ResourceLogs> resourceLogsList = new ArrayList<>();
7171
ResourceLogs resourceLog;
7272
LogRecord logRecord = getLog(logDefinition);
@@ -77,12 +77,12 @@ public void run() {
7777
for (Resource eachResource: postToEntities) {
7878
resourceLog = ResourceLogs.newBuilder()
7979
.setResource(eachResource)
80-
.addInstrumentationLibraryLogs(InstrumentationLibraryLogs.newBuilder()
81-
.setInstrumentationLibrary(InstrumentationLibrary.newBuilder()
80+
.addScopeLogs(ScopeLogs.newBuilder()
81+
.setScope(InstrumentationScope.newBuilder()
8282
.setName("@opentelemetry/vodka-exporter")
8383
.setVersion("22.9.0")
8484
.build())
85-
.addAllLogs(otelLogs)
85+
.addAllLogRecords(otelLogs)
8686
.build())
8787
.build();
8888
resourceLogsList.add(resourceLog);
@@ -91,21 +91,22 @@ public void run() {
9191
ExportLogsServiceRequest resourceLogs = ExportLogsServiceRequest.newBuilder().addAllResourceLogs(resourceLogsList).build();
9292
boolean responseStatus = payloadHandler.postPayload(resourceLogs);
9393
if (logGeneratorState.getTransportStorage() != null) {
94-
logGeneratorState.getTransportStorage().store(logDefinition.getName(), reportingEntity.getKey(), resourceLogs, responseStatus);
94+
logGeneratorState.getTransportStorage().store(logDefinition.getId(), reportingEntity.getKey(), resourceLogs, responseStatus);
9595
}
96-
log.debug(requestID + ": Complete payload for entity: " + reportingEntity + " in event Definition" + logDefinition.getName() + ": " + resourceLogs);
96+
log.debug(requestID + ": Complete payload for entity: " + reportingEntity + " in event Definition" + logDefinition.getId() + ": " + resourceLogs);
9797
resourceLogsList.clear();
9898
}
9999
currentPayloadCount++;
100-
logGeneratorState.getThreadPayloadCounts().put(logDefinition.getName(), currentPayloadCount);
100+
logGeneratorState.getThreadPayloadCounts().put(logDefinition.getId(), currentPayloadCount);
101101
}
102102
}
103103

104104
private LogRecord getLog(LogDefinition logDefinition) {
105+
long nanoTime = TimeUnit.MILLISECONDS.toNanos(System.currentTimeMillis());
105106
String severity = jelProcessor.eval(logDefinition.getSeverityOrderFunction()).toString();
106107
return LogRecord.newBuilder()
107-
.setName(logDefinition.getName())
108-
.setTimeUnixNano(TimeUnit.MILLISECONDS.toNanos(System.currentTimeMillis()))
108+
.setTimeUnixNano(nanoTime)
109+
.setObservedTimeUnixNano(nanoTime)
109110
.setSeverityText(severity)
110111
.addAllAttributes(GeneratorUtils.getEvaluatedAttributes(jelProcessor, logDefinition.getAttributes()))
111112
.setBody(AnyValue.newBuilder().setStringValue(LogMessageProvider.getLogMessage(severity)).build())

src/main/java/io/opentelemetry/contrib/generator/telemetry/logs/LogsGenerator.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -75,9 +75,9 @@ private void initThread(LogDefinition logDefinition) {
7575
var logGeneratorThread = new LogGeneratorThread(logDefinition, payloadHandler, requestID);
7676
generatorState.getExecutorService().scheduleAtFixedRate(logGeneratorThread, 10,
7777
logDefinition.getPayloadFrequencySeconds(), TimeUnit.SECONDS);
78-
generatorThreadMap.put(logDefinition.getName(), logGeneratorThread);
79-
generatorState.getThreadPayloadCounts().put(logDefinition.getName(), 0);
80-
log.debug(requestID + ": Scheduled log generator thread for Log Definition " + logDefinition.getName());
78+
generatorThreadMap.put(logDefinition.getId(), logGeneratorThread);
79+
generatorState.getThreadPayloadCounts().put(logDefinition.getId(), 0);
80+
log.debug(requestID + ": Scheduled log generator thread for Log Definition " + logDefinition.getId());
8181
}
8282

8383
}

src/main/java/io/opentelemetry/contrib/generator/telemetry/logs/dto/LogDefinition.java

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
package io.opentelemetry.contrib.generator.telemetry.logs.dto;
1818

19+
import com.fasterxml.jackson.annotation.JsonIgnore;
1920
import io.opentelemetry.contrib.generator.core.exception.GeneratorException;
2021
import io.opentelemetry.contrib.generator.telemetry.misc.GeneratorUtils;
2122
import lombok.Data;
@@ -30,38 +31,36 @@
3031
@Data
3132
public class LogDefinition {
3233

33-
private String name;
3434
private String severityOrderFunction;
3535
private Map<String, Integer> reportingEntitiesCounts;
3636
private Integer payloadFrequencySeconds;
3737
private Integer payloadCount;
3838
private Integer copyCount;
3939
private Map<String, Object> attributes;
40+
@JsonIgnore
41+
private String id;
4042

41-
public long validate(String requestID, Set<String> allEntityTypes, Integer globalPayloadFrequencySeconds) {
42-
if (StringUtils.defaultString(name).isBlank()) {
43-
name = "log_by_vodka_" + ThreadLocalRandom.current().nextInt();
44-
log.warn("Name not found for log. Using " + name);
45-
}
43+
public long validate(String requestID, Set<String> allEntityTypes, Integer globalPayloadFrequencySeconds, int eventIndex) {
44+
id = "log_by_OTel_DataGen_" + eventIndex;
4645
if (copyCount == null || copyCount < 1) {
4746
copyCount = 1;
4847
}
4948
validateMandatoryFields();
5049
validateEntityTypesCount(allEntityTypes);
5150
addRequestIDAndLogNameToValueFunction(requestID);
52-
attributes = GeneratorUtils.addArgsToAttributeExpressions(requestID, "log", name, attributes);
51+
attributes = GeneratorUtils.addArgsToAttributeExpressions(requestID, "event", id, attributes);
5352
return validatePayloadFrequency(globalPayloadFrequencySeconds);
5453
}
5554

5655
private void validateMandatoryFields() {
5756
if (payloadCount == null || payloadCount < 1) {
58-
throw new GeneratorException("Payload count cannot be less than 1. Update the value in log " + name);
57+
throw new GeneratorException("Payload count cannot be less than 1. Update the value in log " + this);
5958
}
6059
if (MapUtils.emptyIfNull(reportingEntitiesCounts).isEmpty()) {
61-
throw new GeneratorException("Mandatory field 'reportingResourcesCount' not provided in log definition YAML for log " + name);
60+
throw new GeneratorException("Mandatory field 'reportingResourcesCount' not provided in log definition YAML for log " + this);
6261
}
6362
if (StringUtils.defaultString(severityOrderFunction).isBlank()) {
64-
throw new GeneratorException("Mandatory field 'severityFrequency' not provided in log definition YAML for log " + name);
63+
throw new GeneratorException("Mandatory field 'severityFrequency' not provided in log definition YAML for log " + this);
6564
}
6665
validateAttributes();
6766
}
@@ -71,11 +70,11 @@ private long validatePayloadFrequency(Integer globalPostFrequencySeconds) {
7170
if(globalPostFrequencySeconds == null) {
7271
List<Integer> freqList = Arrays.asList(15, 30, 45, 60, 75, 90);
7372
payloadFrequencySeconds = freqList.get(ThreadLocalRandom.current().nextInt(freqList.size()));
74-
log.warn("Invalid/No value of 'payloadFrequencySeconds' found for log " + name +
73+
log.warn("Invalid/No value of 'payloadFrequencySeconds' found for log " + this +
7574
". Setting a value randomly = " + payloadFrequencySeconds + " as 'globalPayloadFrequencySeconds' value is missing.");
7675
} else {
7776
payloadFrequencySeconds = globalPostFrequencySeconds;
78-
log.warn("Invalid/No value of 'payloadFrequencySeconds' found for log " + name +
77+
log.warn("Invalid/No value of 'payloadFrequencySeconds' found for log " + this +
7978
". Setting the value as specified in 'globalPayloadFrequencySeconds' = " + globalPostFrequencySeconds);
8079
}
8180
}
@@ -112,10 +111,10 @@ private void validateEntityTypesCount (Set<String> allEntityTypes) {
112111
}
113112
if (!allEntityTypes.contains(eachEntity.getKey().trim())){
114113
throw new GeneratorException("Invalid entity type (" + eachEntity.getKey() + ") found in log definition YAML " +
115-
"for log " + name);
114+
"for log " + this);
116115
}
117116
if (eachEntity.getValue() == null || eachEntity.getValue() < 1){
118-
log.warn("Unexpected value of reporting entity count found for " + eachEntity.getKey() + ". Updating value to 1 for log " + name);
117+
log.warn("Unexpected value of reporting entity count found for " + eachEntity.getKey() + ". Updating value to 1 for log " + this);
119118
entityCount.put(eachEntity.getKey().trim(), 1);
120119
}
121120
else entityCount.put(eachEntity.getKey().trim(), eachEntity.getValue());
@@ -127,7 +126,7 @@ private void addRequestIDAndLogNameToValueFunction(String requestID) {
127126
List<String> valueFunctions = Arrays.asList("severityDistributionCount", "severityDistributionPercentage", "severityDistributionCountIndex");
128127
for (String eachValueFx: valueFunctions) {
129128
severityOrderFunction = severityOrderFunction.replace(eachValueFx + "(",
130-
eachValueFx + "(\"" + requestID + "\", \"" + name + "\", ");
129+
eachValueFx + "(\"" + requestID + "\", \"" + id + "\", ");
131130
}
132131
}
133132

@@ -137,7 +136,7 @@ public static boolean inBetween(int i, int minValueInclusive, int maxValueExclus
137136

138137
@Override
139138
public int hashCode() {
140-
return this.name.hashCode();
139+
return this.id.hashCode();
141140
}
142141

143142
@Override
@@ -146,7 +145,7 @@ public boolean equals(Object logDefinition) {
146145
return true;
147146
}
148147
if (logDefinition instanceof LogDefinition) {
149-
return this.name.equals(((LogDefinition) logDefinition).getName());
148+
return this.id.equals(((LogDefinition) logDefinition).getId());
150149
}
151150
return false;
152151
}

src/main/java/io/opentelemetry/contrib/generator/telemetry/logs/dto/Logs.java

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -40,17 +40,12 @@ public void validate(String requestID, Set<String> allEntityTypes) {
4040
}
4141
maxPostSeconds = 0;
4242
totalPayloadCount = 0;
43+
int eventIndex = 0;
44+
4345
for (LogDefinition eachLog: logs) {
44-
maxPostSeconds = Math.max(maxPostSeconds, eachLog.validate(requestID, allEntityTypes, globalPayloadFrequencySeconds));
46+
maxPostSeconds = Math.max(maxPostSeconds, eachLog.validate(requestID, allEntityTypes, globalPayloadFrequencySeconds, eventIndex));
4547
totalPayloadCount += eachLog.getPayloadCount();
46-
}
47-
validateUniqueLogName();
48-
}
49-
50-
private void validateUniqueLogName() {
51-
Set<String> logDefinitionNames = logs.stream().map(LogDefinition::getName).collect(Collectors.toSet());
52-
if (logDefinitionNames.size() < logs.size()) {
53-
throw new GeneratorException("Duplicate Log Definition Name found.");
48+
eventIndex++;
5449
}
5550
}
5651
}

src/main/java/io/opentelemetry/contrib/generator/telemetry/metrics/MetricGeneratorThread.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,10 @@
2525
import io.opentelemetry.contrib.generator.telemetry.misc.Constants;
2626
import io.opentelemetry.contrib.generator.telemetry.metrics.dto.MetricDefinition;
2727
import io.opentelemetry.proto.collector.metrics.v1.ExportMetricsServiceRequest;
28-
import io.opentelemetry.proto.common.v1.InstrumentationLibrary;
29-
import io.opentelemetry.proto.metrics.v1.InstrumentationLibraryMetrics;
28+
import io.opentelemetry.proto.common.v1.InstrumentationScope;
3029
import io.opentelemetry.proto.metrics.v1.Metric;
3130
import io.opentelemetry.proto.metrics.v1.ResourceMetrics;
31+
import io.opentelemetry.proto.metrics.v1.ScopeMetrics;
3232
import io.opentelemetry.proto.resource.v1.Resource;
3333
import jakarta.el.ELProcessor;
3434
import lombok.extern.slf4j.Slf4j;
@@ -84,8 +84,8 @@ public void run() {
8484
for (Resource eachResource: entities) {
8585
resourceMetric = ResourceMetrics.newBuilder()
8686
.setResource(eachResource)
87-
.addInstrumentationLibraryMetrics(InstrumentationLibraryMetrics.newBuilder()
88-
.setInstrumentationLibrary(InstrumentationLibrary.newBuilder()
87+
.addScopeMetrics(ScopeMetrics.newBuilder()
88+
.setScope(InstrumentationScope.newBuilder()
8989
.setName("@opentelemetry/test-telemetry-generator")
9090
.setVersion("22.9.0")
9191
.build())

src/main/java/io/opentelemetry/contrib/generator/telemetry/traces/SpansGenerator.java

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,8 @@
2424
import io.opentelemetry.contrib.generator.telemetry.traces.dto.SpanDefinition;
2525
import com.google.protobuf.ByteString;
2626
import io.opentelemetry.proto.collector.trace.v1.ExportTraceServiceRequest;
27-
import io.opentelemetry.proto.common.v1.InstrumentationLibrary;
28-
import io.opentelemetry.proto.trace.v1.InstrumentationLibrarySpans;
29-
import io.opentelemetry.proto.trace.v1.ResourceSpans;
30-
import io.opentelemetry.proto.trace.v1.Span;
31-
import io.opentelemetry.proto.trace.v1.Status;
27+
import io.opentelemetry.proto.common.v1.InstrumentationScope;
28+
import io.opentelemetry.proto.trace.v1.*;
3229
import io.opentelemetry.sdk.trace.IdGenerator;
3330
import jakarta.el.ELProcessor;
3431
import lombok.Getter;
@@ -83,8 +80,8 @@ public ExportTraceServiceRequest getTraces() {
8380
List<Span> spans = eachSpanGroup.getValue().stream().map(list -> list.get(copyIndexFinal)).collect(Collectors.toList());
8481
resourceSpans = ResourceSpans.newBuilder()
8582
.setResource(validEntities.get(resourceIndex).getOTelResource())
86-
.addInstrumentationLibrarySpans(InstrumentationLibrarySpans.newBuilder()
87-
.setInstrumentationLibrary(InstrumentationLibrary.newBuilder()
83+
.addScopeSpans(ScopeSpans.newBuilder()
84+
.setScope(InstrumentationScope.newBuilder()
8885
.setName("@opentelemetry/test-telemetry-generator")
8986
.setVersion("22.9.0")
9087
.build())

src/test/java/io/opentelemetry/contrib/generator/telemetry/TestAllGenerators.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,9 +88,9 @@ public void validateStorageCounts() {
8888
"Mismatch in entity type counts for metric payloads");
8989
Assert.assertEquals(transportStorage.getStoredLogsPayloads().size(), 3,
9090
"Mismatch in entity type counts for log payloads");
91-
Assert.assertEquals(transportStorage.getStoredLogsPayloads().get("k8slogs").size(), 3,
91+
Assert.assertEquals(transportStorage.getStoredLogsPayloads().get("log_by_OTel_DataGen_0").size(), 3,
9292
"Mismatch in entity type counts for log payloads");
93-
Assert.assertEquals(transportStorage.getStoredLogsPayloads().get("k8slogs").get("pod").size(), 20,
93+
Assert.assertEquals(transportStorage.getStoredLogsPayloads().get("log_by_OTel_DataGen_0").get("pod").size(), 20,
9494
"Mismatch in entity type counts for log payloads");
9595
Assert.assertEquals(transportStorage.getStoredTracesPayloads().size(), 8,
9696
"Mismatch in entity type counts for trace payloads");

0 commit comments

Comments
 (0)