Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[AzureMonitorExporter] update OpenTelemetry dependencies to v1.5.0 #36859

Merged
merged 13 commits into from
Jun 16, 2023
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
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
TimothyMothra marked this conversation as resolved.
Show resolved Hide resolved
// 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)
TimothyMothra marked this conversation as resolved.
Show resolved Hide resolved
{
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.
TimothyMothra marked this conversation as resolved.
Show resolved Hide resolved
// 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