From 44cd1a438a2c715daa7ecdb7152cf083a99f1399 Mon Sep 17 00:00:00 2001 From: Robert Laurin Date: Wed, 8 May 2024 10:04:15 -0500 Subject: [PATCH] feat: add untraced ctx method --- common/lib/opentelemetry/common/utilities.rb | 4 ++++ common/test/opentelemetry/common/utilities_test.rb | 7 +++++++ 2 files changed, 11 insertions(+) diff --git a/common/lib/opentelemetry/common/utilities.rb b/common/lib/opentelemetry/common/utilities.rb index 8667a6fd94..6e3262d3a0 100644 --- a/common/lib/opentelemetry/common/utilities.rb +++ b/common/lib/opentelemetry/common/utilities.rb @@ -93,6 +93,10 @@ def untraced end end + def untraced_context(parent_context: Context.current) + parent_context.set_value(UNTRACED_KEY, true) + end + # Detects whether the current context has been set to disable tracing. def untraced?(context = nil) context ||= Context.current diff --git a/common/test/opentelemetry/common/utilities_test.rb b/common/test/opentelemetry/common/utilities_test.rb index f931242fd8..b72ed7c5af 100644 --- a/common/test/opentelemetry/common/utilities_test.rb +++ b/common/test/opentelemetry/common/utilities_test.rb @@ -26,6 +26,13 @@ def shutdown(timeout: nil); end common_utils.untraced {} assert_equal(false, common_utils.untraced?) end + + it 'supports non block format' do + token = OpenTelemetry::Context.attach(common_utils.untraced_context) + assert_equal(true, common_utils.untraced?) + OpenTelemetry::Context.detach(token) + assert_equal(false, common_utils.untraced?) + end end describe '#utf8_encode' do