From 7743a2e249bfbe9b17618a802b26a3dafb6855f8 Mon Sep 17 00:00:00 2001 From: Leonardo Serrano Date: Mon, 9 Jun 2025 00:11:06 -0700 Subject: [PATCH 1/2] fix(disk-buffering): Add missing EventName to disk-buffering LogRecord data mapper --- .../mapping/logs/LogRecordDataMapper.java | 6 ++++ .../logs/models/LogRecordDataImpl.java | 6 ++++ .../mapping/logs/LogRecordDataMapperTest.java | 1 + .../mapping/logs/ProtoLogsDataMapperTest.java | 28 +++++++++++++++++++ 4 files changed, 41 insertions(+) diff --git a/disk-buffering/src/main/java/io/opentelemetry/contrib/disk/buffering/internal/serialization/mapping/logs/LogRecordDataMapper.java b/disk-buffering/src/main/java/io/opentelemetry/contrib/disk/buffering/internal/serialization/mapping/logs/LogRecordDataMapper.java index 06ff85847..e92d1b621 100644 --- a/disk-buffering/src/main/java/io/opentelemetry/contrib/disk/buffering/internal/serialization/mapping/logs/LogRecordDataMapper.java +++ b/disk-buffering/src/main/java/io/opentelemetry/contrib/disk/buffering/internal/serialization/mapping/logs/LogRecordDataMapper.java @@ -47,6 +47,9 @@ public LogRecord mapToProto(LogRecordData source) { if (source.getBodyValue() != null) { logRecord.body(bodyToAnyValue(source.getBodyValue())); } + if (source.getEventName() != null) { + logRecord.event_name(source.getEventName()); + } byte flags = source.getSpanContext().getTraceFlags().asByte(); logRecord.flags(toUnsignedInt(flags)); @@ -77,6 +80,9 @@ public LogRecordData mapToSdk( if (source.body != null) { logRecordData.setBodyValue(anyValueToBody(source.body)); } + if (source.event_name != null) { + logRecordData.setEventName(source.event_name); + } addExtrasToSdkItemBuilder(source, logRecordData, resource, scopeInfo); diff --git a/disk-buffering/src/main/java/io/opentelemetry/contrib/disk/buffering/internal/serialization/mapping/logs/models/LogRecordDataImpl.java b/disk-buffering/src/main/java/io/opentelemetry/contrib/disk/buffering/internal/serialization/mapping/logs/models/LogRecordDataImpl.java index d703919a8..2979f96fb 100644 --- a/disk-buffering/src/main/java/io/opentelemetry/contrib/disk/buffering/internal/serialization/mapping/logs/models/LogRecordDataImpl.java +++ b/disk-buffering/src/main/java/io/opentelemetry/contrib/disk/buffering/internal/serialization/mapping/logs/models/LogRecordDataImpl.java @@ -46,6 +46,10 @@ public ExtendedAttributes getExtendedAttributes() { @Nullable public abstract Value getBodyValue(); + @Override + @Nullable + public abstract String getEventName(); + @AutoValue.Builder public abstract static class Builder { public abstract Builder setResource(Resource value); @@ -68,6 +72,8 @@ public abstract static class Builder { public abstract Builder setTotalAttributeCount(Integer value); + public abstract Builder setEventName(String value); + public abstract LogRecordDataImpl build(); } } diff --git a/disk-buffering/src/test/java/io/opentelemetry/contrib/disk/buffering/internal/serialization/mapping/logs/LogRecordDataMapperTest.java b/disk-buffering/src/test/java/io/opentelemetry/contrib/disk/buffering/internal/serialization/mapping/logs/LogRecordDataMapperTest.java index 3eb588b45..0041c61bf 100644 --- a/disk-buffering/src/test/java/io/opentelemetry/contrib/disk/buffering/internal/serialization/mapping/logs/LogRecordDataMapperTest.java +++ b/disk-buffering/src/test/java/io/opentelemetry/contrib/disk/buffering/internal/serialization/mapping/logs/LogRecordDataMapperTest.java @@ -31,6 +31,7 @@ class LogRecordDataMapperTest { .setTimestampEpochNanos(100L) .setObservedTimestampEpochNanos(200L) .setTotalAttributeCount(3) + .setEventName("my.event.name") .build(); @Test diff --git a/disk-buffering/src/test/java/io/opentelemetry/contrib/disk/buffering/internal/serialization/mapping/logs/ProtoLogsDataMapperTest.java b/disk-buffering/src/test/java/io/opentelemetry/contrib/disk/buffering/internal/serialization/mapping/logs/ProtoLogsDataMapperTest.java index 45c3f6e5e..6116717f3 100644 --- a/disk-buffering/src/test/java/io/opentelemetry/contrib/disk/buffering/internal/serialization/mapping/logs/ProtoLogsDataMapperTest.java +++ b/disk-buffering/src/test/java/io/opentelemetry/contrib/disk/buffering/internal/serialization/mapping/logs/ProtoLogsDataMapperTest.java @@ -81,6 +81,21 @@ class ProtoLogsDataMapperTest { .setTotalAttributeCount(3) .build(); + private static final LogRecordData LOG_RECORD_WITH_EVENT_NAME = + LogRecordDataImpl.builder() + .setResource(TestData.RESOURCE_FULL) + .setSpanContext(TestData.SPAN_CONTEXT) + .setInstrumentationScopeInfo(TestData.INSTRUMENTATION_SCOPE_INFO_FULL) + .setAttributes(TestData.ATTRIBUTES) + .setBodyValue(Value.of("Log body")) + .setSeverity(Severity.DEBUG) + .setSeverityText("Log severity text") + .setTimestampEpochNanos(100L) + .setObservedTimestampEpochNanos(200L) + .setTotalAttributeCount(3) + .setEventName("test.event.name") + .build(); + @Test void verifyConversionDataStructure() { List signals = Collections.singletonList(LOG_RECORD); @@ -160,6 +175,19 @@ void verifyMultipleLogsWithDifferentResource() { assertThat(mapFromProto(proto)).containsExactlyInAnyOrderElementsOf(signals); } + @Test + void verifyLogWithEventName() { + List signals = Collections.singletonList(LOG_RECORD_WITH_EVENT_NAME); + + LogsData result = mapToProto(signals); + + List resourceLogsList = result.resource_logs; + LogRecord firstLog = resourceLogsList.get(0).scope_logs.get(0).log_records.get(0); + + assertEquals("test.event.name", firstLog.event_name); + assertThat(mapFromProto(result)).containsExactlyInAnyOrderElementsOf(signals); + } + private static LogsData mapToProto(Collection signals) { return ProtoLogsDataMapper.getInstance().toProto(signals); } From 3d64fc782549c950d30d71af4e9a498c65be0e81 Mon Sep 17 00:00:00 2001 From: Leonardo Serrano Date: Mon, 9 Jun 2025 00:45:59 -0700 Subject: [PATCH 2/2] fix: failing tests --- .../mapping/logs/LogRecordDataMapper.java | 10 ++++------ .../mapping/logs/ProtoLogsDataMapperTest.java | 4 ++++ .../serializers/LogRecordDataSerializerTest.java | 6 ++++-- .../internal/storage/files/ReadableFileTest.java | 3 +++ 4 files changed, 15 insertions(+), 8 deletions(-) diff --git a/disk-buffering/src/main/java/io/opentelemetry/contrib/disk/buffering/internal/serialization/mapping/logs/LogRecordDataMapper.java b/disk-buffering/src/main/java/io/opentelemetry/contrib/disk/buffering/internal/serialization/mapping/logs/LogRecordDataMapper.java index e92d1b621..d9cafa4a4 100644 --- a/disk-buffering/src/main/java/io/opentelemetry/contrib/disk/buffering/internal/serialization/mapping/logs/LogRecordDataMapper.java +++ b/disk-buffering/src/main/java/io/opentelemetry/contrib/disk/buffering/internal/serialization/mapping/logs/LogRecordDataMapper.java @@ -47,9 +47,6 @@ public LogRecord mapToProto(LogRecordData source) { if (source.getBodyValue() != null) { logRecord.body(bodyToAnyValue(source.getBodyValue())); } - if (source.getEventName() != null) { - logRecord.event_name(source.getEventName()); - } byte flags = source.getSpanContext().getTraceFlags().asByte(); logRecord.flags(toUnsignedInt(flags)); @@ -67,6 +64,9 @@ private static void addExtrasToProtoBuilder(LogRecordData source, LogRecord.Buil target.trace_id(ByteStringMapper.getInstance().stringToProto(spanContext.getTraceId())); target.dropped_attributes_count( source.getTotalAttributeCount() - source.getAttributes().size()); + if (source.getEventName() != null) { + target.event_name(source.getEventName()); + } } public LogRecordData mapToSdk( @@ -80,9 +80,6 @@ public LogRecordData mapToSdk( if (source.body != null) { logRecordData.setBodyValue(anyValueToBody(source.body)); } - if (source.event_name != null) { - logRecordData.setEventName(source.event_name); - } addExtrasToSdkItemBuilder(source, logRecordData, resource, scopeInfo); @@ -105,6 +102,7 @@ private static void addExtrasToSdkItemBuilder( target.setTotalAttributeCount(source.dropped_attributes_count + attributes.size()); target.setResource(resource); target.setInstrumentationScopeInfo(scopeInfo); + target.setEventName(source.event_name); } private static AnyValue bodyToAnyValue(Value body) { diff --git a/disk-buffering/src/test/java/io/opentelemetry/contrib/disk/buffering/internal/serialization/mapping/logs/ProtoLogsDataMapperTest.java b/disk-buffering/src/test/java/io/opentelemetry/contrib/disk/buffering/internal/serialization/mapping/logs/ProtoLogsDataMapperTest.java index 6116717f3..26c73502e 100644 --- a/disk-buffering/src/test/java/io/opentelemetry/contrib/disk/buffering/internal/serialization/mapping/logs/ProtoLogsDataMapperTest.java +++ b/disk-buffering/src/test/java/io/opentelemetry/contrib/disk/buffering/internal/serialization/mapping/logs/ProtoLogsDataMapperTest.java @@ -37,6 +37,7 @@ class ProtoLogsDataMapperTest { .setTimestampEpochNanos(100L) .setObservedTimestampEpochNanos(200L) .setTotalAttributeCount(3) + .setEventName("") .build(); private static final LogRecordData OTHER_LOG_RECORD = @@ -51,6 +52,7 @@ class ProtoLogsDataMapperTest { .setTimestampEpochNanos(100L) .setObservedTimestampEpochNanos(200L) .setTotalAttributeCount(3) + .setEventName("") .build(); private static final LogRecordData LOG_RECORD_WITH_DIFFERENT_SCOPE_SAME_RESOURCE = @@ -65,6 +67,7 @@ class ProtoLogsDataMapperTest { .setTimestampEpochNanos(100L) .setObservedTimestampEpochNanos(200L) .setTotalAttributeCount(3) + .setEventName("") .build(); private static final LogRecordData LOG_RECORD_WITH_DIFFERENT_RESOURCE = @@ -79,6 +82,7 @@ class ProtoLogsDataMapperTest { .setTimestampEpochNanos(100L) .setObservedTimestampEpochNanos(200L) .setTotalAttributeCount(3) + .setEventName("") .build(); private static final LogRecordData LOG_RECORD_WITH_EVENT_NAME = diff --git a/disk-buffering/src/test/java/io/opentelemetry/contrib/disk/buffering/internal/serialization/serializers/LogRecordDataSerializerTest.java b/disk-buffering/src/test/java/io/opentelemetry/contrib/disk/buffering/internal/serialization/serializers/LogRecordDataSerializerTest.java index 1b52bb219..ec3212001 100644 --- a/disk-buffering/src/test/java/io/opentelemetry/contrib/disk/buffering/internal/serialization/serializers/LogRecordDataSerializerTest.java +++ b/disk-buffering/src/test/java/io/opentelemetry/contrib/disk/buffering/internal/serialization/serializers/LogRecordDataSerializerTest.java @@ -28,9 +28,10 @@ class LogRecordDataSerializerTest extends BaseSignalSerializerTest