From c6434bb83e99e83706c8b26b8bbed49dbee2bd5b Mon Sep 17 00:00:00 2001 From: juliuskoval Date: Wed, 4 Jun 2025 07:45:46 +0200 Subject: [PATCH 1/9] adding EventName property to LogRecord --- .../Experimental/PublicAPI.Unshipped.txt | 2 + src/OpenTelemetry.Api/Logs/LogRecordData.cs | 5 +++ .../ProtobufOtlpLogFieldNumberConstants.cs | 1 + .../Serializer/ProtobufOtlpLogSerializer.cs | 5 +++ .../.publicApi/Stable/PublicAPI.Unshipped.txt | 2 + src/OpenTelemetry/Logs/LogRecord.cs | 9 ++++ src/OpenTelemetry/Logs/LoggerSdk.cs | 2 + .../opentelemetry/proto/logs/v1/logs.proto | 4 +- .../OtlpLogExporterTests.cs | 45 +++++++++++++++++++ 9 files changed, 72 insertions(+), 3 deletions(-) diff --git a/src/OpenTelemetry.Api/.publicApi/Experimental/PublicAPI.Unshipped.txt b/src/OpenTelemetry.Api/.publicApi/Experimental/PublicAPI.Unshipped.txt index 4cb12fd2969..2f8afbe6f1b 100644 --- a/src/OpenTelemetry.Api/.publicApi/Experimental/PublicAPI.Unshipped.txt +++ b/src/OpenTelemetry.Api/.publicApi/Experimental/PublicAPI.Unshipped.txt @@ -41,6 +41,8 @@ OpenTelemetry.Logs.LogRecordData.TraceFlags.get -> System.Diagnostics.ActivityTr OpenTelemetry.Logs.LogRecordData.TraceFlags.set -> void OpenTelemetry.Logs.LogRecordData.TraceId.get -> System.Diagnostics.ActivityTraceId OpenTelemetry.Logs.LogRecordData.TraceId.set -> void +OpenTelemetry.Logs.LogRecordData.EventName.get -> string? +OpenTelemetry.Logs.LogRecordData.EventName.set -> void OpenTelemetry.Logs.LogRecordSeverity OpenTelemetry.Logs.LogRecordSeverity.Debug = 5 -> OpenTelemetry.Logs.LogRecordSeverity OpenTelemetry.Logs.LogRecordSeverity.Debug2 = 6 -> OpenTelemetry.Logs.LogRecordSeverity diff --git a/src/OpenTelemetry.Api/Logs/LogRecordData.cs b/src/OpenTelemetry.Api/Logs/LogRecordData.cs index 456ee74264b..ec79c24a5c5 100644 --- a/src/OpenTelemetry.Api/Logs/LogRecordData.cs +++ b/src/OpenTelemetry.Api/Logs/LogRecordData.cs @@ -125,6 +125,11 @@ public DateTime Timestamp /// public string? Body { get; set; } = null; + /// + /// Gets or sets the name of the event associated with the log. + /// + public string? EventName { get; set; } = null; + internal static void SetActivityContext(ref LogRecordData data, Activity? activity) { if (activity != null) diff --git a/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/Implementation/Serializer/ProtobufOtlpLogFieldNumberConstants.cs b/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/Implementation/Serializer/ProtobufOtlpLogFieldNumberConstants.cs index f7c97f6e222..c5238b2fa6b 100644 --- a/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/Implementation/Serializer/ProtobufOtlpLogFieldNumberConstants.cs +++ b/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/Implementation/Serializer/ProtobufOtlpLogFieldNumberConstants.cs @@ -36,6 +36,7 @@ internal static class ProtobufOtlpLogFieldNumberConstants internal const int LogRecord_Flags = 8; internal const int LogRecord_Trace_Id = 9; internal const int LogRecord_Span_Id = 10; + internal const int LogRecord_Event_Name = 12; // SeverityNumber internal const int Severity_Number_Unspecified = 0; diff --git a/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/Implementation/Serializer/ProtobufOtlpLogSerializer.cs b/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/Implementation/Serializer/ProtobufOtlpLogSerializer.cs index 5e70bfe29df..ee462701b4d 100644 --- a/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/Implementation/Serializer/ProtobufOtlpLogSerializer.cs +++ b/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/Implementation/Serializer/ProtobufOtlpLogSerializer.cs @@ -254,6 +254,11 @@ internal static int WriteLogRecord(byte[] buffer, int writePosition, SdkLimitOpt otlpTagWriterState.WritePosition = ProtobufSerializer.WriteFixed32WithTag(otlpTagWriterState.Buffer, otlpTagWriterState.WritePosition, ProtobufOtlpLogFieldNumberConstants.LogRecord_Flags, (uint)logRecord.TraceFlags); } + if (logRecord.EventName != null) + { + otlpTagWriterState.WritePosition = ProtobufSerializer.WriteStringWithTag(otlpTagWriterState.Buffer, otlpTagWriterState.WritePosition, ProtobufOtlpLogFieldNumberConstants.LogRecord_Event_Name, logRecord.EventName!); + } + logRecord.ForEachScope(ProcessScope, state); if (otlpTagWriterState.DroppedTagCount > 0) diff --git a/src/OpenTelemetry/.publicApi/Stable/PublicAPI.Unshipped.txt b/src/OpenTelemetry/.publicApi/Stable/PublicAPI.Unshipped.txt index e69de29bb2d..147a4fee885 100644 --- a/src/OpenTelemetry/.publicApi/Stable/PublicAPI.Unshipped.txt +++ b/src/OpenTelemetry/.publicApi/Stable/PublicAPI.Unshipped.txt @@ -0,0 +1,2 @@ +OpenTelemetry.Logs.LogRecord.EventName.get -> string? +OpenTelemetry.Logs.LogRecord.EventName.set -> void \ No newline at end of file diff --git a/src/OpenTelemetry/Logs/LogRecord.cs b/src/OpenTelemetry/Logs/LogRecord.cs index 52025e2120d..ec0e1b5516e 100644 --- a/src/OpenTelemetry/Logs/LogRecord.cs +++ b/src/OpenTelemetry/Logs/LogRecord.cs @@ -254,6 +254,15 @@ public string? Body set => this.Data.Body = value; } + /// + /// Gets or sets the name of the event associated with the log. + /// + public string? EventName + { + get => this.ILoggerData.EventId.Name; + set => this.ILoggerData.EventId = new EventId(this.ILoggerData.EventId.Id, value); + } + /// /// Gets or sets the raw state attached to the log. /// diff --git a/src/OpenTelemetry/Logs/LoggerSdk.cs b/src/OpenTelemetry/Logs/LoggerSdk.cs index a0bc47300d0..ba4fab3aba7 100644 --- a/src/OpenTelemetry/Logs/LoggerSdk.cs +++ b/src/OpenTelemetry/Logs/LoggerSdk.cs @@ -1,6 +1,7 @@ // Copyright The OpenTelemetry Authors // SPDX-License-Identifier: Apache-2.0 +using Microsoft.Extensions.Logging; using OpenTelemetry.Internal; namespace OpenTelemetry.Logs; @@ -35,6 +36,7 @@ public override void EmitLog(in LogRecordData data, in LogRecordAttributeList at logRecord.Data = data; logRecord.ILoggerData = default; + logRecord.ILoggerData.EventId = new EventId(0, data.EventName); logRecord.Logger = this; diff --git a/src/Shared/Proto/opentelemetry/proto/logs/v1/logs.proto b/src/Shared/Proto/opentelemetry/proto/logs/v1/logs.proto index 261d22916b9..5ce16fa0f86 100644 --- a/src/Shared/Proto/opentelemetry/proto/logs/v1/logs.proto +++ b/src/Shared/Proto/opentelemetry/proto/logs/v1/logs.proto @@ -221,7 +221,5 @@ message LogRecord { // as an event. // // [Optional]. - // - // Status: [Development] string event_name = 12; -} +} \ No newline at end of file diff --git a/test/OpenTelemetry.Exporter.OpenTelemetryProtocol.Tests/OtlpLogExporterTests.cs b/test/OpenTelemetry.Exporter.OpenTelemetryProtocol.Tests/OtlpLogExporterTests.cs index 63665772524..8d11df2560a 100644 --- a/test/OpenTelemetry.Exporter.OpenTelemetryProtocol.Tests/OtlpLogExporterTests.cs +++ b/test/OpenTelemetry.Exporter.OpenTelemetryProtocol.Tests/OtlpLogExporterTests.cs @@ -342,6 +342,8 @@ public void CheckToOtlpLogRecordEventId(string? emitLogEventAttributes) Assert.NotNull(otlpLogRecord); Assert.Equal("Hello from tomato 2.99.", otlpLogRecord.Body.StringValue); + Assert.Equal("MyEvent10", otlpLogRecord.EventName); + // Event otlpLogRecordAttributes = otlpLogRecord.Attributes.ToString(); if (emitLogEventAttributes == "true") @@ -1478,6 +1480,49 @@ public void LogRecordLoggerNameIsExportedWhenUsingBridgeApi(string? loggerName, Assert.Equal(expectedScopeName, request.ResourceLogs[0].ScopeLogs[0].Scope?.Name); } + [Theory] + [InlineData(true)] + [InlineData(false)] + public void LogRecordEventNameIsExportedWhenUsingBridgeApi(bool emitEventName) + { + LogRecordAttributeList attributes = default; + attributes.Add("name", "tomato"); + attributes.Add("price", 2.99); + attributes.Add("{OriginalFormat}", "Hello from {name} {price}."); + + var logRecords = new List(); + + using (var loggerProvider = Sdk.CreateLoggerProviderBuilder() + .AddInMemoryExporter(logRecords) + .Build()) + { + var logger = loggerProvider.GetLogger(); + + logger.EmitLog(new LogRecordData + { + Body = "test body", + EventName = emitEventName ? "test event" : null, + }); + } + + Assert.Single(logRecords); + var logRecord = logRecords[0]; + + OtlpLogs.LogRecord? otlpLogRecord = ToOtlpLogs(DefaultSdkLimitOptions, new ExperimentalOptions(), logRecord); + + Assert.NotNull(otlpLogRecord); + Assert.Equal("test body", otlpLogRecord.Body.StringValue); + + if (!emitEventName) + { + Assert.Empty(otlpLogRecord.EventName); + } + else + { + Assert.Equal("test event", otlpLogRecord.EventName); + } + } + [Fact] public void LogSerialization_ExpandsBufferForLogsAndSerializes() { From b27aa04f06e3d6f7cb5176908686b280dc490a18 Mon Sep 17 00:00:00 2001 From: juliuskoval Date: Thu, 5 Jun 2025 06:53:26 +0200 Subject: [PATCH 2/9] removing event attribute --- .../Implementation/ExperimentalOptions.cs | 2 -- .../Implementation/Serializer/ProtobufOtlpLogSerializer.cs | 5 ----- .../OtlpLogExporterTests.cs | 3 --- 3 files changed, 10 deletions(-) diff --git a/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/Implementation/ExperimentalOptions.cs b/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/Implementation/ExperimentalOptions.cs index 86c180ff377..0470b2d8a23 100644 --- a/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/Implementation/ExperimentalOptions.cs +++ b/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/Implementation/ExperimentalOptions.cs @@ -9,8 +9,6 @@ internal sealed class ExperimentalOptions { public const string LogRecordEventIdAttribute = "logrecord.event.id"; - public const string LogRecordEventNameAttribute = "logrecord.event.name"; - public const string EmitLogEventEnvVar = "OTEL_DOTNET_EXPERIMENTAL_OTLP_EMIT_EVENT_LOG_ATTRIBUTES"; public const string OtlpRetryEnvVar = "OTEL_DOTNET_EXPERIMENTAL_OTLP_RETRY"; diff --git a/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/Implementation/Serializer/ProtobufOtlpLogSerializer.cs b/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/Implementation/Serializer/ProtobufOtlpLogSerializer.cs index ee462701b4d..f10e5b0d6ba 100644 --- a/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/Implementation/Serializer/ProtobufOtlpLogSerializer.cs +++ b/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/Implementation/Serializer/ProtobufOtlpLogSerializer.cs @@ -192,11 +192,6 @@ internal static int WriteLogRecord(byte[] buffer, int writePosition, SdkLimitOpt { AddLogAttribute(state, ExperimentalOptions.LogRecordEventIdAttribute, logRecord.EventId.Id); } - - if (!string.IsNullOrEmpty(logRecord.EventId.Name)) - { - AddLogAttribute(state, ExperimentalOptions.LogRecordEventNameAttribute, logRecord.EventId.Name!); - } } if (logRecord.Exception != null) diff --git a/test/OpenTelemetry.Exporter.OpenTelemetryProtocol.Tests/OtlpLogExporterTests.cs b/test/OpenTelemetry.Exporter.OpenTelemetryProtocol.Tests/OtlpLogExporterTests.cs index 8d11df2560a..c6f7f32f6d0 100644 --- a/test/OpenTelemetry.Exporter.OpenTelemetryProtocol.Tests/OtlpLogExporterTests.cs +++ b/test/OpenTelemetry.Exporter.OpenTelemetryProtocol.Tests/OtlpLogExporterTests.cs @@ -350,13 +350,10 @@ public void CheckToOtlpLogRecordEventId(string? emitLogEventAttributes) { Assert.Contains(ExperimentalOptions.LogRecordEventIdAttribute, otlpLogRecordAttributes, StringComparison.Ordinal); Assert.Contains("10", otlpLogRecordAttributes, StringComparison.Ordinal); - Assert.Contains(ExperimentalOptions.LogRecordEventNameAttribute, otlpLogRecordAttributes, StringComparison.Ordinal); - Assert.Contains("MyEvent10", otlpLogRecordAttributes, StringComparison.Ordinal); } else { Assert.DoesNotContain(ExperimentalOptions.LogRecordEventIdAttribute, otlpLogRecordAttributes, StringComparison.Ordinal); - Assert.DoesNotContain(ExperimentalOptions.LogRecordEventNameAttribute, otlpLogRecordAttributes, StringComparison.Ordinal); } } From df7575c55999eea75361b8175d0a5b68043518bb Mon Sep 17 00:00:00 2001 From: juliuskoval Date: Thu, 5 Jun 2025 07:11:11 +0200 Subject: [PATCH 3/9] editing changelogs --- src/OpenTelemetry.Api/CHANGELOG.md | 2 ++ src/OpenTelemetry.Exporter.OpenTelemetryProtocol/CHANGELOG.md | 3 +++ src/OpenTelemetry/CHANGELOG.md | 2 ++ 3 files changed, 7 insertions(+) diff --git a/src/OpenTelemetry.Api/CHANGELOG.md b/src/OpenTelemetry.Api/CHANGELOG.md index e489c537da0..ca889390ddd 100644 --- a/src/OpenTelemetry.Api/CHANGELOG.md +++ b/src/OpenTelemetry.Api/CHANGELOG.md @@ -6,6 +6,8 @@ Notes](../../RELEASENOTES.md). ## Unreleased +* Added the `EventName` property to `LogRecordData` ([#6306](https://github.com/open-telemetry/opentelemetry-dotnet/pull/6306)) + * Added `AddLink(SpanContext, SpanAttributes?)` to `TelemetrySpan` to support linking spans and associating optional attributes for advanced trace relationships. ([#6305](https://github.com/open-telemetry/opentelemetry-dotnet/pull/6305)) diff --git a/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/CHANGELOG.md b/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/CHANGELOG.md index dca3a07f76b..90468afbb74 100644 --- a/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/CHANGELOG.md +++ b/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/CHANGELOG.md @@ -12,6 +12,9 @@ Notes](../../RELEASENOTES.md). write position, resulting in gRPC protocol errors. ([#6280](https://github.com/open-telemetry/opentelemetry-dotnet/pull/6280)) +* **Breaking change**: If `EventName` is specified either through `ILogger` or the log bridge API, + it is exported as `EventName` instead of `logrecord.event.name`. + ## 1.12.0 Released 2025-Apr-29 diff --git a/src/OpenTelemetry/CHANGELOG.md b/src/OpenTelemetry/CHANGELOG.md index 9f6bf0633d6..227a45cfb03 100644 --- a/src/OpenTelemetry/CHANGELOG.md +++ b/src/OpenTelemetry/CHANGELOG.md @@ -6,6 +6,8 @@ Notes](../../RELEASENOTES.md). ## Unreleased +* Added the `EventName` property to `LogRecord`. ([#6306](https://github.com/open-telemetry/opentelemetry-dotnet/pull/6306)) + ## 1.12.0 Released 2025-Apr-29 From 0e9c4017e0667e9a9b0a50b4f10528653b4e96cc Mon Sep 17 00:00:00 2001 From: juliuskoval Date: Thu, 5 Jun 2025 07:24:13 +0200 Subject: [PATCH 4/9] fix --- .../CHANGELOG.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/CHANGELOG.md b/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/CHANGELOG.md index 90468afbb74..a07460a82a5 100644 --- a/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/CHANGELOG.md +++ b/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/CHANGELOG.md @@ -12,8 +12,9 @@ Notes](../../RELEASENOTES.md). write position, resulting in gRPC protocol errors. ([#6280](https://github.com/open-telemetry/opentelemetry-dotnet/pull/6280)) -* **Breaking change**: If `EventName` is specified either through `ILogger` or the log bridge API, - it is exported as `EventName` instead of `logrecord.event.name`. +* **Breaking change**: If `EventName` is specified either through `ILogger` + or the log bridge API, it is exported as `EventName` instead of + `logrecord.event.name`. ## 1.12.0 From 87c3e1a32b4683a36418f69d60601bd28935c47a Mon Sep 17 00:00:00 2001 From: juliuskoval Date: Thu, 5 Jun 2025 21:25:10 +0200 Subject: [PATCH 5/9] fix --- src/OpenTelemetry.Api/CHANGELOG.md | 3 ++- .../CHANGELOG.md | 9 ++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/OpenTelemetry.Api/CHANGELOG.md b/src/OpenTelemetry.Api/CHANGELOG.md index ca889390ddd..0b8b1ea92db 100644 --- a/src/OpenTelemetry.Api/CHANGELOG.md +++ b/src/OpenTelemetry.Api/CHANGELOG.md @@ -6,7 +6,8 @@ Notes](../../RELEASENOTES.md). ## Unreleased -* Added the `EventName` property to `LogRecordData` ([#6306](https://github.com/open-telemetry/opentelemetry-dotnet/pull/6306)) +* Experimental (only in pre-release versions): Added the `EventName` property to `LogRecordData` + ([#6306](https://github.com/open-telemetry/opentelemetry-dotnet/pull/6306)) * Added `AddLink(SpanContext, SpanAttributes?)` to `TelemetrySpan` to support linking spans and associating optional attributes for advanced trace relationships. diff --git a/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/CHANGELOG.md b/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/CHANGELOG.md index a07460a82a5..1d70664a292 100644 --- a/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/CHANGELOG.md +++ b/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/CHANGELOG.md @@ -12,9 +12,12 @@ Notes](../../RELEASENOTES.md). write position, resulting in gRPC protocol errors. ([#6280](https://github.com/open-telemetry/opentelemetry-dotnet/pull/6280)) -* **Breaking change**: If `EventName` is specified either through `ILogger` - or the log bridge API, it is exported as `EventName` instead of - `logrecord.event.name`. +* If `EventName` is specified either through `ILogger` or the experimental + log bridge API, it is exported as `EventName` by default instead of + `logrecord.event.name` which was previously behind the + `OTEL_DOTNET_EXPERIMENTAL_OTLP_EMIT_EVENT_LOG_ATTRIBUTES` feature flag. + Note that exporting `logrecord.even.id` is still behind that same feature + flag. ([#6306](https://github.com/open-telemetry/opentelemetry-dotnet/pull/6306)) ## 1.12.0 From 8df756a698e3ebf835e10e5dfdf2c5dce6d41110 Mon Sep 17 00:00:00 2001 From: juliuskoval Date: Thu, 5 Jun 2025 21:26:46 +0200 Subject: [PATCH 6/9] fix --- src/OpenTelemetry.Api/CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/OpenTelemetry.Api/CHANGELOG.md b/src/OpenTelemetry.Api/CHANGELOG.md index 0b8b1ea92db..8a42e13c902 100644 --- a/src/OpenTelemetry.Api/CHANGELOG.md +++ b/src/OpenTelemetry.Api/CHANGELOG.md @@ -6,7 +6,8 @@ Notes](../../RELEASENOTES.md). ## Unreleased -* Experimental (only in pre-release versions): Added the `EventName` property to `LogRecordData` +* Experimental (only in pre-release versions): Added the `EventName` property + to `LogRecordData` ([#6306](https://github.com/open-telemetry/opentelemetry-dotnet/pull/6306)) * Added `AddLink(SpanContext, SpanAttributes?)` to `TelemetrySpan` to support From 4267ca3ee43d5988779745c14ed50244c73e2905 Mon Sep 17 00:00:00 2001 From: juliuskoval Date: Thu, 5 Jun 2025 22:20:50 +0200 Subject: [PATCH 7/9] fix typo --- src/OpenTelemetry.Exporter.OpenTelemetryProtocol/CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/CHANGELOG.md b/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/CHANGELOG.md index 1d70664a292..2f42b44940f 100644 --- a/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/CHANGELOG.md +++ b/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/CHANGELOG.md @@ -16,7 +16,7 @@ Notes](../../RELEASENOTES.md). log bridge API, it is exported as `EventName` by default instead of `logrecord.event.name` which was previously behind the `OTEL_DOTNET_EXPERIMENTAL_OTLP_EMIT_EVENT_LOG_ATTRIBUTES` feature flag. - Note that exporting `logrecord.even.id` is still behind that same feature + Note that exporting `logrecord.event.id` is still behind that same feature flag. ([#6306](https://github.com/open-telemetry/opentelemetry-dotnet/pull/6306)) ## 1.12.0 From e23c3912168b619389f3845ed772d4fb76b1c16d Mon Sep 17 00:00:00 2001 From: juliuskoval Date: Wed, 11 Jun 2025 21:09:16 +0200 Subject: [PATCH 8/9] fixes --- src/OpenTelemetry.Api/CHANGELOG.md | 8 ++++---- .../Serializer/ProtobufOtlpLogSerializer.cs | 4 ++-- .../.publicApi/Stable/PublicAPI.Unshipped.txt | 2 -- src/OpenTelemetry/Logs/LogRecord.cs | 9 --------- src/OpenTelemetry/Logs/LoggerSdk.cs | 2 +- 5 files changed, 7 insertions(+), 18 deletions(-) diff --git a/src/OpenTelemetry.Api/CHANGELOG.md b/src/OpenTelemetry.Api/CHANGELOG.md index 8a42e13c902..7b945a53b73 100644 --- a/src/OpenTelemetry.Api/CHANGELOG.md +++ b/src/OpenTelemetry.Api/CHANGELOG.md @@ -6,14 +6,14 @@ Notes](../../RELEASENOTES.md). ## Unreleased -* Experimental (only in pre-release versions): Added the `EventName` property - to `LogRecordData` - ([#6306](https://github.com/open-telemetry/opentelemetry-dotnet/pull/6306)) - * Added `AddLink(SpanContext, SpanAttributes?)` to `TelemetrySpan` to support linking spans and associating optional attributes for advanced trace relationships. ([#6305](https://github.com/open-telemetry/opentelemetry-dotnet/pull/6305)) +* Experimental (only in pre-release versions): Added the `EventName` property + to `LogRecordData` + ([#6306](https://github.com/open-telemetry/opentelemetry-dotnet/pull/6306)) + ## 1.12.0 Released 2025-Apr-29 diff --git a/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/Implementation/Serializer/ProtobufOtlpLogSerializer.cs b/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/Implementation/Serializer/ProtobufOtlpLogSerializer.cs index f10e5b0d6ba..0210070c560 100644 --- a/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/Implementation/Serializer/ProtobufOtlpLogSerializer.cs +++ b/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/Implementation/Serializer/ProtobufOtlpLogSerializer.cs @@ -249,9 +249,9 @@ internal static int WriteLogRecord(byte[] buffer, int writePosition, SdkLimitOpt otlpTagWriterState.WritePosition = ProtobufSerializer.WriteFixed32WithTag(otlpTagWriterState.Buffer, otlpTagWriterState.WritePosition, ProtobufOtlpLogFieldNumberConstants.LogRecord_Flags, (uint)logRecord.TraceFlags); } - if (logRecord.EventName != null) + if (logRecord.EventId.Name != null) { - otlpTagWriterState.WritePosition = ProtobufSerializer.WriteStringWithTag(otlpTagWriterState.Buffer, otlpTagWriterState.WritePosition, ProtobufOtlpLogFieldNumberConstants.LogRecord_Event_Name, logRecord.EventName!); + otlpTagWriterState.WritePosition = ProtobufSerializer.WriteStringWithTag(otlpTagWriterState.Buffer, otlpTagWriterState.WritePosition, ProtobufOtlpLogFieldNumberConstants.LogRecord_Event_Name, logRecord.EventId.Name!); } logRecord.ForEachScope(ProcessScope, state); diff --git a/src/OpenTelemetry/.publicApi/Stable/PublicAPI.Unshipped.txt b/src/OpenTelemetry/.publicApi/Stable/PublicAPI.Unshipped.txt index 147a4fee885..e69de29bb2d 100644 --- a/src/OpenTelemetry/.publicApi/Stable/PublicAPI.Unshipped.txt +++ b/src/OpenTelemetry/.publicApi/Stable/PublicAPI.Unshipped.txt @@ -1,2 +0,0 @@ -OpenTelemetry.Logs.LogRecord.EventName.get -> string? -OpenTelemetry.Logs.LogRecord.EventName.set -> void \ No newline at end of file diff --git a/src/OpenTelemetry/Logs/LogRecord.cs b/src/OpenTelemetry/Logs/LogRecord.cs index ec0e1b5516e..52025e2120d 100644 --- a/src/OpenTelemetry/Logs/LogRecord.cs +++ b/src/OpenTelemetry/Logs/LogRecord.cs @@ -254,15 +254,6 @@ public string? Body set => this.Data.Body = value; } - /// - /// Gets or sets the name of the event associated with the log. - /// - public string? EventName - { - get => this.ILoggerData.EventId.Name; - set => this.ILoggerData.EventId = new EventId(this.ILoggerData.EventId.Id, value); - } - /// /// Gets or sets the raw state attached to the log. /// diff --git a/src/OpenTelemetry/Logs/LoggerSdk.cs b/src/OpenTelemetry/Logs/LoggerSdk.cs index ba4fab3aba7..19a38cf72bb 100644 --- a/src/OpenTelemetry/Logs/LoggerSdk.cs +++ b/src/OpenTelemetry/Logs/LoggerSdk.cs @@ -36,7 +36,7 @@ public override void EmitLog(in LogRecordData data, in LogRecordAttributeList at logRecord.Data = data; logRecord.ILoggerData = default; - logRecord.ILoggerData.EventId = new EventId(0, data.EventName); + logRecord.ILoggerData.EventId = new EventId(default, data.EventName); logRecord.Logger = this; From 5d5da56dd65568855466a6d4fa4f0acb75d90ba8 Mon Sep 17 00:00:00 2001 From: Alan West <3676547+alanwest@users.noreply.github.com> Date: Thu, 26 Jun 2025 12:21:24 -0700 Subject: [PATCH 9/9] Update src/OpenTelemetry/CHANGELOG.md --- src/OpenTelemetry/CHANGELOG.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/OpenTelemetry/CHANGELOG.md b/src/OpenTelemetry/CHANGELOG.md index 227a45cfb03..9f6bf0633d6 100644 --- a/src/OpenTelemetry/CHANGELOG.md +++ b/src/OpenTelemetry/CHANGELOG.md @@ -6,8 +6,6 @@ Notes](../../RELEASENOTES.md). ## Unreleased -* Added the `EventName` property to `LogRecord`. ([#6306](https://github.com/open-telemetry/opentelemetry-dotnet/pull/6306)) - ## 1.12.0 Released 2025-Apr-29