Skip to content

Commit

Permalink
[AzureMonitorExporter] update OpenTelemetry dependencies to v1.5.0 (#…
Browse files Browse the repository at this point in the history
…36859)

* update OpenTelemetry v1.5.0

* remove ParseStateValues = true

* update changelog

* update ParseStateValues in remaining tests

* update package version

* cleanup

* revert

* Update CHANGELOG.md

remove whitespace
  • Loading branch information
TimothyMothra authored Jun 16, 2023
1 parent eb8f960 commit e49bccd
Show file tree
Hide file tree
Showing 11 changed files with 35 additions and 71 deletions.
14 changes: 7 additions & 7 deletions eng/Packages.Data.props
Original file line number Diff line number Diff line change
Expand Up @@ -120,12 +120,12 @@

<ItemGroup Condition="$(MSBuildProjectName.StartsWith('Azure.Monitor.OpenTelemetry'))">
<!-- OpenTelemetry dependency approved for Azure.Monitor.OpenTelemetry.Exporter package only -->
<PackageReference Update="OpenTelemetry" Version="1.4.0" />
<PackageReference Update="OpenTelemetry.Exporter.InMemory" Version="1.4.0" />
<PackageReference Update="OpenTelemetry.Extensions.Hosting" Version="1.4.0" />
<PackageReference Update="OpenTelemetry.Instrumentation.AspNetCore" Version="1.0.0-rc9.14" />
<PackageReference Update="OpenTelemetry.Instrumentation.Http" Version="1.0.0-rc9.14" />
<PackageReference Update="OpenTelemetry.Instrumentation.SqlClient" Version="1.0.0-rc9.14" />
<PackageReference Update="OpenTelemetry" Version="1.5.0" />
<PackageReference Update="OpenTelemetry.Exporter.InMemory" Version="1.5.0" />
<PackageReference Update="OpenTelemetry.Extensions.Hosting" Version="1.5.0" />
<PackageReference Update="OpenTelemetry.Instrumentation.AspNetCore" Version="1.5.0-beta.1" />
<PackageReference Update="OpenTelemetry.Instrumentation.Http" Version="1.5.0-beta.1" />
<PackageReference Update="OpenTelemetry.Instrumentation.SqlClient" Version="1.5.0-beta.1" />
<PackageReference Update="OpenTelemetry.PersistentStorage.FileSystem" Version="1.0.0-beta.2" />
</ItemGroup>

Expand Down Expand Up @@ -266,7 +266,7 @@
<PackageReference Update="NSubstitute" Version="3.1.0" />
<PackageReference Update="NUnit" Version="3.13.2" />
<PackageReference Update="NUnit3TestAdapter" Version="4.4.2" />
<PackageReference Update="OpenTelemetry" Version="1.4.0" />
<PackageReference Update="OpenTelemetry" Version="1.5.0" />
<PackageReference Update="Polly" Version="7.1.0" />
<PackageReference Update="Polly.Contrib.WaitAndRetry" Version="1.1.1" />
<PackageReference Update="Portable.BouncyCastle" Version="1.9.0" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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))

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,6 @@ public static OpenTelemetryBuilder UseAzureMonitor(this OpenTelemetryBuilder bui
logging.AddOpenTelemetry(builderOptions =>
{
builderOptions.IncludeFormattedMessage = true;
builderOptions.ParseStateValues = true;
builderOptions.IncludeScopes = false;
});
});
Expand Down
3 changes: 3 additions & 0 deletions sdk/monitor/Azure.Monitor.OpenTelemetry.Exporter/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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))

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,9 +66,9 @@ internal static List<TelemetryItem> OtelToAzureMonitorLogs(Batch<LogRecord> 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);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,6 @@ public void VerifyLog(LogLevel logLevel, string expectedSeverityLevel)
.AddFilter<OpenTelemetryLoggerProvider>(logCategoryName, logLevel)
.AddOpenTelemetry(options =>
{
options.ParseStateValues = true;
options.AddAzureMonitorLogExporterForTest(out telemetryItems);
});
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -220,7 +220,6 @@ public void VerifyLogWithinActivity(LogLevel logLevel, string expectedSeverityLe
.AddFilter<OpenTelemetryLoggerProvider>(logCategoryName, logLevel)
.AddOpenTelemetry(options =>
{
options.ParseStateValues = true;
options.AddAzureMonitorLogExporterForTest(out logTelemetryItems);
});
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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<LogRecord>();
using var loggerFactory = LoggerFactory.Create(builder =>
{
Expand Down Expand Up @@ -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]
Expand All @@ -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);
Expand Down Expand Up @@ -109,7 +104,6 @@ public void MessageIsSetToOriginalFormatWhenIncludeFormattedMessageIsNotSet()
{
builder.AddOpenTelemetry(options =>
{
options.ParseStateValues = true;
options.AddInMemoryExporter(logRecords);
});
builder.AddFilter(typeof(LogsHelperTests).FullName, LogLevel.Trace);
Expand All @@ -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<LogRecord>();
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);
Expand All @@ -161,34 +157,6 @@ public void PropertiesContainFieldsFromStructuredLogs()
Assert.Equal(2, properties.Count);
}

[Fact]
public void PropertiesContainFieldsFromStructuredLogsIfParseStateValuesIsSet()
{
var logRecords = new List<LogRecord>();
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<LogsHelperTests>();

logger.LogInformation("{Name} {Price}!", "Tomato", 2.99);

var properties = new ChangeTrackingDictionary<string, string>();
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()
{
Expand All @@ -197,7 +165,6 @@ public void PropertiesContainEventIdAndEventNameIfSetOnLog()
{
builder.AddOpenTelemetry(options =>
{
options.ParseStateValues = true;
options.AddInMemoryExporter(logRecords);
});
builder.AddFilter(typeof(LogsHelperTests).FullName, LogLevel.Trace);
Expand Down Expand Up @@ -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);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -188,7 +188,6 @@ public void ExceptionDataContainsExceptionDetails()
{
builder.AddOpenTelemetry(options =>
{
options.ParseStateValues = true;
options.AddInMemoryExporter(logRecords);
});
builder.AddFilter(typeof(TelemetryExceptionDataTests).FullName, LogLevel.Trace);
Expand All @@ -212,7 +211,6 @@ public void ExceptionDataContainsExceptionDetailsofAllInnerExceptionsOfAggregate
{
builder.AddOpenTelemetry(options =>
{
options.ParseStateValues = true;
options.AddInMemoryExporter(logRecords);
});
builder.AddFilter(typeof(TelemetryExceptionDataTests).FullName, LogLevel.Trace);
Expand Down Expand Up @@ -248,7 +246,6 @@ public void ExceptionDataContainsExceptionDetailsWithAllInnerExceptions()
{
builder.AddOpenTelemetry(options =>
{
options.ParseStateValues = true;
options.AddInMemoryExporter(logRecords);
});
builder.AddFilter(typeof(TelemetryExceptionDataTests).FullName, LogLevel.Trace);
Expand Down Expand Up @@ -282,7 +279,6 @@ public void AggregateExceptionsWithMultipleNestedExceptionsAreTrimmedAfterReachi
{
builder.AddOpenTelemetry(options =>
{
options.ParseStateValues = true;
options.AddInMemoryExporter(logRecords);
});
builder.AddFilter(typeof(TelemetryExceptionDataTests).FullName, LogLevel.Trace);
Expand Down Expand Up @@ -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);
Expand Down

0 comments on commit e49bccd

Please sign in to comment.