diff --git a/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/CHANGELOG.md b/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/CHANGELOG.md index 9f07dab60ed..4c67e5c36d7 100644 --- a/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/CHANGELOG.md +++ b/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/CHANGELOG.md @@ -5,6 +5,11 @@ * Fix native AoT warnings in `OpenTelemetry.Exporter.OpenTelemetryProtocol`. ([#5520](https://github.com/open-telemetry/opentelemetry-dotnet/pull/5520)) +* `User-Agent` header format changed from + `OTel-OTLP-Exporter-Dotnet/{NuGet Package Version}+{Commit Hash}` + to `OTel-OTLP-Exporter-Dotnet/{NuGet Package Version}`. + ([#5528](https://github.com/open-telemetry/opentelemetry-dotnet/pull/5528)) + ## 1.8.0 Released 2024-Apr-02 diff --git a/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/OtlpExporterOptions.cs b/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/OtlpExporterOptions.cs index 31b28b920a5..7c14310d17f 100644 --- a/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/OtlpExporterOptions.cs +++ b/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/OtlpExporterOptions.cs @@ -7,7 +7,6 @@ #if NETFRAMEWORK using System.Net.Http; #endif -using System.Reflection; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; @@ -38,8 +37,6 @@ public class OtlpExporterOptions : IOtlpExporterOptions internal readonly Func DefaultHttpClientFactory; - private const string UserAgentProduct = "OTel-OTLP-Exporter-Dotnet"; - private OtlpExportProtocol? protocol; private Uri? endpoint; private int? timeoutMilliseconds; @@ -227,16 +224,8 @@ internal OtlpExporterOptions ApplyDefaults(OtlpExporterOptions defaultExporterOp private static string GetUserAgentString() { - try - { - var assemblyVersion = typeof(OtlpExporterOptions).Assembly.GetCustomAttribute(); - var informationalVersion = assemblyVersion?.InformationalVersion; - return string.IsNullOrEmpty(informationalVersion) ? UserAgentProduct : $"{UserAgentProduct}/{informationalVersion}"; - } - catch (Exception) - { - return UserAgentProduct; - } + var assembly = typeof(OtlpExporterOptions).Assembly; + return $"OTel-OTLP-Exporter-Dotnet/{assembly.GetPackageVersion()}"; } private void ApplyConfiguration( diff --git a/src/OpenTelemetry.Instrumentation.GrpcNetClient/Implementation/GrpcClientDiagnosticListener.cs b/src/OpenTelemetry.Instrumentation.GrpcNetClient/Implementation/GrpcClientDiagnosticListener.cs index 48d4fa81115..e9750c938fc 100644 --- a/src/OpenTelemetry.Instrumentation.GrpcNetClient/Implementation/GrpcClientDiagnosticListener.cs +++ b/src/OpenTelemetry.Instrumentation.GrpcNetClient/Implementation/GrpcClientDiagnosticListener.cs @@ -8,6 +8,7 @@ using System.Reflection; using OpenTelemetry.Context.Propagation; using OpenTelemetry.Instrumentation.Http; +using OpenTelemetry.Internal; using OpenTelemetry.Trace; namespace OpenTelemetry.Instrumentation.GrpcNetClient.Implementation; diff --git a/src/OpenTelemetry.Instrumentation.SqlClient/Implementation/SqlActivitySourceHelper.cs b/src/OpenTelemetry.Instrumentation.SqlClient/Implementation/SqlActivitySourceHelper.cs index 3856c2d4e0c..ea6080bafd8 100644 --- a/src/OpenTelemetry.Instrumentation.SqlClient/Implementation/SqlActivitySourceHelper.cs +++ b/src/OpenTelemetry.Instrumentation.SqlClient/Implementation/SqlActivitySourceHelper.cs @@ -3,6 +3,7 @@ using System.Diagnostics; using System.Reflection; +using OpenTelemetry.Internal; using OpenTelemetry.Trace; namespace OpenTelemetry.Instrumentation.SqlClient.Implementation; diff --git a/src/OpenTelemetry/Sdk.cs b/src/OpenTelemetry/Sdk.cs index fb3bc6403db..9dd0f2776e0 100644 --- a/src/OpenTelemetry/Sdk.cs +++ b/src/OpenTelemetry/Sdk.cs @@ -6,7 +6,6 @@ using System.Diagnostics.CodeAnalysis; #endif using OpenTelemetry.Context.Propagation; -using OpenTelemetry.Instrumentation; using OpenTelemetry.Internal; using OpenTelemetry.Logs; using OpenTelemetry.Metrics; diff --git a/src/Shared/AssemblyVersionExtensions.cs b/src/Shared/AssemblyVersionExtensions.cs index 687dabf45f2..029a3c2451c 100644 --- a/src/Shared/AssemblyVersionExtensions.cs +++ b/src/Shared/AssemblyVersionExtensions.cs @@ -3,9 +3,10 @@ #nullable enable +using System.Diagnostics; using System.Reflection; -namespace OpenTelemetry.Instrumentation; +namespace OpenTelemetry.Internal; internal static class AssemblyVersionExtensions { @@ -19,7 +20,9 @@ public static string GetPackageVersion(this Assembly assembly) // The following parts are optional: pre-release label, pre-release version, git height, Git SHA of current commit // For package version, value of AssemblyInformationalVersionAttribute without commit hash is returned. - var informationalVersion = assembly.GetCustomAttribute()!.InformationalVersion; + var informationalVersion = assembly.GetCustomAttribute()?.InformationalVersion; + Debug.Assert(!string.IsNullOrEmpty(informationalVersion), "AssemblyInformationalVersionAttribute was not found in assembly"); + var indexOfPlusSign = informationalVersion!.IndexOf('+'); return indexOfPlusSign > 0 ? informationalVersion.Substring(0, indexOfPlusSign) diff --git a/test/OpenTelemetry.Tests/Shared/AssemblyVersionExtensionsTests.cs b/test/OpenTelemetry.Tests/Shared/AssemblyVersionExtensionsTests.cs index 3e8c43cee75..f057e8754c6 100644 --- a/test/OpenTelemetry.Tests/Shared/AssemblyVersionExtensionsTests.cs +++ b/test/OpenTelemetry.Tests/Shared/AssemblyVersionExtensionsTests.cs @@ -4,7 +4,7 @@ #nullable enable using System.Reflection; -using OpenTelemetry.Instrumentation; +using OpenTelemetry.Internal; using Xunit; namespace OpenTelemetry.Tests;