From 14a48328b88836d91d4c178e7d6af8ba1ac2db71 Mon Sep 17 00:00:00 2001 From: Hussein Jafferjee Date: Fri, 3 Nov 2023 09:56:33 -0700 Subject: [PATCH 1/3] clean up whitespace --- sdk/lib/opentelemetry/sdk/resources/resource.rb | 2 +- sdk/test/opentelemetry/sdk/configurator_test.rb | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/sdk/lib/opentelemetry/sdk/resources/resource.rb b/sdk/lib/opentelemetry/sdk/resources/resource.rb index e05acf19ab..c6a77ba660 100644 --- a/sdk/lib/opentelemetry/sdk/resources/resource.rb +++ b/sdk/lib/opentelemetry/sdk/resources/resource.rb @@ -46,7 +46,7 @@ def telemetry_sdk resource_pairs.split(',').each do |pair| key, value = pair.split('=') - resource_attributes[key] = value + resource_attributes[key.strip] = value end resource_attributes.delete_if { |_key, value| value.nil? || value.empty? } diff --git a/sdk/test/opentelemetry/sdk/configurator_test.rb b/sdk/test/opentelemetry/sdk/configurator_test.rb index 4a425a8e88..3a8462785e 100644 --- a/sdk/test/opentelemetry/sdk/configurator_test.rb +++ b/sdk/test/opentelemetry/sdk/configurator_test.rb @@ -87,6 +87,13 @@ _(configurator_resource_attributes).must_equal(expected_resource_attributes) end end + + it 'cleans up whitespace in user provided resources' do + OpenTelemetry::TestHelpers.with_env('OTEL_RESOURCE_ATTRIBUTES' => 'important_foo=x, important_bar=y') do + configurator.resource = OpenTelemetry::SDK::Resources::Resource.create() + _(configurator_resource_attributes).must_equal(default_resource_attributes.merge('important_foo' => 'x', 'important_bar' => 'y')) + end + end end end From 9be44698db33cb23fe7fa2bae006f3d947535d82 Mon Sep 17 00:00:00 2001 From: Hussein Jafferjee Date: Fri, 3 Nov 2023 10:37:22 -0700 Subject: [PATCH 2/3] decode value --- sdk/lib/opentelemetry/sdk/resources/resource.rb | 4 +++- sdk/test/opentelemetry/sdk/configurator_test.rb | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/sdk/lib/opentelemetry/sdk/resources/resource.rb b/sdk/lib/opentelemetry/sdk/resources/resource.rb index c6a77ba660..45497bbac9 100644 --- a/sdk/lib/opentelemetry/sdk/resources/resource.rb +++ b/sdk/lib/opentelemetry/sdk/resources/resource.rb @@ -4,6 +4,8 @@ # # SPDX-License-Identifier: Apache-2.0 +require 'uri' + module OpenTelemetry module SDK module Resources @@ -46,7 +48,7 @@ def telemetry_sdk resource_pairs.split(',').each do |pair| key, value = pair.split('=') - resource_attributes[key.strip] = value + resource_attributes[key.strip] = URI.decode_www_form_component(value).strip end resource_attributes.delete_if { |_key, value| value.nil? || value.empty? } diff --git a/sdk/test/opentelemetry/sdk/configurator_test.rb b/sdk/test/opentelemetry/sdk/configurator_test.rb index 3a8462785e..d57b35ae42 100644 --- a/sdk/test/opentelemetry/sdk/configurator_test.rb +++ b/sdk/test/opentelemetry/sdk/configurator_test.rb @@ -89,7 +89,7 @@ end it 'cleans up whitespace in user provided resources' do - OpenTelemetry::TestHelpers.with_env('OTEL_RESOURCE_ATTRIBUTES' => 'important_foo=x, important_bar=y') do + OpenTelemetry::TestHelpers.with_env('OTEL_RESOURCE_ATTRIBUTES' => ' important_foo=x, important_bar=y ') do configurator.resource = OpenTelemetry::SDK::Resources::Resource.create() _(configurator_resource_attributes).must_equal(default_resource_attributes.merge('important_foo' => 'x', 'important_bar' => 'y')) end From 09d652e810771ac867a302462d81c38f6e8d566e Mon Sep 17 00:00:00 2001 From: Hussein Jafferjee Date: Fri, 3 Nov 2023 10:45:40 -0700 Subject: [PATCH 3/3] trim whitespace first --- sdk/lib/opentelemetry/sdk/resources/resource.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/lib/opentelemetry/sdk/resources/resource.rb b/sdk/lib/opentelemetry/sdk/resources/resource.rb index 45497bbac9..c157b90492 100644 --- a/sdk/lib/opentelemetry/sdk/resources/resource.rb +++ b/sdk/lib/opentelemetry/sdk/resources/resource.rb @@ -48,7 +48,7 @@ def telemetry_sdk resource_pairs.split(',').each do |pair| key, value = pair.split('=') - resource_attributes[key.strip] = URI.decode_www_form_component(value).strip + resource_attributes[key.strip] = URI.decode_www_form_component(value.strip) end resource_attributes.delete_if { |_key, value| value.nil? || value.empty? }