From 72da117ec8a92c7104f43c7ca774a74e5e0b57a5 Mon Sep 17 00:00:00 2001 From: Matt Bergin Date: Tue, 23 Mar 2021 13:34:30 +0000 Subject: [PATCH 1/6] Catch exceptions when obtaining FileVersion --- .../Resources/ResourceBuilderExtensions.cs | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/OpenTelemetry/Resources/ResourceBuilderExtensions.cs b/src/OpenTelemetry/Resources/ResourceBuilderExtensions.cs index b7a01d2cde5..e4ab110d1dd 100644 --- a/src/OpenTelemetry/Resources/ResourceBuilderExtensions.cs +++ b/src/OpenTelemetry/Resources/ResourceBuilderExtensions.cs @@ -25,13 +25,11 @@ namespace OpenTelemetry.Resources /// public static class ResourceBuilderExtensions { - private static readonly string FileVersion = FileVersionInfo.GetVersionInfo(typeof(Resource).Assembly.Location).FileVersion; - private static Resource TelemetryResource { get; } = new Resource(new Dictionary { [ResourceSemanticConventions.AttributeTelemetrySdkName] = "opentelemetry", [ResourceSemanticConventions.AttributeTelemetrySdkLanguage] = "dotnet", - [ResourceSemanticConventions.AttributeTelemetrySdkVersion] = FileVersion, + [ResourceSemanticConventions.AttributeTelemetrySdkVersion] = GetFileVersion(), }); /// @@ -123,5 +121,17 @@ public static ResourceBuilder AddEnvironmentVariableDetector(this ResourceBuilde { return resourceBuilder.AddDetector(new OtelEnvResourceDetector()); } + + private static string GetFileVersion() + { + try + { + return FileVersionInfo.GetVersionInfo(typeof(Resource).Assembly.Location).FileVersion; + } + catch (Exception) + { + return string.Empty; + } + } } } From ce137900b17d0c05d244f8f4b8f14356b5f7df27 Mon Sep 17 00:00:00 2001 From: Matt Bergin Date: Tue, 23 Mar 2021 13:43:15 +0000 Subject: [PATCH 2/6] Read FileVersion from assembly metadata. This works even when the assembly was not loaded directly from a file. --- src/OpenTelemetry/Resources/ResourceBuilderExtensions.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/OpenTelemetry/Resources/ResourceBuilderExtensions.cs b/src/OpenTelemetry/Resources/ResourceBuilderExtensions.cs index e4ab110d1dd..8989bce04e9 100644 --- a/src/OpenTelemetry/Resources/ResourceBuilderExtensions.cs +++ b/src/OpenTelemetry/Resources/ResourceBuilderExtensions.cs @@ -17,6 +17,7 @@ using System; using System.Collections.Generic; using System.Diagnostics; +using System.Reflection; namespace OpenTelemetry.Resources { @@ -126,7 +127,7 @@ private static string GetFileVersion() { try { - return FileVersionInfo.GetVersionInfo(typeof(Resource).Assembly.Location).FileVersion; + return typeof(Resource).Assembly.GetCustomAttribute()?.Version ?? string.Empty; } catch (Exception) { From c9bd2d57cec0c759d0bcde1eb41aef3ea753840f Mon Sep 17 00:00:00 2001 From: Matt Bergin Date: Tue, 23 Mar 2021 15:41:13 +0000 Subject: [PATCH 3/6] Add #1908 to CHANGELOG.md --- src/OpenTelemetry/CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/OpenTelemetry/CHANGELOG.md b/src/OpenTelemetry/CHANGELOG.md index 09863dd4cd0..3f64172d35b 100644 --- a/src/OpenTelemetry/CHANGELOG.md +++ b/src/OpenTelemetry/CHANGELOG.md @@ -56,6 +56,9 @@ Released 2021-Mar-19 * Added `SetResourceBuilder` support to `OpenTelemetryLoggerOptions`. ([#1913](https://github.com/open-telemetry/opentelemetry-dotnet/pull/1913)) +* `ResourceBuilderExtensions` type constructor will no longer throw when + OpenTelemetry is used in AWS Lambda. ([#1908](https://github.com/open-telemetry/opentelemetry-dotnet/issues/1908)) + ## 1.0.1 Released 2021-Feb-10 From a0e4b98221620c72a7b4316ef9e35f8671ca32ff Mon Sep 17 00:00:00 2001 From: Matt Bergin Date: Tue, 23 Mar 2021 15:48:50 +0000 Subject: [PATCH 4/6] Trailing space in CHANGELOG.md --- 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 3f64172d35b..ed955624421 100644 --- a/src/OpenTelemetry/CHANGELOG.md +++ b/src/OpenTelemetry/CHANGELOG.md @@ -58,7 +58,7 @@ Released 2021-Mar-19 * `ResourceBuilderExtensions` type constructor will no longer throw when OpenTelemetry is used in AWS Lambda. ([#1908](https://github.com/open-telemetry/opentelemetry-dotnet/issues/1908)) - + ## 1.0.1 Released 2021-Feb-10 From 6e3231e3c6c7f5b8128ccfee9010ea3d71368b6b Mon Sep 17 00:00:00 2001 From: Matt Bergin Date: Tue, 23 Mar 2021 18:42:54 +0000 Subject: [PATCH 5/6] Better CHANGELOG.md --- src/OpenTelemetry/CHANGELOG.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/OpenTelemetry/CHANGELOG.md b/src/OpenTelemetry/CHANGELOG.md index ed955624421..95f047bf075 100644 --- a/src/OpenTelemetry/CHANGELOG.md +++ b/src/OpenTelemetry/CHANGELOG.md @@ -56,8 +56,10 @@ Released 2021-Mar-19 * Added `SetResourceBuilder` support to `OpenTelemetryLoggerOptions`. ([#1913](https://github.com/open-telemetry/opentelemetry-dotnet/pull/1913)) -* `ResourceBuilderExtensions` type constructor will no longer throw when - OpenTelemetry is used in AWS Lambda. ([#1908](https://github.com/open-telemetry/opentelemetry-dotnet/issues/1908)) +* Use `AssemblyFileVersionAttribute` instead of `FileVersionInfo.GetVersionInfo` + to get the SDK version attribute to ensure that it works when the assembly + is not loaded directly from a file on disk + ([#1908](https://github.com/open-telemetry/opentelemetry-dotnet/issues/1908)) ## 1.0.1 From c4fad0476ef12893bff62aa3407ea1dcaa16baae Mon Sep 17 00:00:00 2001 From: Matt Bergin Date: Wed, 24 Mar 2021 18:56:18 +0000 Subject: [PATCH 6/6] Move #1908 to unreleased --- src/OpenTelemetry/CHANGELOG.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/OpenTelemetry/CHANGELOG.md b/src/OpenTelemetry/CHANGELOG.md index 95f047bf075..01d3a8dbddf 100644 --- a/src/OpenTelemetry/CHANGELOG.md +++ b/src/OpenTelemetry/CHANGELOG.md @@ -9,6 +9,11 @@ please check the latest changes ## Unreleased +* Use `AssemblyFileVersionAttribute` instead of `FileVersionInfo.GetVersionInfo` + to get the SDK version attribute to ensure that it works when the assembly + is not loaded directly from a file on disk + ([#1908](https://github.com/open-telemetry/opentelemetry-dotnet/issues/1908)) + ## 1.1.0-beta1 Released 2021-Mar-19 @@ -56,11 +61,6 @@ Released 2021-Mar-19 * Added `SetResourceBuilder` support to `OpenTelemetryLoggerOptions`. ([#1913](https://github.com/open-telemetry/opentelemetry-dotnet/pull/1913)) -* Use `AssemblyFileVersionAttribute` instead of `FileVersionInfo.GetVersionInfo` - to get the SDK version attribute to ensure that it works when the assembly - is not loaded directly from a file on disk - ([#1908](https://github.com/open-telemetry/opentelemetry-dotnet/issues/1908)) - ## 1.0.1 Released 2021-Feb-10