From 4517454aef396a90f16f20ecce1bd5232cd9b5dc Mon Sep 17 00:00:00 2001 From: Austin Tan Date: Fri, 29 Jan 2021 08:05:43 -0800 Subject: [PATCH 01/19] Moving the previous default (SDK info) into separate method --- src/OpenTelemetry/.publicApi/net452/PublicAPI.Unshipped.txt | 1 + src/OpenTelemetry/.publicApi/net46/PublicAPI.Unshipped.txt | 1 + src/OpenTelemetry/.publicApi/net461/PublicAPI.Unshipped.txt | 1 + .../.publicApi/netstandard2.0/PublicAPI.Unshipped.txt | 1 + src/OpenTelemetry/Resources/ResourceBuilder.cs | 3 +++ 5 files changed, 7 insertions(+) diff --git a/src/OpenTelemetry/.publicApi/net452/PublicAPI.Unshipped.txt b/src/OpenTelemetry/.publicApi/net452/PublicAPI.Unshipped.txt index 5017dd7d64f..94ef8c57de0 100644 --- a/src/OpenTelemetry/.publicApi/net452/PublicAPI.Unshipped.txt +++ b/src/OpenTelemetry/.publicApi/net452/PublicAPI.Unshipped.txt @@ -232,6 +232,7 @@ abstract OpenTelemetry.BaseExportProcessor.OnExport(T data) -> void override sealed OpenTelemetry.BaseExportProcessor.OnStart(T data) -> void readonly OpenTelemetry.BaseExportProcessor.exporter -> OpenTelemetry.BaseExporter static OpenTelemetry.ProviderExtensions.GetResource(this OpenTelemetry.BaseProvider baseProvider) -> OpenTelemetry.Resources.Resource +static OpenTelemetry.Resources.ResourceBuilder.CreateSDK() -> OpenTelemetry.Resources.ResourceBuilder static OpenTelemetry.Resources.ResourceBuilderExtensions.AddEnvironmentVariableDetector(this OpenTelemetry.Resources.ResourceBuilder resourceBuilder) -> OpenTelemetry.Resources.ResourceBuilder static OpenTelemetry.Resources.Resource.Empty.get -> OpenTelemetry.Resources.Resource static OpenTelemetry.Resources.ResourceBuilderExtensions.AddAttributes(this OpenTelemetry.Resources.ResourceBuilder resourceBuilder, System.Collections.Generic.IEnumerable> attributes) -> OpenTelemetry.Resources.ResourceBuilder diff --git a/src/OpenTelemetry/.publicApi/net46/PublicAPI.Unshipped.txt b/src/OpenTelemetry/.publicApi/net46/PublicAPI.Unshipped.txt index 899e11cd643..a151c6c0c0c 100644 --- a/src/OpenTelemetry/.publicApi/net46/PublicAPI.Unshipped.txt +++ b/src/OpenTelemetry/.publicApi/net46/PublicAPI.Unshipped.txt @@ -232,6 +232,7 @@ abstract OpenTelemetry.BaseExportProcessor.OnExport(T data) -> void override sealed OpenTelemetry.BaseExportProcessor.OnStart(T data) -> void readonly OpenTelemetry.BaseExportProcessor.exporter -> OpenTelemetry.BaseExporter static OpenTelemetry.ProviderExtensions.GetResource(this OpenTelemetry.BaseProvider baseProvider) -> OpenTelemetry.Resources.Resource +static OpenTelemetry.Resources.ResourceBuilder.CreateSDK() -> OpenTelemetry.Resources.ResourceBuilder static OpenTelemetry.Resources.ResourceBuilderExtensions.AddEnvironmentVariableDetector(this OpenTelemetry.Resources.ResourceBuilder resourceBuilder) -> OpenTelemetry.Resources.ResourceBuilder static OpenTelemetry.Resources.Resource.Empty.get -> OpenTelemetry.Resources.Resource static OpenTelemetry.Resources.ResourceBuilderExtensions.AddAttributes(this OpenTelemetry.Resources.ResourceBuilder resourceBuilder, System.Collections.Generic.IEnumerable> attributes) -> OpenTelemetry.Resources.ResourceBuilder diff --git a/src/OpenTelemetry/.publicApi/net461/PublicAPI.Unshipped.txt b/src/OpenTelemetry/.publicApi/net461/PublicAPI.Unshipped.txt index 9cf4125f8ef..4577c889822 100644 --- a/src/OpenTelemetry/.publicApi/net461/PublicAPI.Unshipped.txt +++ b/src/OpenTelemetry/.publicApi/net461/PublicAPI.Unshipped.txt @@ -256,6 +256,7 @@ override sealed OpenTelemetry.BaseExportProcessor.OnStart(T data) -> void readonly OpenTelemetry.BaseExportProcessor.exporter -> OpenTelemetry.BaseExporter static Microsoft.Extensions.Logging.OpenTelemetryLoggingExtensions.AddOpenTelemetry(this Microsoft.Extensions.Logging.ILoggingBuilder builder, System.Action configure = null) -> Microsoft.Extensions.Logging.ILoggingBuilder static OpenTelemetry.ProviderExtensions.GetResource(this OpenTelemetry.BaseProvider baseProvider) -> OpenTelemetry.Resources.Resource +static OpenTelemetry.Resources.ResourceBuilder.CreateSDK() -> OpenTelemetry.Resources.ResourceBuilder static OpenTelemetry.Resources.ResourceBuilderExtensions.AddEnvironmentVariableDetector(this OpenTelemetry.Resources.ResourceBuilder resourceBuilder) -> OpenTelemetry.Resources.ResourceBuilder static OpenTelemetry.Resources.Resource.Empty.get -> OpenTelemetry.Resources.Resource static OpenTelemetry.Resources.ResourceBuilderExtensions.AddAttributes(this OpenTelemetry.Resources.ResourceBuilder resourceBuilder, System.Collections.Generic.IEnumerable> attributes) -> OpenTelemetry.Resources.ResourceBuilder diff --git a/src/OpenTelemetry/.publicApi/netstandard2.0/PublicAPI.Unshipped.txt b/src/OpenTelemetry/.publicApi/netstandard2.0/PublicAPI.Unshipped.txt index 9cf4125f8ef..4577c889822 100644 --- a/src/OpenTelemetry/.publicApi/netstandard2.0/PublicAPI.Unshipped.txt +++ b/src/OpenTelemetry/.publicApi/netstandard2.0/PublicAPI.Unshipped.txt @@ -256,6 +256,7 @@ override sealed OpenTelemetry.BaseExportProcessor.OnStart(T data) -> void readonly OpenTelemetry.BaseExportProcessor.exporter -> OpenTelemetry.BaseExporter static Microsoft.Extensions.Logging.OpenTelemetryLoggingExtensions.AddOpenTelemetry(this Microsoft.Extensions.Logging.ILoggingBuilder builder, System.Action configure = null) -> Microsoft.Extensions.Logging.ILoggingBuilder static OpenTelemetry.ProviderExtensions.GetResource(this OpenTelemetry.BaseProvider baseProvider) -> OpenTelemetry.Resources.Resource +static OpenTelemetry.Resources.ResourceBuilder.CreateSDK() -> OpenTelemetry.Resources.ResourceBuilder static OpenTelemetry.Resources.ResourceBuilderExtensions.AddEnvironmentVariableDetector(this OpenTelemetry.Resources.ResourceBuilder resourceBuilder) -> OpenTelemetry.Resources.ResourceBuilder static OpenTelemetry.Resources.Resource.Empty.get -> OpenTelemetry.Resources.Resource static OpenTelemetry.Resources.ResourceBuilderExtensions.AddAttributes(this OpenTelemetry.Resources.ResourceBuilder resourceBuilder, System.Collections.Generic.IEnumerable> attributes) -> OpenTelemetry.Resources.ResourceBuilder diff --git a/src/OpenTelemetry/Resources/ResourceBuilder.cs b/src/OpenTelemetry/Resources/ResourceBuilder.cs index e4c549a3734..e9b3fcc3e74 100644 --- a/src/OpenTelemetry/Resources/ResourceBuilder.cs +++ b/src/OpenTelemetry/Resources/ResourceBuilder.cs @@ -40,6 +40,9 @@ private ResourceBuilder() public static ResourceBuilder CreateDefault() => new ResourceBuilder().AddTelemetrySdk(); // TODO: Seek spec clarify on whether or not OtelEnvResourceDetector should be added by default. + public static ResourceBuilder CreateSDK() + => new ResourceBuilder().AddTelemetrySdk(); + /// /// Creates an empty instance. /// From 493a855b8deceee5ffabbf60ab549c0cd338b3cd Mon Sep 17 00:00:00 2001 From: Austin Tan Date: Fri, 29 Jan 2021 08:23:33 -0800 Subject: [PATCH 02/19] Add CreateDefault and add to API --- .../.publicApi/net452/PublicAPI.Unshipped.txt | 1 + .../.publicApi/net46/PublicAPI.Unshipped.txt | 1 + .../.publicApi/net461/PublicAPI.Unshipped.txt | 1 + .../netstandard2.0/PublicAPI.Unshipped.txt | 1 + src/OpenTelemetry/Resources/ResourceBuilder.cs | 15 ++++++++------- .../Resources/ResourceBuilderExtensions.cs | 13 +++++++++++++ 6 files changed, 25 insertions(+), 7 deletions(-) diff --git a/src/OpenTelemetry/.publicApi/net452/PublicAPI.Unshipped.txt b/src/OpenTelemetry/.publicApi/net452/PublicAPI.Unshipped.txt index 94ef8c57de0..d56678b9b67 100644 --- a/src/OpenTelemetry/.publicApi/net452/PublicAPI.Unshipped.txt +++ b/src/OpenTelemetry/.publicApi/net452/PublicAPI.Unshipped.txt @@ -233,6 +233,7 @@ override sealed OpenTelemetry.BaseExportProcessor.OnStart(T data) -> void readonly OpenTelemetry.BaseExportProcessor.exporter -> OpenTelemetry.BaseExporter static OpenTelemetry.ProviderExtensions.GetResource(this OpenTelemetry.BaseProvider baseProvider) -> OpenTelemetry.Resources.Resource static OpenTelemetry.Resources.ResourceBuilder.CreateSDK() -> OpenTelemetry.Resources.ResourceBuilder +static OpenTelemetry.Resources.ResourceBuilderExtensions.AddDefault(this OpenTelemetry.Resources.ResourceBuilder resourceBuilder) -> OpenTelemetry.Resources.ResourceBuilder static OpenTelemetry.Resources.ResourceBuilderExtensions.AddEnvironmentVariableDetector(this OpenTelemetry.Resources.ResourceBuilder resourceBuilder) -> OpenTelemetry.Resources.ResourceBuilder static OpenTelemetry.Resources.Resource.Empty.get -> OpenTelemetry.Resources.Resource static OpenTelemetry.Resources.ResourceBuilderExtensions.AddAttributes(this OpenTelemetry.Resources.ResourceBuilder resourceBuilder, System.Collections.Generic.IEnumerable> attributes) -> OpenTelemetry.Resources.ResourceBuilder diff --git a/src/OpenTelemetry/.publicApi/net46/PublicAPI.Unshipped.txt b/src/OpenTelemetry/.publicApi/net46/PublicAPI.Unshipped.txt index a151c6c0c0c..53eaad12e7f 100644 --- a/src/OpenTelemetry/.publicApi/net46/PublicAPI.Unshipped.txt +++ b/src/OpenTelemetry/.publicApi/net46/PublicAPI.Unshipped.txt @@ -233,6 +233,7 @@ override sealed OpenTelemetry.BaseExportProcessor.OnStart(T data) -> void readonly OpenTelemetry.BaseExportProcessor.exporter -> OpenTelemetry.BaseExporter static OpenTelemetry.ProviderExtensions.GetResource(this OpenTelemetry.BaseProvider baseProvider) -> OpenTelemetry.Resources.Resource static OpenTelemetry.Resources.ResourceBuilder.CreateSDK() -> OpenTelemetry.Resources.ResourceBuilder +static OpenTelemetry.Resources.ResourceBuilderExtensions.AddDefault(this OpenTelemetry.Resources.ResourceBuilder resourceBuilder) -> OpenTelemetry.Resources.ResourceBuilder static OpenTelemetry.Resources.ResourceBuilderExtensions.AddEnvironmentVariableDetector(this OpenTelemetry.Resources.ResourceBuilder resourceBuilder) -> OpenTelemetry.Resources.ResourceBuilder static OpenTelemetry.Resources.Resource.Empty.get -> OpenTelemetry.Resources.Resource static OpenTelemetry.Resources.ResourceBuilderExtensions.AddAttributes(this OpenTelemetry.Resources.ResourceBuilder resourceBuilder, System.Collections.Generic.IEnumerable> attributes) -> OpenTelemetry.Resources.ResourceBuilder diff --git a/src/OpenTelemetry/.publicApi/net461/PublicAPI.Unshipped.txt b/src/OpenTelemetry/.publicApi/net461/PublicAPI.Unshipped.txt index 4577c889822..711e1aae4dd 100644 --- a/src/OpenTelemetry/.publicApi/net461/PublicAPI.Unshipped.txt +++ b/src/OpenTelemetry/.publicApi/net461/PublicAPI.Unshipped.txt @@ -257,6 +257,7 @@ readonly OpenTelemetry.BaseExportProcessor.exporter -> OpenTelemetry.BaseExpo static Microsoft.Extensions.Logging.OpenTelemetryLoggingExtensions.AddOpenTelemetry(this Microsoft.Extensions.Logging.ILoggingBuilder builder, System.Action configure = null) -> Microsoft.Extensions.Logging.ILoggingBuilder static OpenTelemetry.ProviderExtensions.GetResource(this OpenTelemetry.BaseProvider baseProvider) -> OpenTelemetry.Resources.Resource static OpenTelemetry.Resources.ResourceBuilder.CreateSDK() -> OpenTelemetry.Resources.ResourceBuilder +static OpenTelemetry.Resources.ResourceBuilderExtensions.AddDefault(this OpenTelemetry.Resources.ResourceBuilder resourceBuilder) -> OpenTelemetry.Resources.ResourceBuilder static OpenTelemetry.Resources.ResourceBuilderExtensions.AddEnvironmentVariableDetector(this OpenTelemetry.Resources.ResourceBuilder resourceBuilder) -> OpenTelemetry.Resources.ResourceBuilder static OpenTelemetry.Resources.Resource.Empty.get -> OpenTelemetry.Resources.Resource static OpenTelemetry.Resources.ResourceBuilderExtensions.AddAttributes(this OpenTelemetry.Resources.ResourceBuilder resourceBuilder, System.Collections.Generic.IEnumerable> attributes) -> OpenTelemetry.Resources.ResourceBuilder diff --git a/src/OpenTelemetry/.publicApi/netstandard2.0/PublicAPI.Unshipped.txt b/src/OpenTelemetry/.publicApi/netstandard2.0/PublicAPI.Unshipped.txt index 4577c889822..711e1aae4dd 100644 --- a/src/OpenTelemetry/.publicApi/netstandard2.0/PublicAPI.Unshipped.txt +++ b/src/OpenTelemetry/.publicApi/netstandard2.0/PublicAPI.Unshipped.txt @@ -257,6 +257,7 @@ readonly OpenTelemetry.BaseExportProcessor.exporter -> OpenTelemetry.BaseExpo static Microsoft.Extensions.Logging.OpenTelemetryLoggingExtensions.AddOpenTelemetry(this Microsoft.Extensions.Logging.ILoggingBuilder builder, System.Action configure = null) -> Microsoft.Extensions.Logging.ILoggingBuilder static OpenTelemetry.ProviderExtensions.GetResource(this OpenTelemetry.BaseProvider baseProvider) -> OpenTelemetry.Resources.Resource static OpenTelemetry.Resources.ResourceBuilder.CreateSDK() -> OpenTelemetry.Resources.ResourceBuilder +static OpenTelemetry.Resources.ResourceBuilderExtensions.AddDefault(this OpenTelemetry.Resources.ResourceBuilder resourceBuilder) -> OpenTelemetry.Resources.ResourceBuilder static OpenTelemetry.Resources.ResourceBuilderExtensions.AddEnvironmentVariableDetector(this OpenTelemetry.Resources.ResourceBuilder resourceBuilder) -> OpenTelemetry.Resources.ResourceBuilder static OpenTelemetry.Resources.Resource.Empty.get -> OpenTelemetry.Resources.Resource static OpenTelemetry.Resources.ResourceBuilderExtensions.AddAttributes(this OpenTelemetry.Resources.ResourceBuilder resourceBuilder, System.Collections.Generic.IEnumerable> attributes) -> OpenTelemetry.Resources.ResourceBuilder diff --git a/src/OpenTelemetry/Resources/ResourceBuilder.cs b/src/OpenTelemetry/Resources/ResourceBuilder.cs index e9b3fcc3e74..b682244fe43 100644 --- a/src/OpenTelemetry/Resources/ResourceBuilder.cs +++ b/src/OpenTelemetry/Resources/ResourceBuilder.cs @@ -30,18 +30,19 @@ private ResourceBuilder() { } + + public static ResourceBuilder CreateDefault() + => new ResourceBuilder().AddDefault(); + /// - /// Creates a instance with SDK defaults - /// added. See resource + /// Creates a instance with Telemetry + /// SDK added. See resource /// semantic conventions for details. /// /// Created . - public static ResourceBuilder CreateDefault() - => new ResourceBuilder().AddTelemetrySdk(); // TODO: Seek spec clarify on whether or not OtelEnvResourceDetector should be added by default. - public static ResourceBuilder CreateSDK() - => new ResourceBuilder().AddTelemetrySdk(); + => new ResourceBuilder().AddTelemetrySdk(); // TODO: Seek spec clarify on whether or not OtelEnvResourceDetector should be added by default. /// /// Creates an empty instance. diff --git a/src/OpenTelemetry/Resources/ResourceBuilderExtensions.cs b/src/OpenTelemetry/Resources/ResourceBuilderExtensions.cs index 7f8387813ae..f71e134ec49 100644 --- a/src/OpenTelemetry/Resources/ResourceBuilderExtensions.cs +++ b/src/OpenTelemetry/Resources/ResourceBuilderExtensions.cs @@ -86,6 +86,19 @@ public static ResourceBuilder AddService( return resourceBuilder.AddResource(new Resource(resourceAttributes)); } + /// + /// Adds service information to a + /// following semantic + /// conventions. + /// + /// . + /// Returns for chaining. + public static ResourceBuilder AddDefault(this ResourceBuilder resourceBuilder) + { + return resourceBuilder.AddResource(TelemetryResource); + } + /// /// Adds service information to a /// following Date: Fri, 29 Jan 2021 09:16:48 -0800 Subject: [PATCH 03/19] Converting tests and adding actual default servicename --- .../Resources/ResourceBuilder.cs | 10 ++++-- .../Resources/ResourceBuilderExtensions.cs | 8 ++++- .../Resources/ResourceTest.cs | 31 +++++++++++++++---- 3 files changed, 40 insertions(+), 9 deletions(-) diff --git a/src/OpenTelemetry/Resources/ResourceBuilder.cs b/src/OpenTelemetry/Resources/ResourceBuilder.cs index b682244fe43..9e48f314c5e 100644 --- a/src/OpenTelemetry/Resources/ResourceBuilder.cs +++ b/src/OpenTelemetry/Resources/ResourceBuilder.cs @@ -30,14 +30,20 @@ private ResourceBuilder() { } - + /// + /// Creates a instance with Default + /// service.name added. See resource + /// semantic conventions for details. + /// + /// Created . public static ResourceBuilder CreateDefault() => new ResourceBuilder().AddDefault(); /// /// Creates a instance with Telemetry /// SDK added. See resource + /// href="https://github.com/open-telemetry/opentelemetry-specification/tree/master/specification/resource/semantic_conventions#telemetry-sdk/">resource /// semantic conventions for details. /// /// Created . diff --git a/src/OpenTelemetry/Resources/ResourceBuilderExtensions.cs b/src/OpenTelemetry/Resources/ResourceBuilderExtensions.cs index f71e134ec49..27a89175db9 100644 --- a/src/OpenTelemetry/Resources/ResourceBuilderExtensions.cs +++ b/src/OpenTelemetry/Resources/ResourceBuilderExtensions.cs @@ -26,6 +26,12 @@ public static class ResourceBuilderExtensions { private static readonly Version Version = typeof(Resource).Assembly.GetName().Version; + private static Resource DefaultResource { get; } = new Resource(new Dictionary + { + [ResourceSemanticConventions.AttributeServiceName] = "unknown_service:" + + (string.IsNullOrWhiteSpace(System.Diagnostics.Process.GetCurrentProcess().ProcessName) ? System.Diagnostics.Process.GetCurrentProcess().ProcessName : string.Empty), + }); + private static Resource TelemetryResource { get; } = new Resource(new Dictionary { [ResourceSemanticConventions.AttributeTelemetrySdkName] = "opentelemetry", @@ -96,7 +102,7 @@ public static ResourceBuilder AddService( /// Returns for chaining. public static ResourceBuilder AddDefault(this ResourceBuilder resourceBuilder) { - return resourceBuilder.AddResource(TelemetryResource); + return resourceBuilder.AddResource(DefaultResource); } /// diff --git a/test/OpenTelemetry.Tests/Resources/ResourceTest.cs b/test/OpenTelemetry.Tests/Resources/ResourceTest.cs index 3abd7845d3f..c638e877496 100644 --- a/test/OpenTelemetry.Tests/Resources/ResourceTest.cs +++ b/test/OpenTelemetry.Tests/Resources/ResourceTest.cs @@ -331,10 +331,10 @@ public void MergeResource_UpdatingResourceOverridesCurrentResource() } [Fact] - public void GetResourceWithDefaultAttributes_EmptyResource() + public void GetResourceWithTelemetrySDKAttributes() { // Arrange - var resource = ResourceBuilder.CreateDefault().AddEnvironmentVariableDetector().Build(); + var resource = ResourceBuilder.CreateSDK().AddEnvironmentVariableDetector().Build(); // Assert var attributes = resource.Attributes; @@ -342,6 +342,18 @@ public void GetResourceWithDefaultAttributes_EmptyResource() ValidateTelemetrySdkAttributes(attributes); } + [Fact] + public void GetResourceWithDefaultAttributes_EmptyResource() + { + // Arrange + var resource = ResourceBuilder.CreateDefault().AddEnvironmentVariableDetector().Build(); + + // Assert + var attributes = resource.Attributes; + Assert.Single(attributes); + ValidateDefaultAttributes(attributes); + } + [Fact] public void GetResourceWithDefaultAttributes_ResourceWithAttrs() { @@ -350,9 +362,9 @@ public void GetResourceWithDefaultAttributes_ResourceWithAttrs() // Assert var attributes = resource.Attributes; - Assert.Equal(5, attributes.Count()); + Assert.Equal(3, attributes.Count()); ValidateAttributes(attributes, 0, 1); - ValidateTelemetrySdkAttributes(attributes); + ValidateDefaultAttributes(attributes); } [Fact] @@ -364,9 +376,9 @@ public void GetResourceWithDefaultAttributes_WithEnvVar() // Assert var attributes = resource.Attributes; - Assert.Equal(7, attributes.Count()); + Assert.Equal(5, attributes.Count()); ValidateAttributes(attributes, 0, 1); - ValidateTelemetrySdkAttributes(attributes); + ValidateDefaultAttributes(attributes); Assert.Contains(new KeyValuePair("EVKey1", "EVVal1"), attributes); Assert.Contains(new KeyValuePair("EVKey2", "EVVal2"), attributes); } @@ -412,6 +424,13 @@ private static void ValidateTelemetrySdkAttributes(IEnumerable> attributes) + { + var serviceName = attributes.Where(pair => pair.Key.Equals("service.name")); + Assert.Single(serviceName); + Assert.Contains("unknown_service:", serviceName.FirstOrDefault().Value as string); + } + private Dictionary CreateAttributes(int attributeCount, int startIndex = 0) { var attributes = new Dictionary(); From 7144e115e7d9dc2a52c7356db22374b07885ad9c Mon Sep 17 00:00:00 2001 From: Austin Tan Date: Fri, 29 Jan 2021 09:54:58 -0800 Subject: [PATCH 04/19] Fixing Tracer Test with SDKResoruce --- test/OpenTelemetry.Tests/Trace/TracerProviderSdkTest.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/OpenTelemetry.Tests/Trace/TracerProviderSdkTest.cs b/test/OpenTelemetry.Tests/Trace/TracerProviderSdkTest.cs index de7e0be8376..7b826c93176 100644 --- a/test/OpenTelemetry.Tests/Trace/TracerProviderSdkTest.cs +++ b/test/OpenTelemetry.Tests/Trace/TracerProviderSdkTest.cs @@ -369,9 +369,9 @@ public void TracerProvideSdkCreatesAndDiposesInstrumentation() } [Fact] - public void TracerProviderSdkBuildsWithDefaultResource() + public void TracerProviderSdkBuildsWithSDKResource() { - var tracerProvider = Sdk.CreateTracerProviderBuilder().Build(); + var tracerProvider = Sdk.CreateTracerProviderBuilder().SetResourceBuilder(ResourceBuilder.CreateSDK()).Build(); var resource = tracerProvider.GetResource(); var attributes = resource.Attributes; From aa9cfb609a8fb49931ec572f87feeedbd52b1ff8 Mon Sep 17 00:00:00 2001 From: Austin Tan Date: Fri, 29 Jan 2021 13:29:05 -0800 Subject: [PATCH 05/19] removing api reference --- .../.publicApi/net452/PublicAPI.Unshipped.txt | 2 -- .../.publicApi/net46/PublicAPI.Unshipped.txt | 2 -- .../.publicApi/net461/PublicAPI.Unshipped.txt | 2 -- .../.publicApi/netstandard2.0/PublicAPI.Unshipped.txt | 2 -- src/OpenTelemetry/Resources/ResourceBuilder.cs | 10 ---------- 5 files changed, 18 deletions(-) diff --git a/src/OpenTelemetry/.publicApi/net452/PublicAPI.Unshipped.txt b/src/OpenTelemetry/.publicApi/net452/PublicAPI.Unshipped.txt index d56678b9b67..5017dd7d64f 100644 --- a/src/OpenTelemetry/.publicApi/net452/PublicAPI.Unshipped.txt +++ b/src/OpenTelemetry/.publicApi/net452/PublicAPI.Unshipped.txt @@ -232,8 +232,6 @@ abstract OpenTelemetry.BaseExportProcessor.OnExport(T data) -> void override sealed OpenTelemetry.BaseExportProcessor.OnStart(T data) -> void readonly OpenTelemetry.BaseExportProcessor.exporter -> OpenTelemetry.BaseExporter static OpenTelemetry.ProviderExtensions.GetResource(this OpenTelemetry.BaseProvider baseProvider) -> OpenTelemetry.Resources.Resource -static OpenTelemetry.Resources.ResourceBuilder.CreateSDK() -> OpenTelemetry.Resources.ResourceBuilder -static OpenTelemetry.Resources.ResourceBuilderExtensions.AddDefault(this OpenTelemetry.Resources.ResourceBuilder resourceBuilder) -> OpenTelemetry.Resources.ResourceBuilder static OpenTelemetry.Resources.ResourceBuilderExtensions.AddEnvironmentVariableDetector(this OpenTelemetry.Resources.ResourceBuilder resourceBuilder) -> OpenTelemetry.Resources.ResourceBuilder static OpenTelemetry.Resources.Resource.Empty.get -> OpenTelemetry.Resources.Resource static OpenTelemetry.Resources.ResourceBuilderExtensions.AddAttributes(this OpenTelemetry.Resources.ResourceBuilder resourceBuilder, System.Collections.Generic.IEnumerable> attributes) -> OpenTelemetry.Resources.ResourceBuilder diff --git a/src/OpenTelemetry/.publicApi/net46/PublicAPI.Unshipped.txt b/src/OpenTelemetry/.publicApi/net46/PublicAPI.Unshipped.txt index 53eaad12e7f..899e11cd643 100644 --- a/src/OpenTelemetry/.publicApi/net46/PublicAPI.Unshipped.txt +++ b/src/OpenTelemetry/.publicApi/net46/PublicAPI.Unshipped.txt @@ -232,8 +232,6 @@ abstract OpenTelemetry.BaseExportProcessor.OnExport(T data) -> void override sealed OpenTelemetry.BaseExportProcessor.OnStart(T data) -> void readonly OpenTelemetry.BaseExportProcessor.exporter -> OpenTelemetry.BaseExporter static OpenTelemetry.ProviderExtensions.GetResource(this OpenTelemetry.BaseProvider baseProvider) -> OpenTelemetry.Resources.Resource -static OpenTelemetry.Resources.ResourceBuilder.CreateSDK() -> OpenTelemetry.Resources.ResourceBuilder -static OpenTelemetry.Resources.ResourceBuilderExtensions.AddDefault(this OpenTelemetry.Resources.ResourceBuilder resourceBuilder) -> OpenTelemetry.Resources.ResourceBuilder static OpenTelemetry.Resources.ResourceBuilderExtensions.AddEnvironmentVariableDetector(this OpenTelemetry.Resources.ResourceBuilder resourceBuilder) -> OpenTelemetry.Resources.ResourceBuilder static OpenTelemetry.Resources.Resource.Empty.get -> OpenTelemetry.Resources.Resource static OpenTelemetry.Resources.ResourceBuilderExtensions.AddAttributes(this OpenTelemetry.Resources.ResourceBuilder resourceBuilder, System.Collections.Generic.IEnumerable> attributes) -> OpenTelemetry.Resources.ResourceBuilder diff --git a/src/OpenTelemetry/.publicApi/net461/PublicAPI.Unshipped.txt b/src/OpenTelemetry/.publicApi/net461/PublicAPI.Unshipped.txt index 711e1aae4dd..9cf4125f8ef 100644 --- a/src/OpenTelemetry/.publicApi/net461/PublicAPI.Unshipped.txt +++ b/src/OpenTelemetry/.publicApi/net461/PublicAPI.Unshipped.txt @@ -256,8 +256,6 @@ override sealed OpenTelemetry.BaseExportProcessor.OnStart(T data) -> void readonly OpenTelemetry.BaseExportProcessor.exporter -> OpenTelemetry.BaseExporter static Microsoft.Extensions.Logging.OpenTelemetryLoggingExtensions.AddOpenTelemetry(this Microsoft.Extensions.Logging.ILoggingBuilder builder, System.Action configure = null) -> Microsoft.Extensions.Logging.ILoggingBuilder static OpenTelemetry.ProviderExtensions.GetResource(this OpenTelemetry.BaseProvider baseProvider) -> OpenTelemetry.Resources.Resource -static OpenTelemetry.Resources.ResourceBuilder.CreateSDK() -> OpenTelemetry.Resources.ResourceBuilder -static OpenTelemetry.Resources.ResourceBuilderExtensions.AddDefault(this OpenTelemetry.Resources.ResourceBuilder resourceBuilder) -> OpenTelemetry.Resources.ResourceBuilder static OpenTelemetry.Resources.ResourceBuilderExtensions.AddEnvironmentVariableDetector(this OpenTelemetry.Resources.ResourceBuilder resourceBuilder) -> OpenTelemetry.Resources.ResourceBuilder static OpenTelemetry.Resources.Resource.Empty.get -> OpenTelemetry.Resources.Resource static OpenTelemetry.Resources.ResourceBuilderExtensions.AddAttributes(this OpenTelemetry.Resources.ResourceBuilder resourceBuilder, System.Collections.Generic.IEnumerable> attributes) -> OpenTelemetry.Resources.ResourceBuilder diff --git a/src/OpenTelemetry/.publicApi/netstandard2.0/PublicAPI.Unshipped.txt b/src/OpenTelemetry/.publicApi/netstandard2.0/PublicAPI.Unshipped.txt index 711e1aae4dd..9cf4125f8ef 100644 --- a/src/OpenTelemetry/.publicApi/netstandard2.0/PublicAPI.Unshipped.txt +++ b/src/OpenTelemetry/.publicApi/netstandard2.0/PublicAPI.Unshipped.txt @@ -256,8 +256,6 @@ override sealed OpenTelemetry.BaseExportProcessor.OnStart(T data) -> void readonly OpenTelemetry.BaseExportProcessor.exporter -> OpenTelemetry.BaseExporter static Microsoft.Extensions.Logging.OpenTelemetryLoggingExtensions.AddOpenTelemetry(this Microsoft.Extensions.Logging.ILoggingBuilder builder, System.Action configure = null) -> Microsoft.Extensions.Logging.ILoggingBuilder static OpenTelemetry.ProviderExtensions.GetResource(this OpenTelemetry.BaseProvider baseProvider) -> OpenTelemetry.Resources.Resource -static OpenTelemetry.Resources.ResourceBuilder.CreateSDK() -> OpenTelemetry.Resources.ResourceBuilder -static OpenTelemetry.Resources.ResourceBuilderExtensions.AddDefault(this OpenTelemetry.Resources.ResourceBuilder resourceBuilder) -> OpenTelemetry.Resources.ResourceBuilder static OpenTelemetry.Resources.ResourceBuilderExtensions.AddEnvironmentVariableDetector(this OpenTelemetry.Resources.ResourceBuilder resourceBuilder) -> OpenTelemetry.Resources.ResourceBuilder static OpenTelemetry.Resources.Resource.Empty.get -> OpenTelemetry.Resources.Resource static OpenTelemetry.Resources.ResourceBuilderExtensions.AddAttributes(this OpenTelemetry.Resources.ResourceBuilder resourceBuilder, System.Collections.Generic.IEnumerable> attributes) -> OpenTelemetry.Resources.ResourceBuilder diff --git a/src/OpenTelemetry/Resources/ResourceBuilder.cs b/src/OpenTelemetry/Resources/ResourceBuilder.cs index 9e48f314c5e..63c29634bad 100644 --- a/src/OpenTelemetry/Resources/ResourceBuilder.cs +++ b/src/OpenTelemetry/Resources/ResourceBuilder.cs @@ -40,16 +40,6 @@ private ResourceBuilder() public static ResourceBuilder CreateDefault() => new ResourceBuilder().AddDefault(); - /// - /// Creates a instance with Telemetry - /// SDK added. See resource - /// semantic conventions for details. - /// - /// Created . - public static ResourceBuilder CreateSDK() - => new ResourceBuilder().AddTelemetrySdk(); // TODO: Seek spec clarify on whether or not OtelEnvResourceDetector should be added by default. - /// /// Creates an empty instance. /// From 6cef7fdc10f57c8d99eaab2f18c27612887c2e49 Mon Sep 17 00:00:00 2001 From: Austin Tan Date: Fri, 29 Jan 2021 13:55:59 -0800 Subject: [PATCH 06/19] Fixing tests --- test/OpenTelemetry.Tests/Resources/ResourceTest.cs | 4 ++-- test/OpenTelemetry.Tests/Trace/TracerProviderSdkTest.cs | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/test/OpenTelemetry.Tests/Resources/ResourceTest.cs b/test/OpenTelemetry.Tests/Resources/ResourceTest.cs index c638e877496..f401000905d 100644 --- a/test/OpenTelemetry.Tests/Resources/ResourceTest.cs +++ b/test/OpenTelemetry.Tests/Resources/ResourceTest.cs @@ -334,11 +334,11 @@ public void MergeResource_UpdatingResourceOverridesCurrentResource() public void GetResourceWithTelemetrySDKAttributes() { // Arrange - var resource = ResourceBuilder.CreateSDK().AddEnvironmentVariableDetector().Build(); + var resource = ResourceBuilder.CreateDefault().AddTelemetrySdk().AddEnvironmentVariableDetector().Build(); // Assert var attributes = resource.Attributes; - Assert.Equal(3, attributes.Count()); + Assert.Equal(4, attributes.Count()); ValidateTelemetrySdkAttributes(attributes); } diff --git a/test/OpenTelemetry.Tests/Trace/TracerProviderSdkTest.cs b/test/OpenTelemetry.Tests/Trace/TracerProviderSdkTest.cs index 7b826c93176..0f8a74cb30c 100644 --- a/test/OpenTelemetry.Tests/Trace/TracerProviderSdkTest.cs +++ b/test/OpenTelemetry.Tests/Trace/TracerProviderSdkTest.cs @@ -371,7 +371,8 @@ public void TracerProvideSdkCreatesAndDiposesInstrumentation() [Fact] public void TracerProviderSdkBuildsWithSDKResource() { - var tracerProvider = Sdk.CreateTracerProviderBuilder().SetResourceBuilder(ResourceBuilder.CreateSDK()).Build(); + var tracerProvider = Sdk.CreateTracerProviderBuilder().SetResourceBuilder( + ResourceBuilder.CreateDefault().AddTelemetrySdk()).Build(); var resource = tracerProvider.GetResource(); var attributes = resource.Attributes; From bc2210948706067e7663d5a1bf35520670c8543c Mon Sep 17 00:00:00 2001 From: Austin Tan Date: Fri, 29 Jan 2021 14:04:25 -0800 Subject: [PATCH 07/19] Changelog and API --- src/OpenTelemetry/.publicApi/net452/PublicAPI.Unshipped.txt | 1 + src/OpenTelemetry/.publicApi/net46/PublicAPI.Unshipped.txt | 1 + src/OpenTelemetry/.publicApi/net461/PublicAPI.Unshipped.txt | 1 + .../.publicApi/netstandard2.0/PublicAPI.Unshipped.txt | 1 + src/OpenTelemetry/CHANGELOG.md | 4 ++++ 5 files changed, 8 insertions(+) diff --git a/src/OpenTelemetry/.publicApi/net452/PublicAPI.Unshipped.txt b/src/OpenTelemetry/.publicApi/net452/PublicAPI.Unshipped.txt index bd352476ea3..03cfeadc912 100644 --- a/src/OpenTelemetry/.publicApi/net452/PublicAPI.Unshipped.txt +++ b/src/OpenTelemetry/.publicApi/net452/PublicAPI.Unshipped.txt @@ -120,6 +120,7 @@ abstract OpenTelemetry.BaseExportProcessor.OnExport(T data) -> void override sealed OpenTelemetry.BaseExportProcessor.OnStart(T data) -> void readonly OpenTelemetry.BaseExportProcessor.exporter -> OpenTelemetry.BaseExporter static OpenTelemetry.ProviderExtensions.GetResource(this OpenTelemetry.BaseProvider baseProvider) -> OpenTelemetry.Resources.Resource +static OpenTelemetry.Resources.ResourceBuilderExtensions.AddDefault(this OpenTelemetry.Resources.ResourceBuilder resourceBuilder) -> OpenTelemetry.Resources.ResourceBuilder static OpenTelemetry.Resources.ResourceBuilderExtensions.AddEnvironmentVariableDetector(this OpenTelemetry.Resources.ResourceBuilder resourceBuilder) -> OpenTelemetry.Resources.ResourceBuilder static OpenTelemetry.Resources.Resource.Empty.get -> OpenTelemetry.Resources.Resource static OpenTelemetry.Resources.ResourceBuilderExtensions.AddAttributes(this OpenTelemetry.Resources.ResourceBuilder resourceBuilder, System.Collections.Generic.IEnumerable> attributes) -> OpenTelemetry.Resources.ResourceBuilder diff --git a/src/OpenTelemetry/.publicApi/net46/PublicAPI.Unshipped.txt b/src/OpenTelemetry/.publicApi/net46/PublicAPI.Unshipped.txt index a2634179477..d864bca7cd1 100644 --- a/src/OpenTelemetry/.publicApi/net46/PublicAPI.Unshipped.txt +++ b/src/OpenTelemetry/.publicApi/net46/PublicAPI.Unshipped.txt @@ -120,6 +120,7 @@ abstract OpenTelemetry.BaseExportProcessor.OnExport(T data) -> void override sealed OpenTelemetry.BaseExportProcessor.OnStart(T data) -> void readonly OpenTelemetry.BaseExportProcessor.exporter -> OpenTelemetry.BaseExporter static OpenTelemetry.ProviderExtensions.GetResource(this OpenTelemetry.BaseProvider baseProvider) -> OpenTelemetry.Resources.Resource +static OpenTelemetry.Resources.ResourceBuilderExtensions.AddDefault(this OpenTelemetry.Resources.ResourceBuilder resourceBuilder) -> OpenTelemetry.Resources.ResourceBuilder static OpenTelemetry.Resources.ResourceBuilderExtensions.AddEnvironmentVariableDetector(this OpenTelemetry.Resources.ResourceBuilder resourceBuilder) -> OpenTelemetry.Resources.ResourceBuilder static OpenTelemetry.Resources.Resource.Empty.get -> OpenTelemetry.Resources.Resource static OpenTelemetry.Resources.ResourceBuilderExtensions.AddAttributes(this OpenTelemetry.Resources.ResourceBuilder resourceBuilder, System.Collections.Generic.IEnumerable> attributes) -> OpenTelemetry.Resources.ResourceBuilder diff --git a/src/OpenTelemetry/.publicApi/net461/PublicAPI.Unshipped.txt b/src/OpenTelemetry/.publicApi/net461/PublicAPI.Unshipped.txt index dc1710590b2..eafd34e758f 100644 --- a/src/OpenTelemetry/.publicApi/net461/PublicAPI.Unshipped.txt +++ b/src/OpenTelemetry/.publicApi/net461/PublicAPI.Unshipped.txt @@ -144,6 +144,7 @@ override sealed OpenTelemetry.BaseExportProcessor.OnStart(T data) -> void readonly OpenTelemetry.BaseExportProcessor.exporter -> OpenTelemetry.BaseExporter static Microsoft.Extensions.Logging.OpenTelemetryLoggingExtensions.AddOpenTelemetry(this Microsoft.Extensions.Logging.ILoggingBuilder builder, System.Action configure = null) -> Microsoft.Extensions.Logging.ILoggingBuilder static OpenTelemetry.ProviderExtensions.GetResource(this OpenTelemetry.BaseProvider baseProvider) -> OpenTelemetry.Resources.Resource +static OpenTelemetry.Resources.ResourceBuilderExtensions.AddDefault(this OpenTelemetry.Resources.ResourceBuilder resourceBuilder) -> OpenTelemetry.Resources.ResourceBuilder static OpenTelemetry.Resources.ResourceBuilderExtensions.AddEnvironmentVariableDetector(this OpenTelemetry.Resources.ResourceBuilder resourceBuilder) -> OpenTelemetry.Resources.ResourceBuilder static OpenTelemetry.Resources.Resource.Empty.get -> OpenTelemetry.Resources.Resource static OpenTelemetry.Resources.ResourceBuilderExtensions.AddAttributes(this OpenTelemetry.Resources.ResourceBuilder resourceBuilder, System.Collections.Generic.IEnumerable> attributes) -> OpenTelemetry.Resources.ResourceBuilder diff --git a/src/OpenTelemetry/.publicApi/netstandard2.0/PublicAPI.Unshipped.txt b/src/OpenTelemetry/.publicApi/netstandard2.0/PublicAPI.Unshipped.txt index dc1710590b2..eafd34e758f 100644 --- a/src/OpenTelemetry/.publicApi/netstandard2.0/PublicAPI.Unshipped.txt +++ b/src/OpenTelemetry/.publicApi/netstandard2.0/PublicAPI.Unshipped.txt @@ -144,6 +144,7 @@ override sealed OpenTelemetry.BaseExportProcessor.OnStart(T data) -> void readonly OpenTelemetry.BaseExportProcessor.exporter -> OpenTelemetry.BaseExporter static Microsoft.Extensions.Logging.OpenTelemetryLoggingExtensions.AddOpenTelemetry(this Microsoft.Extensions.Logging.ILoggingBuilder builder, System.Action configure = null) -> Microsoft.Extensions.Logging.ILoggingBuilder static OpenTelemetry.ProviderExtensions.GetResource(this OpenTelemetry.BaseProvider baseProvider) -> OpenTelemetry.Resources.Resource +static OpenTelemetry.Resources.ResourceBuilderExtensions.AddDefault(this OpenTelemetry.Resources.ResourceBuilder resourceBuilder) -> OpenTelemetry.Resources.ResourceBuilder static OpenTelemetry.Resources.ResourceBuilderExtensions.AddEnvironmentVariableDetector(this OpenTelemetry.Resources.ResourceBuilder resourceBuilder) -> OpenTelemetry.Resources.ResourceBuilder static OpenTelemetry.Resources.Resource.Empty.get -> OpenTelemetry.Resources.Resource static OpenTelemetry.Resources.ResourceBuilderExtensions.AddAttributes(this OpenTelemetry.Resources.ResourceBuilder resourceBuilder, System.Collections.Generic.IEnumerable> attributes) -> OpenTelemetry.Resources.ResourceBuilder diff --git a/src/OpenTelemetry/CHANGELOG.md b/src/OpenTelemetry/CHANGELOG.md index 1a9420ad4cc..5ccb38b67a6 100644 --- a/src/OpenTelemetry/CHANGELOG.md +++ b/src/OpenTelemetry/CHANGELOG.md @@ -39,6 +39,10 @@ * Metrics removed as it is not part 1.0.0 release. See issue [#1501](https://github.com/open-telemetry/opentelemetry-dotnet/pull/1655) for details on Metric release plans. +* Default `Resource` has been updated. No longer linked to Telemetry SDK, + but that enabled through .AddTelemetrySDK() extensions. Instead provides + default service.name attribute composed of local service and process name. + [#1744](https://github.com/open-telemetry/opentelemetry-dotnet/pull/1744) ## 1.0.0-rc1.1 From c0866b1a7153b21ff2b0216a70a281fdd2227609 Mon Sep 17 00:00:00 2001 From: Austin Tan Date: Sun, 31 Jan 2021 21:48:21 -0800 Subject: [PATCH 08/19] Re-add test with default ProviderBuilder and privatize method --- .../Resources/ResourceBuilderExtensions.cs | 2 +- .../Trace/TracerProviderSdkTest.cs | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/OpenTelemetry/Resources/ResourceBuilderExtensions.cs b/src/OpenTelemetry/Resources/ResourceBuilderExtensions.cs index 01a94e21efa..1fcfbff0288 100644 --- a/src/OpenTelemetry/Resources/ResourceBuilderExtensions.cs +++ b/src/OpenTelemetry/Resources/ResourceBuilderExtensions.cs @@ -100,7 +100,7 @@ public static ResourceBuilder AddService( /// /// . /// Returns for chaining. - public static ResourceBuilder AddDefault(this ResourceBuilder resourceBuilder) + private static ResourceBuilder AddDefault(this ResourceBuilder resourceBuilder) { return resourceBuilder.AddResource(DefaultResource); } diff --git a/test/OpenTelemetry.Tests/Trace/TracerProviderSdkTest.cs b/test/OpenTelemetry.Tests/Trace/TracerProviderSdkTest.cs index 0f8a74cb30c..bd2c7315697 100644 --- a/test/OpenTelemetry.Tests/Trace/TracerProviderSdkTest.cs +++ b/test/OpenTelemetry.Tests/Trace/TracerProviderSdkTest.cs @@ -368,6 +368,21 @@ public void TracerProvideSdkCreatesAndDiposesInstrumentation() Assert.True(testInstrumentation.IsDisposed); } + [Fact] + public void TracerProviderSdkBuildsWithDefaultResource() + { + var tracerProvider = Sdk.CreateTracerProviderBuilder().Build(); + var resource = tracerProvider.GetResource(); + var attributes = resource.Attributes; + + Assert.NotNull(resource); + Assert.NotEqual(Resource.Empty, resource); + Assert.Single(resource.Attributes); + Assert.Equal(resource.Attributes.FirstOrDefault().Key, ResourceSemanticConventions.AttributeServiceName); + Assert.Contains("unknown_service:", (string)resource.Attributes.FirstOrDefault().Value); + + } + [Fact] public void TracerProviderSdkBuildsWithSDKResource() { From ebad31c4d4b3fe24f71371225d5aeb2e572baf7b Mon Sep 17 00:00:00 2001 From: Austin Tan Date: Sun, 31 Jan 2021 22:04:15 -0800 Subject: [PATCH 09/19] reverting API changes --- src/OpenTelemetry/.publicApi/net452/PublicAPI.Unshipped.txt | 1 - src/OpenTelemetry/.publicApi/net46/PublicAPI.Unshipped.txt | 1 - src/OpenTelemetry/.publicApi/net461/PublicAPI.Unshipped.txt | 1 - .../.publicApi/netstandard2.0/PublicAPI.Unshipped.txt | 1 - 4 files changed, 4 deletions(-) diff --git a/src/OpenTelemetry/.publicApi/net452/PublicAPI.Unshipped.txt b/src/OpenTelemetry/.publicApi/net452/PublicAPI.Unshipped.txt index 03cfeadc912..bd352476ea3 100644 --- a/src/OpenTelemetry/.publicApi/net452/PublicAPI.Unshipped.txt +++ b/src/OpenTelemetry/.publicApi/net452/PublicAPI.Unshipped.txt @@ -120,7 +120,6 @@ abstract OpenTelemetry.BaseExportProcessor.OnExport(T data) -> void override sealed OpenTelemetry.BaseExportProcessor.OnStart(T data) -> void readonly OpenTelemetry.BaseExportProcessor.exporter -> OpenTelemetry.BaseExporter static OpenTelemetry.ProviderExtensions.GetResource(this OpenTelemetry.BaseProvider baseProvider) -> OpenTelemetry.Resources.Resource -static OpenTelemetry.Resources.ResourceBuilderExtensions.AddDefault(this OpenTelemetry.Resources.ResourceBuilder resourceBuilder) -> OpenTelemetry.Resources.ResourceBuilder static OpenTelemetry.Resources.ResourceBuilderExtensions.AddEnvironmentVariableDetector(this OpenTelemetry.Resources.ResourceBuilder resourceBuilder) -> OpenTelemetry.Resources.ResourceBuilder static OpenTelemetry.Resources.Resource.Empty.get -> OpenTelemetry.Resources.Resource static OpenTelemetry.Resources.ResourceBuilderExtensions.AddAttributes(this OpenTelemetry.Resources.ResourceBuilder resourceBuilder, System.Collections.Generic.IEnumerable> attributes) -> OpenTelemetry.Resources.ResourceBuilder diff --git a/src/OpenTelemetry/.publicApi/net46/PublicAPI.Unshipped.txt b/src/OpenTelemetry/.publicApi/net46/PublicAPI.Unshipped.txt index d864bca7cd1..a2634179477 100644 --- a/src/OpenTelemetry/.publicApi/net46/PublicAPI.Unshipped.txt +++ b/src/OpenTelemetry/.publicApi/net46/PublicAPI.Unshipped.txt @@ -120,7 +120,6 @@ abstract OpenTelemetry.BaseExportProcessor.OnExport(T data) -> void override sealed OpenTelemetry.BaseExportProcessor.OnStart(T data) -> void readonly OpenTelemetry.BaseExportProcessor.exporter -> OpenTelemetry.BaseExporter static OpenTelemetry.ProviderExtensions.GetResource(this OpenTelemetry.BaseProvider baseProvider) -> OpenTelemetry.Resources.Resource -static OpenTelemetry.Resources.ResourceBuilderExtensions.AddDefault(this OpenTelemetry.Resources.ResourceBuilder resourceBuilder) -> OpenTelemetry.Resources.ResourceBuilder static OpenTelemetry.Resources.ResourceBuilderExtensions.AddEnvironmentVariableDetector(this OpenTelemetry.Resources.ResourceBuilder resourceBuilder) -> OpenTelemetry.Resources.ResourceBuilder static OpenTelemetry.Resources.Resource.Empty.get -> OpenTelemetry.Resources.Resource static OpenTelemetry.Resources.ResourceBuilderExtensions.AddAttributes(this OpenTelemetry.Resources.ResourceBuilder resourceBuilder, System.Collections.Generic.IEnumerable> attributes) -> OpenTelemetry.Resources.ResourceBuilder diff --git a/src/OpenTelemetry/.publicApi/net461/PublicAPI.Unshipped.txt b/src/OpenTelemetry/.publicApi/net461/PublicAPI.Unshipped.txt index eafd34e758f..dc1710590b2 100644 --- a/src/OpenTelemetry/.publicApi/net461/PublicAPI.Unshipped.txt +++ b/src/OpenTelemetry/.publicApi/net461/PublicAPI.Unshipped.txt @@ -144,7 +144,6 @@ override sealed OpenTelemetry.BaseExportProcessor.OnStart(T data) -> void readonly OpenTelemetry.BaseExportProcessor.exporter -> OpenTelemetry.BaseExporter static Microsoft.Extensions.Logging.OpenTelemetryLoggingExtensions.AddOpenTelemetry(this Microsoft.Extensions.Logging.ILoggingBuilder builder, System.Action configure = null) -> Microsoft.Extensions.Logging.ILoggingBuilder static OpenTelemetry.ProviderExtensions.GetResource(this OpenTelemetry.BaseProvider baseProvider) -> OpenTelemetry.Resources.Resource -static OpenTelemetry.Resources.ResourceBuilderExtensions.AddDefault(this OpenTelemetry.Resources.ResourceBuilder resourceBuilder) -> OpenTelemetry.Resources.ResourceBuilder static OpenTelemetry.Resources.ResourceBuilderExtensions.AddEnvironmentVariableDetector(this OpenTelemetry.Resources.ResourceBuilder resourceBuilder) -> OpenTelemetry.Resources.ResourceBuilder static OpenTelemetry.Resources.Resource.Empty.get -> OpenTelemetry.Resources.Resource static OpenTelemetry.Resources.ResourceBuilderExtensions.AddAttributes(this OpenTelemetry.Resources.ResourceBuilder resourceBuilder, System.Collections.Generic.IEnumerable> attributes) -> OpenTelemetry.Resources.ResourceBuilder diff --git a/src/OpenTelemetry/.publicApi/netstandard2.0/PublicAPI.Unshipped.txt b/src/OpenTelemetry/.publicApi/netstandard2.0/PublicAPI.Unshipped.txt index eafd34e758f..dc1710590b2 100644 --- a/src/OpenTelemetry/.publicApi/netstandard2.0/PublicAPI.Unshipped.txt +++ b/src/OpenTelemetry/.publicApi/netstandard2.0/PublicAPI.Unshipped.txt @@ -144,7 +144,6 @@ override sealed OpenTelemetry.BaseExportProcessor.OnStart(T data) -> void readonly OpenTelemetry.BaseExportProcessor.exporter -> OpenTelemetry.BaseExporter static Microsoft.Extensions.Logging.OpenTelemetryLoggingExtensions.AddOpenTelemetry(this Microsoft.Extensions.Logging.ILoggingBuilder builder, System.Action configure = null) -> Microsoft.Extensions.Logging.ILoggingBuilder static OpenTelemetry.ProviderExtensions.GetResource(this OpenTelemetry.BaseProvider baseProvider) -> OpenTelemetry.Resources.Resource -static OpenTelemetry.Resources.ResourceBuilderExtensions.AddDefault(this OpenTelemetry.Resources.ResourceBuilder resourceBuilder) -> OpenTelemetry.Resources.ResourceBuilder static OpenTelemetry.Resources.ResourceBuilderExtensions.AddEnvironmentVariableDetector(this OpenTelemetry.Resources.ResourceBuilder resourceBuilder) -> OpenTelemetry.Resources.ResourceBuilder static OpenTelemetry.Resources.Resource.Empty.get -> OpenTelemetry.Resources.Resource static OpenTelemetry.Resources.ResourceBuilderExtensions.AddAttributes(this OpenTelemetry.Resources.ResourceBuilder resourceBuilder, System.Collections.Generic.IEnumerable> attributes) -> OpenTelemetry.Resources.ResourceBuilder From f76f9a13ad0b8472cc7e0974460a823054052d14 Mon Sep 17 00:00:00 2001 From: Austin Tan Date: Mon, 1 Feb 2021 10:53:31 -0800 Subject: [PATCH 10/19] Removing AddDfault method altogether, performing addition inside CreateDefault --- .../Resources/ResourceBuilder.cs | 9 ++++++++- .../Resources/ResourceBuilderExtensions.cs | 19 ------------------- 2 files changed, 8 insertions(+), 20 deletions(-) diff --git a/src/OpenTelemetry/Resources/ResourceBuilder.cs b/src/OpenTelemetry/Resources/ResourceBuilder.cs index 63c29634bad..2abf69a8f41 100644 --- a/src/OpenTelemetry/Resources/ResourceBuilder.cs +++ b/src/OpenTelemetry/Resources/ResourceBuilder.cs @@ -30,6 +30,13 @@ private ResourceBuilder() { } + private static Resource DefaultResource { get; } = new Resource(new Dictionary + { + [ResourceSemanticConventions.AttributeServiceName] = "unknown_service:" + + (string.IsNullOrWhiteSpace(System.Diagnostics.Process.GetCurrentProcess().ProcessName) + ? System.Diagnostics.Process.GetCurrentProcess().ProcessName : string.Empty), + }); + /// /// Creates a instance with Default /// service.name added. See /// Created . public static ResourceBuilder CreateDefault() - => new ResourceBuilder().AddDefault(); + => new ResourceBuilder().AddResource(DefaultResource); /// /// Creates an empty instance. diff --git a/src/OpenTelemetry/Resources/ResourceBuilderExtensions.cs b/src/OpenTelemetry/Resources/ResourceBuilderExtensions.cs index 1eeaa882962..00a6e5a7158 100644 --- a/src/OpenTelemetry/Resources/ResourceBuilderExtensions.cs +++ b/src/OpenTelemetry/Resources/ResourceBuilderExtensions.cs @@ -27,12 +27,6 @@ public static class ResourceBuilderExtensions { private static readonly string FileVersion = FileVersionInfo.GetVersionInfo(typeof(Resource).Assembly.Location).FileVersion; - private static Resource DefaultResource { get; } = new Resource(new Dictionary - { - [ResourceSemanticConventions.AttributeServiceName] = "unknown_service:" - + (string.IsNullOrWhiteSpace(System.Diagnostics.Process.GetCurrentProcess().ProcessName) ? System.Diagnostics.Process.GetCurrentProcess().ProcessName : string.Empty), - }); - private static Resource TelemetryResource { get; } = new Resource(new Dictionary { [ResourceSemanticConventions.AttributeTelemetrySdkName] = "opentelemetry", @@ -93,19 +87,6 @@ public static ResourceBuilder AddService( return resourceBuilder.AddResource(new Resource(resourceAttributes)); } - /// - /// Adds service information to a - /// following semantic - /// conventions. - /// - /// . - /// Returns for chaining. - private static ResourceBuilder AddDefault(this ResourceBuilder resourceBuilder) - { - return resourceBuilder.AddResource(DefaultResource); - } - /// /// Adds service information to a /// following Date: Mon, 1 Feb 2021 10:59:43 -0800 Subject: [PATCH 11/19] Resolving comments - main instead of master, shortened changelog.md --- src/OpenTelemetry/CHANGELOG.md | 4 +--- src/OpenTelemetry/Resources/ResourceBuilderExtensions.cs | 2 +- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/OpenTelemetry/CHANGELOG.md b/src/OpenTelemetry/CHANGELOG.md index 0ef0284de20..1cbfd1826c4 100644 --- a/src/OpenTelemetry/CHANGELOG.md +++ b/src/OpenTelemetry/CHANGELOG.md @@ -44,9 +44,7 @@ Released 2021-Jan-29 [#1501](https://github.com/open-telemetry/opentelemetry-dotnet/pull/1655) for details on Metric release plans. * Fix Resource attribute telemetry.sdk.version to have correct file version. -* Default `Resource` has been updated. No longer linked to Telemetry SDK, - but that enabled through .AddTelemetrySDK() extensions. Instead provides - default service.name attribute composed of local service and process name. +* Default `Resource` will now contain service.name instead of Telemetry SDK. [#1744](https://github.com/open-telemetry/opentelemetry-dotnet/pull/1744) ## 1.0.0-rc1.1 diff --git a/src/OpenTelemetry/Resources/ResourceBuilderExtensions.cs b/src/OpenTelemetry/Resources/ResourceBuilderExtensions.cs index 00a6e5a7158..b7a01d2cde5 100644 --- a/src/OpenTelemetry/Resources/ResourceBuilderExtensions.cs +++ b/src/OpenTelemetry/Resources/ResourceBuilderExtensions.cs @@ -90,7 +90,7 @@ public static ResourceBuilder AddService( /// /// Adds service information to a /// following semantic + /// href="https://github.com/open-telemetry/opentelemetry-specification/tree/main/specification/resource/semantic_conventions#telemetry-sdk">semantic /// conventions. /// /// . From eb72c999ab5cdf584d487ea675cf2d99d3ec488b Mon Sep 17 00:00:00 2001 From: Austin Tan Date: Mon, 1 Feb 2021 11:02:12 -0800 Subject: [PATCH 12/19] Moved to unreleased --- src/OpenTelemetry/CHANGELOG.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/OpenTelemetry/CHANGELOG.md b/src/OpenTelemetry/CHANGELOG.md index 1cbfd1826c4..861806face6 100644 --- a/src/OpenTelemetry/CHANGELOG.md +++ b/src/OpenTelemetry/CHANGELOG.md @@ -1,6 +1,8 @@ # Changelog ## Unreleased +* Default `Resource` will now contain service.name instead of Telemetry SDK. + [#1744](https://github.com/open-telemetry/opentelemetry-dotnet/pull/1744) ## 1.0.0-rc2 @@ -44,8 +46,6 @@ Released 2021-Jan-29 [#1501](https://github.com/open-telemetry/opentelemetry-dotnet/pull/1655) for details on Metric release plans. * Fix Resource attribute telemetry.sdk.version to have correct file version. -* Default `Resource` will now contain service.name instead of Telemetry SDK. - [#1744](https://github.com/open-telemetry/opentelemetry-dotnet/pull/1744) ## 1.0.0-rc1.1 From dc5f09b1775fa4cf18e6cdf639ae53b9bb0d4af7 Mon Sep 17 00:00:00 2001 From: Austin Tan Date: Mon, 1 Feb 2021 11:03:59 -0800 Subject: [PATCH 13/19] markdownlint fix (blank lines) --- src/OpenTelemetry/CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/src/OpenTelemetry/CHANGELOG.md b/src/OpenTelemetry/CHANGELOG.md index 861806face6..5930d1418f6 100644 --- a/src/OpenTelemetry/CHANGELOG.md +++ b/src/OpenTelemetry/CHANGELOG.md @@ -1,6 +1,7 @@ # Changelog ## Unreleased + * Default `Resource` will now contain service.name instead of Telemetry SDK. [#1744](https://github.com/open-telemetry/opentelemetry-dotnet/pull/1744) From 58f9e09db9a2cf18851d39aaf116a9caf5d6fc3a Mon Sep 17 00:00:00 2001 From: Austin Tan Date: Mon, 1 Feb 2021 11:14:20 -0800 Subject: [PATCH 14/19] Closing brace should not be preceded by blank line --- test/OpenTelemetry.Tests/Trace/TracerProviderSdkTest.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/test/OpenTelemetry.Tests/Trace/TracerProviderSdkTest.cs b/test/OpenTelemetry.Tests/Trace/TracerProviderSdkTest.cs index bd2c7315697..7c74b2339a6 100644 --- a/test/OpenTelemetry.Tests/Trace/TracerProviderSdkTest.cs +++ b/test/OpenTelemetry.Tests/Trace/TracerProviderSdkTest.cs @@ -380,7 +380,6 @@ public void TracerProviderSdkBuildsWithDefaultResource() Assert.Single(resource.Attributes); Assert.Equal(resource.Attributes.FirstOrDefault().Key, ResourceSemanticConventions.AttributeServiceName); Assert.Contains("unknown_service:", (string)resource.Attributes.FirstOrDefault().Value); - } [Fact] From f985843cadf0741ecd8f9c288bcba8769ed3d6cf Mon Sep 17 00:00:00 2001 From: Austin Tan Date: Mon, 1 Feb 2021 11:15:54 -0800 Subject: [PATCH 15/19] Removing colon from unknown_service when no processname --- src/OpenTelemetry/Resources/ResourceBuilder.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/OpenTelemetry/Resources/ResourceBuilder.cs b/src/OpenTelemetry/Resources/ResourceBuilder.cs index 2abf69a8f41..645b82f188b 100644 --- a/src/OpenTelemetry/Resources/ResourceBuilder.cs +++ b/src/OpenTelemetry/Resources/ResourceBuilder.cs @@ -32,9 +32,9 @@ private ResourceBuilder() private static Resource DefaultResource { get; } = new Resource(new Dictionary { - [ResourceSemanticConventions.AttributeServiceName] = "unknown_service:" + [ResourceSemanticConventions.AttributeServiceName] = "unknown_service" + (string.IsNullOrWhiteSpace(System.Diagnostics.Process.GetCurrentProcess().ProcessName) - ? System.Diagnostics.Process.GetCurrentProcess().ProcessName : string.Empty), + ? ":" + System.Diagnostics.Process.GetCurrentProcess().ProcessName : string.Empty), }); /// From 12225c11b36b7138ea701e305df6fd42b356b3e2 Mon Sep 17 00:00:00 2001 From: Austin Tan Date: Mon, 1 Feb 2021 11:29:42 -0800 Subject: [PATCH 16/19] removing comma check from sdk test --- test/OpenTelemetry.Tests/Trace/TracerProviderSdkTest.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/OpenTelemetry.Tests/Trace/TracerProviderSdkTest.cs b/test/OpenTelemetry.Tests/Trace/TracerProviderSdkTest.cs index 7c74b2339a6..e193cb9b5b6 100644 --- a/test/OpenTelemetry.Tests/Trace/TracerProviderSdkTest.cs +++ b/test/OpenTelemetry.Tests/Trace/TracerProviderSdkTest.cs @@ -379,7 +379,7 @@ public void TracerProviderSdkBuildsWithDefaultResource() Assert.NotEqual(Resource.Empty, resource); Assert.Single(resource.Attributes); Assert.Equal(resource.Attributes.FirstOrDefault().Key, ResourceSemanticConventions.AttributeServiceName); - Assert.Contains("unknown_service:", (string)resource.Attributes.FirstOrDefault().Value); + Assert.Contains("unknown_service", (string)resource.Attributes.FirstOrDefault().Value); } [Fact] From 429a031bd6a59ae05b869ba321932f6a2f38619a Mon Sep 17 00:00:00 2001 From: Austin Tan Date: Mon, 1 Feb 2021 11:32:53 -0800 Subject: [PATCH 17/19] link to correct spec section --- src/OpenTelemetry/Resources/ResourceBuilder.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/OpenTelemetry/Resources/ResourceBuilder.cs b/src/OpenTelemetry/Resources/ResourceBuilder.cs index 645b82f188b..9f2b0e066c2 100644 --- a/src/OpenTelemetry/Resources/ResourceBuilder.cs +++ b/src/OpenTelemetry/Resources/ResourceBuilder.cs @@ -40,7 +40,7 @@ private ResourceBuilder() /// /// Creates a instance with Default /// service.name added. See resource + /// href="https://github.com/open-telemetry/opentelemetry-specification/tree/main/specification/resource/semantic_conventions#semantic-attributes-with-sdk-provided-default-value">resource /// semantic conventions for details. /// /// Created . From 7e0be45b001cdbc46e6206e5be808000c0e70ed8 Mon Sep 17 00:00:00 2001 From: Austin Tan Date: Mon, 1 Feb 2021 11:39:06 -0800 Subject: [PATCH 18/19] one other case of the colon missing --- test/OpenTelemetry.Tests/Resources/ResourceTest.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/OpenTelemetry.Tests/Resources/ResourceTest.cs b/test/OpenTelemetry.Tests/Resources/ResourceTest.cs index f401000905d..09ac62edbac 100644 --- a/test/OpenTelemetry.Tests/Resources/ResourceTest.cs +++ b/test/OpenTelemetry.Tests/Resources/ResourceTest.cs @@ -428,7 +428,7 @@ private static void ValidateDefaultAttributes(IEnumerable pair.Key.Equals("service.name")); Assert.Single(serviceName); - Assert.Contains("unknown_service:", serviceName.FirstOrDefault().Value as string); + Assert.Contains("unknown_service", serviceName.FirstOrDefault().Value as string); } private Dictionary CreateAttributes(int attributeCount, int startIndex = 0) From d8d0d53d94cd2201e8b7d710208741ae64e2676e Mon Sep 17 00:00:00 2001 From: Austin Tan Date: Mon, 1 Feb 2021 12:41:28 -0800 Subject: [PATCH 19/19] Correcting - reversing string.empty and processname in ternary --- src/OpenTelemetry/Resources/ResourceBuilder.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/OpenTelemetry/Resources/ResourceBuilder.cs b/src/OpenTelemetry/Resources/ResourceBuilder.cs index 9f2b0e066c2..4bc8cc500cd 100644 --- a/src/OpenTelemetry/Resources/ResourceBuilder.cs +++ b/src/OpenTelemetry/Resources/ResourceBuilder.cs @@ -34,7 +34,8 @@ private ResourceBuilder() { [ResourceSemanticConventions.AttributeServiceName] = "unknown_service" + (string.IsNullOrWhiteSpace(System.Diagnostics.Process.GetCurrentProcess().ProcessName) - ? ":" + System.Diagnostics.Process.GetCurrentProcess().ProcessName : string.Empty), + ? string.Empty : + ":" + System.Diagnostics.Process.GetCurrentProcess().ProcessName), }); ///