diff --git a/eng/Packages.Data.props b/eng/Packages.Data.props index c262a42834134..419892743cd8c 100644 --- a/eng/Packages.Data.props +++ b/eng/Packages.Data.props @@ -120,12 +120,12 @@ - - - - - - + + + + + + @@ -266,7 +266,7 @@ - + diff --git a/sdk/monitor/Azure.Monitor.OpenTelemetry.AspNetCore/CHANGELOG.md b/sdk/monitor/Azure.Monitor.OpenTelemetry.AspNetCore/CHANGELOG.md index 511aa0dedfbe6..b125005a4433b 100644 --- a/sdk/monitor/Azure.Monitor.OpenTelemetry.AspNetCore/CHANGELOG.md +++ b/sdk/monitor/Azure.Monitor.OpenTelemetry.AspNetCore/CHANGELOG.md @@ -13,6 +13,14 @@ ### Other Changes +* Update OpenTelemetry dependencies + ([#36859](https://github.com/Azure/azure-sdk-for-net/pull/36859)) + - OpenTelemetry 1.5.0 + - OpenTelemetry.Extensions.Hosting 1.5.0 + - OpenTelemetry.Instrumentation.AspNetCore 1.5.0-beta.1 + - OpenTelemetry.Instrumentation.Http 1.5.0-beta.1 + - OpenTelemetry.Instrumentation.SqlClient 1.5.0-beta.1 + * Removed reference to `OpenTelemetry.Extensions.AzureMonitor`. ([#36972](https://github.com/Azure/azure-sdk-for-net/pull/36972)) diff --git a/sdk/monitor/Azure.Monitor.OpenTelemetry.AspNetCore/src/OpenTelemetryBuilderExtensions.cs b/sdk/monitor/Azure.Monitor.OpenTelemetry.AspNetCore/src/OpenTelemetryBuilderExtensions.cs index a02ee32a59abf..cf854abcdb1f7 100644 --- a/sdk/monitor/Azure.Monitor.OpenTelemetry.AspNetCore/src/OpenTelemetryBuilderExtensions.cs +++ b/sdk/monitor/Azure.Monitor.OpenTelemetry.AspNetCore/src/OpenTelemetryBuilderExtensions.cs @@ -105,7 +105,6 @@ public static OpenTelemetryBuilder UseAzureMonitor(this OpenTelemetryBuilder bui logging.AddOpenTelemetry(builderOptions => { builderOptions.IncludeFormattedMessage = true; - builderOptions.ParseStateValues = true; builderOptions.IncludeScopes = false; }); }); diff --git a/sdk/monitor/Azure.Monitor.OpenTelemetry.Exporter/CHANGELOG.md b/sdk/monitor/Azure.Monitor.OpenTelemetry.Exporter/CHANGELOG.md index c874bd125c696..dec7587d3abfb 100644 --- a/sdk/monitor/Azure.Monitor.OpenTelemetry.Exporter/CHANGELOG.md +++ b/sdk/monitor/Azure.Monitor.OpenTelemetry.Exporter/CHANGELOG.md @@ -13,6 +13,9 @@ ### Other Changes +* Update OpenTelemetry dependencies + ([#36859](https://github.com/Azure/azure-sdk-for-net/pull/36859)) + - OpenTelemetry 1.5.0 * Remove metric namespace mapping. ([#36968](https://github.com/Azure/azure-sdk-for-net/pull/36968)) diff --git a/sdk/monitor/Azure.Monitor.OpenTelemetry.Exporter/src/AzureMonitorExporterLoggingExtensions.cs b/sdk/monitor/Azure.Monitor.OpenTelemetry.Exporter/src/AzureMonitorExporterLoggingExtensions.cs index 774994b1c523c..7767c9e04d827 100644 --- a/sdk/monitor/Azure.Monitor.OpenTelemetry.Exporter/src/AzureMonitorExporterLoggingExtensions.cs +++ b/sdk/monitor/Azure.Monitor.OpenTelemetry.Exporter/src/AzureMonitorExporterLoggingExtensions.cs @@ -31,10 +31,6 @@ public static OpenTelemetryLoggerOptions AddAzureMonitorLogExporter(this OpenTel throw new ArgumentNullException(nameof(loggerOptions)); } - // Ideally user should set this to true - // but if they miss we may have an issue of missing state values which gets converted to custom dimensions. - loggerOptions.ParseStateValues = true; - var options = new AzureMonitorExporterOptions(); configure?.Invoke(options); diff --git a/sdk/monitor/Azure.Monitor.OpenTelemetry.Exporter/src/Internals/LogsHelper.cs b/sdk/monitor/Azure.Monitor.OpenTelemetry.Exporter/src/Internals/LogsHelper.cs index e17c32c989dd1..00c16c027c83d 100644 --- a/sdk/monitor/Azure.Monitor.OpenTelemetry.Exporter/src/Internals/LogsHelper.cs +++ b/sdk/monitor/Azure.Monitor.OpenTelemetry.Exporter/src/Internals/LogsHelper.cs @@ -66,9 +66,9 @@ internal static List OtelToAzureMonitorLogs(Batch batc { string? message = logRecord.Exception?.Message ?? logRecord.FormattedMessage; - if (logRecord.StateValues != null) + if (logRecord.Attributes != null) { - ExtractProperties(ref message, properties, logRecord.StateValues); + ExtractProperties(ref message, properties, logRecord.Attributes); } WriteScopeInformation(logRecord, properties); diff --git a/sdk/monitor/Azure.Monitor.OpenTelemetry.Exporter/tests/Azure.Monitor.OpenTelemetry.Exporter.Tests/E2ETelemetryItemValidation/LogsTests.cs b/sdk/monitor/Azure.Monitor.OpenTelemetry.Exporter/tests/Azure.Monitor.OpenTelemetry.Exporter.Tests/E2ETelemetryItemValidation/LogsTests.cs index 66f859d49465f..a292b801ed8ac 100644 --- a/sdk/monitor/Azure.Monitor.OpenTelemetry.Exporter/tests/Azure.Monitor.OpenTelemetry.Exporter.Tests/E2ETelemetryItemValidation/LogsTests.cs +++ b/sdk/monitor/Azure.Monitor.OpenTelemetry.Exporter/tests/Azure.Monitor.OpenTelemetry.Exporter.Tests/E2ETelemetryItemValidation/LogsTests.cs @@ -48,7 +48,6 @@ public void VerifyLog(LogLevel logLevel, string expectedSeverityLevel) .AddFilter(logCategoryName, logLevel) .AddOpenTelemetry(options => { - options.ParseStateValues = true; options.AddAzureMonitorLogExporterForTest(out telemetryItems); }); }); diff --git a/sdk/monitor/Azure.Monitor.OpenTelemetry.Exporter/tests/Azure.Monitor.OpenTelemetry.Exporter.Tests/E2ETelemetryItemValidation/TracesTests.cs b/sdk/monitor/Azure.Monitor.OpenTelemetry.Exporter/tests/Azure.Monitor.OpenTelemetry.Exporter.Tests/E2ETelemetryItemValidation/TracesTests.cs index 74a28bb4703dd..6738be273539d 100644 --- a/sdk/monitor/Azure.Monitor.OpenTelemetry.Exporter/tests/Azure.Monitor.OpenTelemetry.Exporter.Tests/E2ETelemetryItemValidation/TracesTests.cs +++ b/sdk/monitor/Azure.Monitor.OpenTelemetry.Exporter/tests/Azure.Monitor.OpenTelemetry.Exporter.Tests/E2ETelemetryItemValidation/TracesTests.cs @@ -220,7 +220,6 @@ public void VerifyLogWithinActivity(LogLevel logLevel, string expectedSeverityLe .AddFilter(logCategoryName, logLevel) .AddOpenTelemetry(options => { - options.ParseStateValues = true; options.AddAzureMonitorLogExporterForTest(out logTelemetryItems); }); }); diff --git a/sdk/monitor/Azure.Monitor.OpenTelemetry.Exporter/tests/Azure.Monitor.OpenTelemetry.Exporter.Tests/LogsHelperTests.cs b/sdk/monitor/Azure.Monitor.OpenTelemetry.Exporter/tests/Azure.Monitor.OpenTelemetry.Exporter.Tests/LogsHelperTests.cs index 32342586f8606..99a931fb7507e 100644 --- a/sdk/monitor/Azure.Monitor.OpenTelemetry.Exporter/tests/Azure.Monitor.OpenTelemetry.Exporter.Tests/LogsHelperTests.cs +++ b/sdk/monitor/Azure.Monitor.OpenTelemetry.Exporter/tests/Azure.Monitor.OpenTelemetry.Exporter.Tests/LogsHelperTests.cs @@ -24,6 +24,9 @@ public class LogsHelperTests [InlineData(false)] public void MessageIsSetToExceptionMessage(bool parseStateValues) { + // ParseStateValues will be ignored unless the log contains an unknown objects. + // https://github.com/open-telemetry/opentelemetry-dotnet/pull/4334 + var logRecords = new List(); using var loggerFactory = LoggerFactory.Create(builder => { @@ -52,20 +55,13 @@ public void MessageIsSetToExceptionMessage(bool parseStateValues) Assert.Equal("Test Exception", message); - if (parseStateValues) - { - Assert.True(properties.TryGetValue("OriginalFormat", out string value)); - Assert.Equal(log, value); - Assert.True(properties.TryGetValue("name", out string name)); - Assert.Equal("tomato", name); - Assert.True(properties.TryGetValue("price", out string price)); - Assert.Equal("2.99", price); - Assert.Equal(3, properties.Count); - } - else - { - Assert.Empty(properties); - } + Assert.True(properties.TryGetValue("OriginalFormat", out string value)); + Assert.Equal(log, value); + Assert.True(properties.TryGetValue("name", out string name)); + Assert.Equal("tomato", name); + Assert.True(properties.TryGetValue("price", out string price)); + Assert.Equal("2.99", price); + Assert.Equal(3, properties.Count); } [Fact] @@ -77,7 +73,6 @@ public void MessageIsSetToFormattedMessageWhenIncludeFormattedMessageIsSet() builder.AddOpenTelemetry(options => { options.IncludeFormattedMessage = true; - options.ParseStateValues = true; options.AddInMemoryExporter(logRecords); }); builder.AddFilter(typeof(LogsHelperTests).FullName, LogLevel.Trace); @@ -109,7 +104,6 @@ public void MessageIsSetToOriginalFormatWhenIncludeFormattedMessageIsNotSet() { builder.AddOpenTelemetry(options => { - options.ParseStateValues = true; options.AddInMemoryExporter(logRecords); }); builder.AddFilter(typeof(LogsHelperTests).FullName, LogLevel.Trace); @@ -132,15 +126,17 @@ public void MessageIsSetToOriginalFormatWhenIncludeFormattedMessageIsNotSet() Assert.Equal(2, properties.Count); } - [Fact] - public void PropertiesContainFieldsFromStructuredLogs() + [Theory] + [InlineData(true)] + [InlineData(false)] + public void PropertiesContainFieldsFromStructuredLogs(bool parseStateValues) { var logRecords = new List(); using var loggerFactory = LoggerFactory.Create(builder => { builder.AddOpenTelemetry(options => { - options.ParseStateValues = true; + options.ParseStateValues = parseStateValues; options.AddInMemoryExporter(logRecords); }); builder.AddFilter(typeof(LogsHelperTests).FullName, LogLevel.Trace); @@ -161,34 +157,6 @@ public void PropertiesContainFieldsFromStructuredLogs() Assert.Equal(2, properties.Count); } - [Fact] - public void PropertiesContainFieldsFromStructuredLogsIfParseStateValuesIsSet() - { - var logRecords = new List(); - using var loggerFactory = LoggerFactory.Create(builder => - { - builder.AddOpenTelemetry(options => - { - options.ParseStateValues = true; - options.AddInMemoryExporter(logRecords); - }); - builder.AddFilter(typeof(LogsHelperTests).FullName, LogLevel.Trace); - }); - - var logger = loggerFactory.CreateLogger(); - - logger.LogInformation("{Name} {Price}!", "Tomato", 2.99); - - var properties = new ChangeTrackingDictionary(); - LogsHelper.GetMessageAndSetProperties(logRecords[0], properties); - - Assert.True(properties.TryGetValue("Name", out string name)); - Assert.Equal("Tomato", name); - Assert.True(properties.TryGetValue("Price", out string price)); - Assert.Equal("2.99", price); - Assert.Equal(2, properties.Count); - } - [Fact] public void PropertiesContainEventIdAndEventNameIfSetOnLog() { @@ -197,7 +165,6 @@ public void PropertiesContainEventIdAndEventNameIfSetOnLog() { builder.AddOpenTelemetry(options => { - options.ParseStateValues = true; options.AddInMemoryExporter(logRecords); }); builder.AddFilter(typeof(LogsHelperTests).FullName, LogLevel.Trace); @@ -239,7 +206,6 @@ public void ValidateTelemetryItem(string type) { builder.AddOpenTelemetry(options => { - options.ParseStateValues = true; options.AddInMemoryExporter(logRecords); }); builder.AddFilter(typeof(LogsHelperTests).FullName, LogLevel.Trace); diff --git a/sdk/monitor/Azure.Monitor.OpenTelemetry.Exporter/tests/Azure.Monitor.OpenTelemetry.Exporter.Tests/MessageDataTests.cs b/sdk/monitor/Azure.Monitor.OpenTelemetry.Exporter/tests/Azure.Monitor.OpenTelemetry.Exporter.Tests/MessageDataTests.cs index 4e4debf477183..ebeacb8c1d83b 100644 --- a/sdk/monitor/Azure.Monitor.OpenTelemetry.Exporter/tests/Azure.Monitor.OpenTelemetry.Exporter.Tests/MessageDataTests.cs +++ b/sdk/monitor/Azure.Monitor.OpenTelemetry.Exporter/tests/Azure.Monitor.OpenTelemetry.Exporter.Tests/MessageDataTests.cs @@ -28,7 +28,6 @@ public void ValidateMessageData(LogLevel logLevel) { builder.AddOpenTelemetry(options => { - options.ParseStateValues = true; options.AddInMemoryExporter(logRecords); }); builder.AddFilter(typeof(LogsHelperTests).FullName, LogLevel.Trace); diff --git a/sdk/monitor/Azure.Monitor.OpenTelemetry.Exporter/tests/Azure.Monitor.OpenTelemetry.Exporter.Tests/TelemetryExceptionDataTests.cs b/sdk/monitor/Azure.Monitor.OpenTelemetry.Exporter/tests/Azure.Monitor.OpenTelemetry.Exporter.Tests/TelemetryExceptionDataTests.cs index bbe6f7579ab97..b879a612c370e 100644 --- a/sdk/monitor/Azure.Monitor.OpenTelemetry.Exporter/tests/Azure.Monitor.OpenTelemetry.Exporter.Tests/TelemetryExceptionDataTests.cs +++ b/sdk/monitor/Azure.Monitor.OpenTelemetry.Exporter/tests/Azure.Monitor.OpenTelemetry.Exporter.Tests/TelemetryExceptionDataTests.cs @@ -188,7 +188,6 @@ public void ExceptionDataContainsExceptionDetails() { builder.AddOpenTelemetry(options => { - options.ParseStateValues = true; options.AddInMemoryExporter(logRecords); }); builder.AddFilter(typeof(TelemetryExceptionDataTests).FullName, LogLevel.Trace); @@ -212,7 +211,6 @@ public void ExceptionDataContainsExceptionDetailsofAllInnerExceptionsOfAggregate { builder.AddOpenTelemetry(options => { - options.ParseStateValues = true; options.AddInMemoryExporter(logRecords); }); builder.AddFilter(typeof(TelemetryExceptionDataTests).FullName, LogLevel.Trace); @@ -248,7 +246,6 @@ public void ExceptionDataContainsExceptionDetailsWithAllInnerExceptions() { builder.AddOpenTelemetry(options => { - options.ParseStateValues = true; options.AddInMemoryExporter(logRecords); }); builder.AddFilter(typeof(TelemetryExceptionDataTests).FullName, LogLevel.Trace); @@ -282,7 +279,6 @@ public void AggregateExceptionsWithMultipleNestedExceptionsAreTrimmedAfterReachi { builder.AddOpenTelemetry(options => { - options.ParseStateValues = true; options.AddInMemoryExporter(logRecords); }); builder.AddFilter(typeof(TelemetryExceptionDataTests).FullName, LogLevel.Trace); @@ -351,7 +347,6 @@ public void ValidateTelemetryExceptionData(LogLevel logLevel) { builder.AddOpenTelemetry(options => { - options.ParseStateValues = true; options.AddInMemoryExporter(logRecords); }); builder.AddFilter(typeof(TelemetryExceptionDataTests).FullName, LogLevel.Trace);