From db1cb9d2e926580938113ae470f4066f29f896f2 Mon Sep 17 00:00:00 2001 From: Utkarsh Umesan Pillai Date: Thu, 6 Apr 2023 16:23:55 -0700 Subject: [PATCH 1/3] Update the value for Telemetry SDK version resource --- .../Resources/ResourceBuilderExtensions.cs | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/src/OpenTelemetry/Resources/ResourceBuilderExtensions.cs b/src/OpenTelemetry/Resources/ResourceBuilderExtensions.cs index 8353a6c465b..bc1d4c075bf 100644 --- a/src/OpenTelemetry/Resources/ResourceBuilderExtensions.cs +++ b/src/OpenTelemetry/Resources/ResourceBuilderExtensions.cs @@ -32,7 +32,7 @@ public static class ResourceBuilderExtensions { [ResourceSemanticConventions.AttributeTelemetrySdkName] = "opentelemetry", [ResourceSemanticConventions.AttributeTelemetrySdkLanguage] = "dotnet", - [ResourceSemanticConventions.AttributeTelemetrySdkVersion] = GetFileVersion(), + [ResourceSemanticConventions.AttributeTelemetrySdkVersion] = GetAssemblyInformationalVersion(), }); /// @@ -126,11 +126,24 @@ public static ResourceBuilder AddEnvironmentVariableDetector(this ResourceBuilde .AddDetectorInternal(sp => new OtelServiceNameEnvVarDetector(sp?.GetService() ?? configuration.Value)); } - private static string GetFileVersion() + private static string GetAssemblyInformationalVersion() { try { - return typeof(Resource).Assembly.GetCustomAttribute()?.Version ?? string.Empty; + var informationalVersion = typeof(Resource).Assembly.GetCustomAttribute()?.InformationalVersion; + + if (informationalVersion == null) + { + return string.Empty; + } + + // informationalVersion could be in the following format: + // {majorVersion}.{minorVersion}.{patchVersion}.{pre-release label}.{pre-release version}.{gitHeight}.{Git SHA of current commit} + // The following parts are optional: pre-release label, pre-release version, git height, Git SHA of current commit + // for example: 1.5.0-alpha.1.40+807f703e1b4d9874a92bd86d9f2d4ebe5b5d52e4 + + var indexOfPlusSign = informationalVersion.IndexOf('+'); + return indexOfPlusSign > 0 ? informationalVersion.Substring(0, indexOfPlusSign) : informationalVersion; } catch (Exception) { From ac073d827a633cab48a77b587e199b0f05bdd20d Mon Sep 17 00:00:00 2001 From: Utkarsh Umesan Pillai Date: Thu, 6 Apr 2023 16:38:06 -0700 Subject: [PATCH 2/3] Update CHANGELOG --- src/OpenTelemetry/CHANGELOG.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/OpenTelemetry/CHANGELOG.md b/src/OpenTelemetry/CHANGELOG.md index 66e89aa8292..9523e9729dc 100644 --- a/src/OpenTelemetry/CHANGELOG.md +++ b/src/OpenTelemetry/CHANGELOG.md @@ -2,13 +2,16 @@ ## Unreleased -* The default resource provided by `ResourceBuilder.CreateDefault()` now - adds the `telemetry.sdk.*` attributes defined in the +* The default resource provided by `ResourceBuilder.CreateDefault()` now adds + the `telemetry.sdk.*` attributes defined in the [specification](https://github.com/open-telemetry/opentelemetry-specification/tree/12fcec1ff255b1535db75708e52a3a21f86f0fae/specification/resource/semantic_conventions#semantic-attributes-with-sdk-provided-default-value). ([#4369](https://github.com/open-telemetry/opentelemetry-dotnet/pull/4369)) * Fixed an issue with `HashCode` computations throwing exceptions on .NET Standard 2.1 targets. ([#4362](https://github.com/open-telemetry/opentelemetry-dotnet/pull/4362)) +* Update value of the resource attribute Telemetry SDK version to show the tag + name which resembles the package version of the SDK. + ([#4375](https://github.com/open-telemetry/opentelemetry-dotnet/pull/4375)) ## 1.5.0-alpha.2 From ad4b66690b11205d5968a531ad76887d2fcd5107 Mon Sep 17 00:00:00 2001 From: Utkarsh Umesan Pillai Date: Thu, 6 Apr 2023 16:39:25 -0700 Subject: [PATCH 3/3] Update CHANGELOG --- src/OpenTelemetry/CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/OpenTelemetry/CHANGELOG.md b/src/OpenTelemetry/CHANGELOG.md index 9523e9729dc..48a2969cbbc 100644 --- a/src/OpenTelemetry/CHANGELOG.md +++ b/src/OpenTelemetry/CHANGELOG.md @@ -9,7 +9,7 @@ * Fixed an issue with `HashCode` computations throwing exceptions on .NET Standard 2.1 targets. ([#4362](https://github.com/open-telemetry/opentelemetry-dotnet/pull/4362)) -* Update value of the resource attribute Telemetry SDK version to show the tag +* Update value of the resource attribute `telemetry.sdk.version` to show the tag name which resembles the package version of the SDK. ([#4375](https://github.com/open-telemetry/opentelemetry-dotnet/pull/4375))