From 65b0a1017cbddb23ee8a82839828142869bcb291 Mon Sep 17 00:00:00 2001 From: Oleg Pudeyev Date: Wed, 7 May 2025 18:28:54 -0400 Subject: [PATCH 1/3] delete active_remote --- lib/datadog/core/remote.rb | 15 --------------- lib/datadog/core/remote/tie.rb | 5 +++-- lib/datadog/core/remote/tie/tracing.rb | 7 ++++--- sig/datadog/core/remote.rbs | 7 ------- 4 files changed, 7 insertions(+), 27 deletions(-) diff --git a/lib/datadog/core/remote.rb b/lib/datadog/core/remote.rb index c8960b51a07..5b8fd39da3d 100644 --- a/lib/datadog/core/remote.rb +++ b/lib/datadog/core/remote.rb @@ -4,21 +4,6 @@ module Datadog module Core # Module to interact with core remote component module Remote - class << self - def active_remote - remote - end - - private - - def components - Datadog.send(:components) - end - - def remote - components.remote - end - end end end end diff --git a/lib/datadog/core/remote/tie.rb b/lib/datadog/core/remote/tie.rb index ef0d331529a..2aa73b0df22 100644 --- a/lib/datadog/core/remote/tie.rb +++ b/lib/datadog/core/remote/tie.rb @@ -11,12 +11,13 @@ module Tie ) def self.boot - return if Datadog::Core::Remote.active_remote.nil? + active_remote = Datadog.send(:components, allow_initialization: false).remote + return if active_remote.nil? barrier = nil t = Datadog::Core::Utils::Time.measure do - barrier = Datadog::Core::Remote.active_remote.barrier(:once) + barrier = active_remote.barrier(:once) end # steep does not permit the next line due to diff --git a/lib/datadog/core/remote/tie/tracing.rb b/lib/datadog/core/remote/tie/tracing.rb index e00cd0b6500..ff53f771ea6 100644 --- a/lib/datadog/core/remote/tie/tracing.rb +++ b/lib/datadog/core/remote/tie/tracing.rb @@ -13,13 +13,14 @@ def self.tag(boot, span) return if boot.nil? return if span.nil? - return if Datadog::Core::Remote.active_remote.nil? + active_remote = Datadog.send(:components, allow_initialization: false).remote + return if active_remote.nil? # TODO: this is not thread-consistent - ready = Datadog::Core::Remote.active_remote.healthy + ready = active_remote.healthy status = ready ? 'ready' : 'disconnected' - span.set_tag('_dd.rc.client_id', Datadog::Core::Remote.active_remote.client.id) + span.set_tag('_dd.rc.client_id', active_remote.client.id) span.set_tag('_dd.rc.status', status) if boot.barrier != :pass diff --git a/sig/datadog/core/remote.rbs b/sig/datadog/core/remote.rbs index eb564ff7352..e8577a96c66 100644 --- a/sig/datadog/core/remote.rbs +++ b/sig/datadog/core/remote.rbs @@ -1,13 +1,6 @@ module Datadog module Core module Remote - def self.active_remote: () -> Datadog::Core::Remote::Component - - private - - def self.components: () -> Datadog::Core::Configuration::Components - - def self.remote: () -> Datadog::Core::Remote::Component end end end From 7d6c5244610a7c4122f362a34024163cbef92cfc Mon Sep 17 00:00:00 2001 From: Oleg Pudeyev Date: Thu, 8 May 2025 14:17:30 -0400 Subject: [PATCH 2/3] tests --- .../appsec/contrib/rack/integration_test_spec.rb | 2 +- .../tracing/contrib/rack/integration_test_spec.rb | 2 +- .../tracing/contrib/suite/integration_spec.rb | 12 ++++++++---- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/spec/datadog/appsec/contrib/rack/integration_test_spec.rb b/spec/datadog/appsec/contrib/rack/integration_test_spec.rb index fcd02dc4ee9..9e9d48703c1 100644 --- a/spec/datadog/appsec/contrib/rack/integration_test_spec.rb +++ b/spec/datadog/appsec/contrib/rack/integration_test_spec.rb @@ -299,7 +299,7 @@ let(:remote_boot_timeout) { 1.0 } let(:route) { '/success/' } - let(:component) { Datadog::Core::Remote.active_remote } + let(:component) { Datadog.send(:components).remote } let(:worker) { component.instance_eval { @worker } } let(:client) { double('Client') } let(:transport_v7) { double('Transport') } diff --git a/spec/datadog/tracing/contrib/rack/integration_test_spec.rb b/spec/datadog/tracing/contrib/rack/integration_test_spec.rb index b923d381bc3..95fad9c7e7c 100644 --- a/spec/datadog/tracing/contrib/rack/integration_test_spec.rb +++ b/spec/datadog/tracing/contrib/rack/integration_test_spec.rb @@ -151,7 +151,7 @@ let(:remote_boot_timeout) { 1.0 } let(:route) { '/success/' } - let(:component) { Datadog::Core::Remote.active_remote } + let(:component) { Datadog.send(:components).remote } let(:worker) { component.instance_eval { @worker } } let(:client) { double('Client') } let(:transport_v7) { double('Transport') } diff --git a/spec/datadog/tracing/contrib/suite/integration_spec.rb b/spec/datadog/tracing/contrib/suite/integration_spec.rb index 96a34d51209..20199912fd3 100644 --- a/spec/datadog/tracing/contrib/suite/integration_spec.rb +++ b/spec/datadog/tracing/contrib/suite/integration_spec.rb @@ -94,6 +94,10 @@ def build(*dynamic_configurations) }.to_json end + let(:active_remote) do + Datadog.send(:components).remote + end + context 'with dynamic configuration data' do let(:dynamic_configuration) { new_dynamic_configuration(product, data) } let(:data) { { 'lib_config' => lib_config } } @@ -109,7 +113,7 @@ def build(*dynamic_configurations) let(:tracing_header_tags) { [{ 'header' => 'test-header', 'tag_name' => '' }] } it 'overrides the local values' do - Datadog::Core::Remote.active_remote.barrier(:once) + active_remote.barrier(:once) expect(Datadog.configuration.tracing.sampling.default_rate).to be_nil expect(Datadog.configuration.tracing.log_injection).to eq(true) @@ -128,7 +132,7 @@ def build(*dynamic_configurations) let(:empty_data) { { 'lib_config' => {} } } it 'restore the local values' do - Datadog::Core::Remote.active_remote.barrier(:once) + active_remote.barrier(:once) update_config @@ -200,7 +204,7 @@ def build(*dynamic_configurations) it 'changes default sampling rate and sampling decision' do # Before - Datadog::Core::Remote.active_remote.barrier(:once) + active_remote.barrier(:once) tracer.trace('test') {} expect(trace.rule_sample_rate).to be_nil @@ -236,7 +240,7 @@ def build(*dynamic_configurations) it 'changes disables log injection' do # Before - Datadog::Core::Remote.active_remote.barrier(:once) + active_remote.barrier(:once) expect(Datadog.configuration.tracing.log_injection).to eq(true) tracer.trace('test') { logger.error('test-log') } From 1f72ca6b0c2089f7957e6a9217205d43f095c2d5 Mon Sep 17 00:00:00 2001 From: Oleg Pudeyev Date: Fri, 9 May 2025 11:06:41 -0400 Subject: [PATCH 3/3] fix --- lib/datadog/core/remote/tie.rb | 2 +- lib/datadog/core/remote/tie/tracing.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/datadog/core/remote/tie.rb b/lib/datadog/core/remote/tie.rb index 2aa73b0df22..b475d07dafd 100644 --- a/lib/datadog/core/remote/tie.rb +++ b/lib/datadog/core/remote/tie.rb @@ -11,7 +11,7 @@ module Tie ) def self.boot - active_remote = Datadog.send(:components, allow_initialization: false).remote + active_remote = Datadog.send(:components, allow_initialization: false)&.remote return if active_remote.nil? barrier = nil diff --git a/lib/datadog/core/remote/tie/tracing.rb b/lib/datadog/core/remote/tie/tracing.rb index ff53f771ea6..3d6194c4f54 100644 --- a/lib/datadog/core/remote/tie/tracing.rb +++ b/lib/datadog/core/remote/tie/tracing.rb @@ -13,7 +13,7 @@ def self.tag(boot, span) return if boot.nil? return if span.nil? - active_remote = Datadog.send(:components, allow_initialization: false).remote + active_remote = Datadog.send(:components, allow_initialization: false)&.remote return if active_remote.nil? # TODO: this is not thread-consistent