From 3246736b9afc4e24fd37f307566bf7a2944b64a2 Mon Sep 17 00:00:00 2001 From: wan <26727996+wantsui@users.noreply.github.com> Date: Mon, 9 Mar 2026 18:52:03 -0400 Subject: [PATCH 01/17] Set the default of DD_EXPERIMENTAL_PROPAGATE_PROCESS_TAGS_ENABLED to true and adjust tests --- lib/datadog/core/configuration/settings.rb | 4 ++-- lib/datadog/core/runtime/metrics.rb | 2 +- spec/datadog/core/configuration/settings_spec.rb | 8 ++++---- spec/datadog/core/crashtracking/tag_builder_spec.rb | 4 ++++ spec/datadog/core/remote/client_spec.rb | 6 +++++- spec/datadog/core/runtime/metrics_spec.rb | 12 ++++++++++++ spec/datadog/core/telemetry/request_spec.rb | 2 ++ spec/datadog/di/probe_notification_builder_spec.rb | 4 ++++ .../tracing/transport/trace_formatter_spec.rb | 12 +++++++++--- supported-configurations.json | 2 +- 10 files changed, 44 insertions(+), 12 deletions(-) diff --git a/lib/datadog/core/configuration/settings.rb b/lib/datadog/core/configuration/settings.rb index bb1e7d342b3..ec604ffef92 100644 --- a/lib/datadog/core/configuration/settings.rb +++ b/lib/datadog/core/configuration/settings.rb @@ -1044,11 +1044,11 @@ def initialize(*_) # Enable experimental process tags propagation such that payloads like spans contain the process tag. # - # @default `DD_EXPERIMENTAL_PROPAGATE_PROCESS_TAGS_ENABLED` environment variable, otherwise `false` + # @default `DD_EXPERIMENTAL_PROPAGATE_PROCESS_TAGS_ENABLED` environment variable, otherwise `true` # @return [Boolean] option :experimental_propagate_process_tags_enabled do |o| o.env 'DD_EXPERIMENTAL_PROPAGATE_PROCESS_TAGS_ENABLED' - o.default false + o.default true o.type :bool end diff --git a/lib/datadog/core/runtime/metrics.rb b/lib/datadog/core/runtime/metrics.rb index 8e86845e529..0c9c92c87ee 100644 --- a/lib/datadog/core/runtime/metrics.rb +++ b/lib/datadog/core/runtime/metrics.rb @@ -27,7 +27,7 @@ def initialize(telemetry:, **options) @runtime_id_enabled = options.fetch(:experimental_runtime_id_enabled, false) # Initialized process tags support - @process_tags_enabled = options.fetch(:experimental_propagate_process_tags_enabled, false) + @process_tags_enabled = options.fetch(:experimental_propagate_process_tags_enabled, true) end # Associate service with runtime metrics diff --git a/spec/datadog/core/configuration/settings_spec.rb b/spec/datadog/core/configuration/settings_spec.rb index 09597c4ee6c..a3b222afe68 100644 --- a/spec/datadog/core/configuration/settings_spec.rb +++ b/spec/datadog/core/configuration/settings_spec.rb @@ -1402,7 +1402,7 @@ context 'by default' do let(:environment) { nil } - it { is_expected.to be false } + it { is_expected.to be true } end context 'when set to true' do @@ -1421,10 +1421,10 @@ describe '#experimental_propagate_process_tags_enabled=' do it 'updates the #experimental_propagate_process_tags_enabled setting' do - expect { settings.experimental_propagate_process_tags_enabled = true } + expect { settings.experimental_propagate_process_tags_enabled = false } .to change { settings.experimental_propagate_process_tags_enabled } - .from(false) - .to(true) + .from(true) + .to(false) end end diff --git a/spec/datadog/core/crashtracking/tag_builder_spec.rb b/spec/datadog/core/crashtracking/tag_builder_spec.rb index e169bfc8fbd..8781dc47061 100644 --- a/spec/datadog/core/crashtracking/tag_builder_spec.rb +++ b/spec/datadog/core/crashtracking/tag_builder_spec.rb @@ -127,6 +127,10 @@ end context 'when process tags propagation is not enabled' do + before do + settings.experimental_propagate_process_tags_enabled = false + end + it 'does not include process tags in the crash tracking payload' do expect(call.keys).to_not include('process_tags') end diff --git a/spec/datadog/core/remote/client_spec.rb b/spec/datadog/core/remote/client_spec.rb index a11e84b2642..afa9cdb3985 100644 --- a/spec/datadog/core/remote/client_spec.rb +++ b/spec/datadog/core/remote/client_spec.rb @@ -699,7 +699,11 @@ end context 'when process tags propagation is not enabled' do - # Currently false by default + before do + # Explicitly disable because the global default is now true. + allow(settings).to receive(:experimental_propagate_process_tags_enabled).and_return(false) + end + it 'does not have process tags in the payload' do expect(client_payload[:client_tracer]).not_to have_key(:process_tags) end diff --git a/spec/datadog/core/runtime/metrics_spec.rb b/spec/datadog/core/runtime/metrics_spec.rb index ba2839e829d..e921ced34e9 100644 --- a/spec/datadog/core/runtime/metrics_spec.rb +++ b/spec/datadog/core/runtime/metrics_spec.rb @@ -325,6 +325,18 @@ describe ':tags' do subject(:default_tags) { default_metric_options[:tags] } + context 'when :experimental_propagate_process_tags_enabled is not provided' do + before do + allow(Datadog::Core::Environment::Process).to receive(:tags) + .and_return(['entrypoint.workdir:test', 'entrypoint.name:test_script']) + end + + it 'includes process tags by default' do + is_expected.to include('entrypoint.workdir:test') + is_expected.to include('entrypoint.name:test_script') + end + end + context 'given :experimental_runtime_id_enabled' do let(:options) { super().merge(experimental_runtime_id_enabled: runtime_id_enabled) } let(:runtime_id_enabled) { true } diff --git a/spec/datadog/core/telemetry/request_spec.rb b/spec/datadog/core/telemetry/request_spec.rb index 57609b20ba7..85d1f757c15 100644 --- a/spec/datadog/core/telemetry/request_spec.rb +++ b/spec/datadog/core/telemetry/request_spec.rb @@ -59,6 +59,8 @@ c.env = env c.service = service_name c.version = service_version + # Keep baseline payload without process_tags. + c.experimental_propagate_process_tags_enabled = false end end diff --git a/spec/datadog/di/probe_notification_builder_spec.rb b/spec/datadog/di/probe_notification_builder_spec.rb index 4a12b91b637..26eabe861c9 100644 --- a/spec/datadog/di/probe_notification_builder_spec.rb +++ b/spec/datadog/di/probe_notification_builder_spec.rb @@ -488,6 +488,10 @@ end context 'when process tags propagation is not enabled' do + before do + allow(settings).to receive(:experimental_propagate_process_tags_enabled).and_return(false) + end + it 'excludes process tags in the payload' do payload = builder.build_executed(context) expect(payload).not_to include(:process_tags) diff --git a/spec/datadog/tracing/transport/trace_formatter_spec.rb b/spec/datadog/tracing/transport/trace_formatter_spec.rb index 4007dca2963..1e1a6c9ffbc 100644 --- a/spec/datadog/tracing/transport/trace_formatter_spec.rb +++ b/spec/datadog/tracing/transport/trace_formatter_spec.rb @@ -322,7 +322,9 @@ end context 'without process tags enabled' do - # default is false + before do + allow(Datadog.configuration).to receive(:experimental_propagate_process_tags_enabled).and_return(false) + end it_behaves_like 'spans without process tags' end end @@ -383,7 +385,9 @@ end context 'without process tags enabled' do - # default is false + before do + allow(Datadog.configuration).to receive(:experimental_propagate_process_tags_enabled).and_return(false) + end it_behaves_like 'spans without process tags' end end @@ -446,7 +450,9 @@ end context 'without process tags enabled' do - # default is false + before do + allow(Datadog.configuration).to receive(:experimental_propagate_process_tags_enabled).and_return(false) + end it_behaves_like 'spans without process tags' end end diff --git a/supported-configurations.json b/supported-configurations.json index 8a3568b04db..aa09aaf838e 100644 --- a/supported-configurations.json +++ b/supported-configurations.json @@ -345,7 +345,7 @@ { "version": "A", "type": "boolean", - "default": "false" + "default": "true" } ], "DD_GIT_COMMIT_SHA": [ From 250813042131c2926136d4928791b6beec9c32c1 Mon Sep 17 00:00:00 2001 From: wan <26727996+wantsui@users.noreply.github.com> Date: Mon, 9 Mar 2026 19:07:52 -0400 Subject: [PATCH 02/17] Remove the process tags from the remote client payload since it is not needed for the test --- spec/datadog/core/remote/client_spec.rb | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/spec/datadog/core/remote/client_spec.rb b/spec/datadog/core/remote/client_spec.rb index afa9cdb3985..474759e05d7 100644 --- a/spec/datadog/core/remote/client_spec.rb +++ b/spec/datadog/core/remote/client_spec.rb @@ -640,7 +640,10 @@ env: settings.env, } - expect(client_payload[:client_tracer].tap { |h| h.delete(:tags) }).to eq(expected_client_tracer) + expect(client_payload[:client_tracer].tap { |h| + h.delete(:tags) + h.delete(:process_tags) + }).to eq(expected_client_tracer) end end @@ -657,7 +660,10 @@ app_version: settings.version, } - expect(client_payload[:client_tracer].tap { |h| h.delete(:tags) }).to eq(expected_client_tracer) + expect(client_payload[:client_tracer].tap { |h| + h.delete(:tags) + h.delete(:process_tags) + }).to eq(expected_client_tracer) end end @@ -673,7 +679,10 @@ env: settings.env, } - expect(client_payload[:client_tracer].tap { |h| h.delete(:tags) }).to eq(expected_client_tracer) + expect(client_payload[:client_tracer].tap { |h| + h.delete(:tags) + h.delete(:process_tags) + }).to eq(expected_client_tracer) end end end From 41c5ecc98e7c286e9148fd55799094fa58176e2e Mon Sep 17 00:00:00 2001 From: wan <26727996+wantsui@users.noreply.github.com> Date: Tue, 10 Mar 2026 13:51:59 -0400 Subject: [PATCH 03/17] Adjust DBM tests for the new default true setting --- .../contrib/propagation/sql_comment_spec.rb | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/spec/datadog/tracing/contrib/propagation/sql_comment_spec.rb b/spec/datadog/tracing/contrib/propagation/sql_comment_spec.rb index ba50081fd42..cf2f96154f3 100644 --- a/spec/datadog/tracing/contrib/propagation/sql_comment_spec.rb +++ b/spec/datadog/tracing/contrib/propagation/sql_comment_spec.rb @@ -56,13 +56,7 @@ context 'and DD_EXPERIMENTAL_PROPAGATE_PROCESS_TAGS_ENABLED=true' do before do - Datadog.configure do |c| - c.experimental_propagate_process_tags_enabled = true - end - end - - after do - without_warnings { Datadog.configuration.reset! } + allow(Datadog.configuration).to receive(:experimental_propagate_process_tags_enabled).and_return(true) end it 'sets the propagated hash (_dd.propagated_hash) on the span tag' do @@ -72,13 +66,8 @@ end context 'and DD_EXPERIMENTAL_PROPAGATE_PROCESS_TAGS_ENABLED=false' do - around do |example| - without_warnings { Datadog.configuration.reset! } - Datadog.configure do |c| - c.experimental_propagate_process_tags_enabled = false - end - example.run - without_warnings { Datadog.configuration.reset! } + before do + allow(Datadog.configuration).to receive(:experimental_propagate_process_tags_enabled).and_return(false) end it 'does not set the propagated hash (_dd.propagated_hash) span tag' do From cb9f2dccb72b322d5c8b65b14019c96aca469423 Mon Sep 17 00:00:00 2001 From: wan <26727996+wantsui@users.noreply.github.com> Date: Tue, 10 Mar 2026 14:05:13 -0400 Subject: [PATCH 04/17] Adjust telemetry payload in tests due to the new default --- spec/datadog/core/telemetry/integration/telemetry_spec.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/spec/datadog/core/telemetry/integration/telemetry_spec.rb b/spec/datadog/core/telemetry/integration/telemetry_spec.rb index 3741efe1b30..969401982cd 100644 --- a/spec/datadog/core/telemetry/integration/telemetry_spec.rb +++ b/spec/datadog/core/telemetry/integration/telemetry_spec.rb @@ -57,6 +57,7 @@ 'env' => nil, 'language_name' => 'ruby', 'language_version' => String, + 'process_tags' => String, 'runtime_name' => /\Aj?ruby\z/i, 'runtime_version' => String, 'service_name' => String, From b9b20f49c432e684d532030d8c2982d91f4f6a55 Mon Sep 17 00:00:00 2001 From: wan <26727996+wantsui@users.noreply.github.com> Date: Tue, 10 Mar 2026 14:19:54 -0400 Subject: [PATCH 05/17] Fix another dbm test for the true default for process tag --- .../sql_comment_propagation_examples.rb | 26 ++++--------------- 1 file changed, 5 insertions(+), 21 deletions(-) diff --git a/spec/datadog/tracing/contrib/sql_comment_propagation_examples.rb b/spec/datadog/tracing/contrib/sql_comment_propagation_examples.rb index 35b5e543d2b..d24723cb016 100644 --- a/spec/datadog/tracing/contrib/sql_comment_propagation_examples.rb +++ b/spec/datadog/tracing/contrib/sql_comment_propagation_examples.rb @@ -132,13 +132,7 @@ context 'when inject_sql_basehash is enabled and experimental_propagate_process_tags_enabled is true' do before do - Datadog.configure do |c| - c.experimental_propagate_process_tags_enabled = true - end - end - - after do - without_warnings { Datadog.configuration.reset! } + allow(Datadog.configuration).to receive(:experimental_propagate_process_tags_enabled).and_return(true) end let(:configuration_options) do @@ -155,13 +149,8 @@ end context 'when inject_sql_basehash is enabled but experimental_propagate_process_tags_enabled is false' do - around do |example| - without_warnings { Datadog.configuration.reset! } - Datadog.configure do |c| - c.experimental_propagate_process_tags_enabled = false - end - example.run - without_warnings { Datadog.configuration.reset! } + before do + allow(Datadog.configuration).to receive(:experimental_propagate_process_tags_enabled).and_return(false) end let(:configuration_options) do @@ -178,13 +167,8 @@ end context 'when inject_sql_basehash is disabled but experimental_propagate_process_tags_enabled is true' do - around do |example| - without_warnings { Datadog.configuration.reset! } - Datadog.configure do |c| - c.experimental_propagate_process_tags_enabled = true - end - example.run - without_warnings { Datadog.configuration.reset! } + before do + allow(Datadog.configuration).to receive(:experimental_propagate_process_tags_enabled).and_return(true) end let(:configuration_options) do From 3e5641dee0d0ece2ef53dc103580473bb9c0f465 Mon Sep 17 00:00:00 2001 From: wan <26727996+wantsui@users.noreply.github.com> Date: Tue, 10 Mar 2026 14:31:13 -0400 Subject: [PATCH 06/17] Add the process tags payload to the remote config payload in tests since it defaults to true now --- .../di/integration/everything_from_remote_config_spec.rb | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/spec/datadog/di/integration/everything_from_remote_config_spec.rb b/spec/datadog/di/integration/everything_from_remote_config_spec.rb index 719a6a537a2..ece4b122e05 100644 --- a/spec/datadog/di/integration/everything_from_remote_config_spec.rb +++ b/spec/datadog/di/integration/everything_from_remote_config_spec.rb @@ -207,6 +207,7 @@ def target_method version: 2, }, message: nil, + process_tags: String, service: 'rspec', timestamp: Integer, } @@ -480,6 +481,7 @@ def assert_received_and_errored # false is the result of first expression evaluation # second expression fails evaluation message: 'hello false[evaluation error]', + process_tags: String, service: 'rspec', timestamp: Integer, } @@ -656,6 +658,7 @@ def assert_received_and_errored }, # No message since we stopped execution at condition evaluation. message: nil, + process_tags: String, service: 'rspec', timestamp: Integer, } @@ -740,6 +743,7 @@ def assert_received_and_errored version: 2, }, message: nil, + process_tags: String, service: 'rspec', timestamp: Integer, } From 29b5fd7f84b8f0a410544d5dfddfe739f36baa2f Mon Sep 17 00:00:00 2001 From: wan <26727996+wantsui@users.noreply.github.com> Date: Tue, 10 Mar 2026 16:38:25 -0400 Subject: [PATCH 07/17] Change supported-configurations.json from A to B --- supported-configurations.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/supported-configurations.json b/supported-configurations.json index aa09aaf838e..73d9fe06499 100644 --- a/supported-configurations.json +++ b/supported-configurations.json @@ -343,7 +343,7 @@ ], "DD_EXPERIMENTAL_PROPAGATE_PROCESS_TAGS_ENABLED": [ { - "version": "A", + "version": "B", "type": "boolean", "default": "true" } From 53a6b4a724e66c1689525491e96ed96723b10313 Mon Sep 17 00:00:00 2001 From: wan <26727996+wantsui@users.noreply.github.com> Date: Wed, 11 Mar 2026 15:07:11 -0400 Subject: [PATCH 08/17] Remove fallback for runtime metrics and update runtime metrics tests to match --- lib/datadog/core/runtime/metrics.rb | 3 +-- lib/datadog/core/workers/runtime_metrics.rb | 11 ++++++++++- spec/datadog/core/runtime/metrics_spec.rb | 4 ++-- spec/datadog/core/workers/runtime_metrics_spec.rb | 13 +++++++++++++ 4 files changed, 26 insertions(+), 5 deletions(-) diff --git a/lib/datadog/core/runtime/metrics.rb b/lib/datadog/core/runtime/metrics.rb index 0c9c92c87ee..a3573c29bdd 100644 --- a/lib/datadog/core/runtime/metrics.rb +++ b/lib/datadog/core/runtime/metrics.rb @@ -26,8 +26,7 @@ def initialize(telemetry:, **options) # Initialize the collection of runtime-id @runtime_id_enabled = options.fetch(:experimental_runtime_id_enabled, false) - # Initialized process tags support - @process_tags_enabled = options.fetch(:experimental_propagate_process_tags_enabled, true) + @process_tags_enabled = options.fetch(:experimental_propagate_process_tags_enabled) end # Associate service with runtime metrics diff --git a/lib/datadog/core/workers/runtime_metrics.rb b/lib/datadog/core/workers/runtime_metrics.rb index e5e0d6224e8..a15a2cb67e5 100644 --- a/lib/datadog/core/workers/runtime_metrics.rb +++ b/lib/datadog/core/workers/runtime_metrics.rb @@ -21,7 +21,16 @@ class RuntimeMetrics < Worker :metrics def initialize(telemetry:, **options) - @metrics = options.fetch(:metrics) { Core::Runtime::Metrics.new(logger: options[:logger], telemetry: telemetry) } + @metrics = options.fetch(:metrics) do + Core::Runtime::Metrics.new( + logger: options[:logger], + telemetry: telemetry, + experimental_propagate_process_tags_enabled: options.fetch( + :experimental_propagate_process_tags_enabled, + Datadog.configuration.experimental_propagate_process_tags_enabled + ) + ) + end # Workers::Async::Thread settings self.fork_policy = options.fetch(:fork_policy, Workers::Async::Thread::FORK_POLICY_STOP) diff --git a/spec/datadog/core/runtime/metrics_spec.rb b/spec/datadog/core/runtime/metrics_spec.rb index e921ced34e9..88dc5ad4130 100644 --- a/spec/datadog/core/runtime/metrics_spec.rb +++ b/spec/datadog/core/runtime/metrics_spec.rb @@ -6,7 +6,7 @@ RSpec.describe Datadog::Core::Runtime::Metrics do let(:logger) { logger_allowing_debug } let(:telemetry) { double(Datadog::Core::Telemetry::Component) } - let(:options) { {} } + let(:options) { {experimental_propagate_process_tags_enabled: true} } subject(:runtime_metrics) { described_class.new(logger: logger, telemetry: telemetry, **options) } describe '::new' do @@ -325,7 +325,7 @@ describe ':tags' do subject(:default_tags) { default_metric_options[:tags] } - context 'when :experimental_propagate_process_tags_enabled is not provided' do + context 'when :experimental_propagate_process_tags_enabled is true' do before do allow(Datadog::Core::Environment::Process).to receive(:tags) .and_return(['entrypoint.workdir:test', 'entrypoint.name:test_script']) diff --git a/spec/datadog/core/workers/runtime_metrics_spec.rb b/spec/datadog/core/workers/runtime_metrics_spec.rb index e1042063f24..8c62c3ce00a 100644 --- a/spec/datadog/core/workers/runtime_metrics_spec.rb +++ b/spec/datadog/core/workers/runtime_metrics_spec.rb @@ -22,10 +22,23 @@ context 'by default' do subject(:worker) { described_class.new(logger: logger, telemetry: telemetry) } + before do + allow(Datadog::Core::Runtime::Metrics).to receive(:new).and_call_original + end + it { expect(worker.enabled?).to be false } it { expect(worker.loop_base_interval).to eq 10 } it { expect(worker.loop_back_off_ratio).to eq 1.2 } it { expect(worker.loop_back_off_max).to eq 30 } + it 'builds runtime metrics from configuration for process tags propagation' do + worker + + expect(Datadog::Core::Runtime::Metrics).to have_received(:new).with( + logger: logger, + telemetry: telemetry, + experimental_propagate_process_tags_enabled: Datadog.configuration.experimental_propagate_process_tags_enabled + ) + end end context 'when :enabled is given' do From 8e5464e2b85db3692a52f6a6c556c025551a27d6 Mon Sep 17 00:00:00 2001 From: wan <26727996+wantsui@users.noreply.github.com> Date: Wed, 11 Mar 2026 15:11:17 -0400 Subject: [PATCH 09/17] Simplify the settings_spec test per review --- .../core/configuration/settings_spec.rb | 28 ++----------------- 1 file changed, 3 insertions(+), 25 deletions(-) diff --git a/spec/datadog/core/configuration/settings_spec.rb b/spec/datadog/core/configuration/settings_spec.rb index a3b222afe68..1cb56a99886 100644 --- a/spec/datadog/core/configuration/settings_spec.rb +++ b/spec/datadog/core/configuration/settings_spec.rb @@ -1392,31 +1392,9 @@ describe '#experimental_propagate_process_tags_enabled' do subject(:experimental_propagate_process_tags_enabled) { settings.experimental_propagate_process_tags_enabled } - context "when #{Datadog::Core::Environment::Ext::ENV_VERSION}" do - around do |example| - ClimateControl.modify('DD_EXPERIMENTAL_PROPAGATE_PROCESS_TAGS_ENABLED' => environment) do - example.run - end - end - - context 'by default' do - let(:environment) { nil } - - it { is_expected.to be true } - end - - context 'when set to true' do - let(:environment) { 'true' } - - it { is_expected.to be true } - end - - context 'when set to false' do - let(:environment) { 'false' } - - it { is_expected.to be false } - end - end + it_behaves_like 'a binary setting with', + env_variable: 'DD_EXPERIMENTAL_PROPAGATE_PROCESS_TAGS_ENABLED', + default: true end describe '#experimental_propagate_process_tags_enabled=' do From 1831a5bf63acd4a695eeeaf0f2af3b291b16c121 Mon Sep 17 00:00:00 2001 From: wan <26727996+wantsui@users.noreply.github.com> Date: Wed, 11 Mar 2026 15:35:46 -0400 Subject: [PATCH 10/17] Bring back tags and process_tags when testing remote client_spec --- spec/datadog/core/remote/client_spec.rb | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/spec/datadog/core/remote/client_spec.rb b/spec/datadog/core/remote/client_spec.rb index 474759e05d7..12c6a179595 100644 --- a/spec/datadog/core/remote/client_spec.rb +++ b/spec/datadog/core/remote/client_spec.rb @@ -640,10 +640,7 @@ env: settings.env, } - expect(client_payload[:client_tracer].tap { |h| - h.delete(:tags) - h.delete(:process_tags) - }).to eq(expected_client_tracer) + expect(client_payload[:client_tracer]).to include(expected_client_tracer) end end @@ -660,10 +657,7 @@ app_version: settings.version, } - expect(client_payload[:client_tracer].tap { |h| - h.delete(:tags) - h.delete(:process_tags) - }).to eq(expected_client_tracer) + expect(client_payload[:client_tracer]).to include(expected_client_tracer) end end @@ -679,10 +673,7 @@ env: settings.env, } - expect(client_payload[:client_tracer].tap { |h| - h.delete(:tags) - h.delete(:process_tags) - }).to eq(expected_client_tracer) + expect(client_payload[:client_tracer]).to include(expected_client_tracer) end end end From 427cd21050542e6555b6bbdbd681875526fe93c5 Mon Sep 17 00:00:00 2001 From: wan <26727996+wantsui@users.noreply.github.com> Date: Wed, 11 Mar 2026 15:50:50 -0400 Subject: [PATCH 11/17] Adjust telemetry tests to start off with the assumption that process tags are disabled to avoid mixing testing concerns --- spec/datadog/core/telemetry/request_spec.rb | 30 +++++++++++---------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/spec/datadog/core/telemetry/request_spec.rb b/spec/datadog/core/telemetry/request_spec.rb index 85d1f757c15..105979018cc 100644 --- a/spec/datadog/core/telemetry/request_spec.rb +++ b/spec/datadog/core/telemetry/request_spec.rb @@ -37,6 +37,7 @@ let(:service_name) { 'service' } let(:service_version) { 'version' } let(:tracer_version) { Datadog::Core::Environment::Identity.gem_datadog_version_semver2 } + let(:process_tags_enabled) { false } let(:host) do { @@ -59,23 +60,24 @@ c.env = env c.service = service_name c.version = service_version - # Keep baseline payload without process_tags. - c.experimental_propagate_process_tags_enabled = false + c.experimental_propagate_process_tags_enabled = process_tags_enabled end end - it do - is_expected.to match( - api_version: api_version, - application: application, - debug: debug, - host: host, - payload: payload, - request_type: request_type, - runtime_id: runtime_id, - seq_id: seq_id, - tracer_time: be_between(before_time, after_time), - ) + context 'when process tags propagation is disabled' do + it do + is_expected.to match( + api_version: api_version, + application: application, + debug: debug, + host: host, + payload: payload, + request_type: request_type, + runtime_id: runtime_id, + seq_id: seq_id, + tracer_time: be_between(before_time, after_time), + ) + end end context 'when Datadog::CI is loaded and ci mode is enabled' do From f8c332390dd1da2632cbbfcbc0187dd0b3fd867a Mon Sep 17 00:00:00 2001 From: wantsui Date: Wed, 11 Mar 2026 16:08:44 -0400 Subject: [PATCH 12/17] Update spec/datadog/core/workers/runtime_metrics_spec.rb Co-authored-by: Munir Abdinur --- spec/datadog/core/workers/runtime_metrics_spec.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/datadog/core/workers/runtime_metrics_spec.rb b/spec/datadog/core/workers/runtime_metrics_spec.rb index 8c62c3ce00a..1585c43a650 100644 --- a/spec/datadog/core/workers/runtime_metrics_spec.rb +++ b/spec/datadog/core/workers/runtime_metrics_spec.rb @@ -36,7 +36,7 @@ expect(Datadog::Core::Runtime::Metrics).to have_received(:new).with( logger: logger, telemetry: telemetry, - experimental_propagate_process_tags_enabled: Datadog.configuration.experimental_propagate_process_tags_enabled + experimental_propagate_process_tags_enabled: true ) end end From 9a8649b403b2580af473a6e6958af92d038c4fe3 Mon Sep 17 00:00:00 2001 From: wan <26727996+wantsui@users.noreply.github.com> Date: Thu, 12 Mar 2026 19:06:38 -0400 Subject: [PATCH 13/17] Refactor runtime_metrics_spec.rb to use receive syntax --- spec/datadog/core/workers/runtime_metrics_spec.rb | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/spec/datadog/core/workers/runtime_metrics_spec.rb b/spec/datadog/core/workers/runtime_metrics_spec.rb index 1585c43a650..c50b14c36f3 100644 --- a/spec/datadog/core/workers/runtime_metrics_spec.rb +++ b/spec/datadog/core/workers/runtime_metrics_spec.rb @@ -22,22 +22,18 @@ context 'by default' do subject(:worker) { described_class.new(logger: logger, telemetry: telemetry) } - before do - allow(Datadog::Core::Runtime::Metrics).to receive(:new).and_call_original - end - it { expect(worker.enabled?).to be false } it { expect(worker.loop_base_interval).to eq 10 } it { expect(worker.loop_back_off_ratio).to eq 1.2 } it { expect(worker.loop_back_off_max).to eq 30 } it 'builds runtime metrics from configuration for process tags propagation' do - worker - - expect(Datadog::Core::Runtime::Metrics).to have_received(:new).with( + expect(Datadog::Core::Runtime::Metrics).to receive(:new).with( logger: logger, telemetry: telemetry, - experimental_propagate_process_tags_enabled: true - ) + experimental_propagate_process_tags_enabled: true, + ).and_call_original + + worker end end From ecd5cb5f447891f423a2d29a884005f63b036cf2 Mon Sep 17 00:00:00 2001 From: wan <26727996+wantsui@users.noreply.github.com> Date: Thu, 12 Mar 2026 19:17:40 -0400 Subject: [PATCH 14/17] Add an internal alias for propagate_process_tags_enabled that doesn't include experimental and adjust specs to match --- lib/datadog/core/configuration/components.rb | 2 +- lib/datadog/core/configuration/settings.rb | 2 +- lib/datadog/core/runtime/metrics.rb | 4 +++- lib/datadog/core/workers/runtime_metrics.rb | 7 +++---- spec/datadog/core/configuration/components_spec.rb | 2 +- spec/datadog/core/runtime/metrics_spec.rb | 14 +++++++------- spec/datadog/core/workers/runtime_metrics_spec.rb | 12 +++++++++--- 7 files changed, 25 insertions(+), 18 deletions(-) diff --git a/lib/datadog/core/configuration/components.rb b/lib/datadog/core/configuration/components.rb index 98ff4976615..27cabaa6311 100644 --- a/lib/datadog/core/configuration/components.rb +++ b/lib/datadog/core/configuration/components.rb @@ -54,7 +54,7 @@ def build_runtime_metrics(settings, logger, telemetry) options[:statsd] = settings.runtime_metrics.statsd unless settings.runtime_metrics.statsd.nil? options[:services] = [settings.service] unless settings.service.nil? options[:experimental_runtime_id_enabled] = settings.runtime_metrics.experimental_runtime_id_enabled - options[:experimental_propagate_process_tags_enabled] = settings.experimental_propagate_process_tags_enabled + options[:propagate_process_tags_enabled] = settings.experimental_propagate_process_tags_enabled Core::Runtime::Metrics.new(logger: logger, telemetry: telemetry, **options) end diff --git a/lib/datadog/core/configuration/settings.rb b/lib/datadog/core/configuration/settings.rb index ec604ffef92..9ef5ccde2bd 100644 --- a/lib/datadog/core/configuration/settings.rb +++ b/lib/datadog/core/configuration/settings.rb @@ -1042,7 +1042,7 @@ def initialize(*_) end end - # Enable experimental process tags propagation such that payloads like spans contain the process tag. + # Enable process tags propagation such that payloads like spans contain the process tag. # # @default `DD_EXPERIMENTAL_PROPAGATE_PROCESS_TAGS_ENABLED` environment variable, otherwise `true` # @return [Boolean] diff --git a/lib/datadog/core/runtime/metrics.rb b/lib/datadog/core/runtime/metrics.rb index a3573c29bdd..599ee07eacb 100644 --- a/lib/datadog/core/runtime/metrics.rb +++ b/lib/datadog/core/runtime/metrics.rb @@ -26,7 +26,9 @@ def initialize(telemetry:, **options) # Initialize the collection of runtime-id @runtime_id_enabled = options.fetch(:experimental_runtime_id_enabled, false) - @process_tags_enabled = options.fetch(:experimental_propagate_process_tags_enabled) + @process_tags_enabled = options.fetch(:propagate_process_tags_enabled) do + options.fetch(:experimental_propagate_process_tags_enabled) + end end # Associate service with runtime metrics diff --git a/lib/datadog/core/workers/runtime_metrics.rb b/lib/datadog/core/workers/runtime_metrics.rb index a15a2cb67e5..9113ec3ad09 100644 --- a/lib/datadog/core/workers/runtime_metrics.rb +++ b/lib/datadog/core/workers/runtime_metrics.rb @@ -25,10 +25,9 @@ def initialize(telemetry:, **options) Core::Runtime::Metrics.new( logger: options[:logger], telemetry: telemetry, - experimental_propagate_process_tags_enabled: options.fetch( - :experimental_propagate_process_tags_enabled, - Datadog.configuration.experimental_propagate_process_tags_enabled - ) + propagate_process_tags_enabled: options.fetch(:propagate_process_tags_enabled) do + options.fetch(:experimental_propagate_process_tags_enabled) + end ) end diff --git a/spec/datadog/core/configuration/components_spec.rb b/spec/datadog/core/configuration/components_spec.rb index 2171b28f8ad..b2171393a2f 100644 --- a/spec/datadog/core/configuration/components_spec.rb +++ b/spec/datadog/core/configuration/components_spec.rb @@ -307,7 +307,7 @@ {enabled: settings.runtime_metrics.enabled, services: [settings.service], experimental_runtime_id_enabled: settings.runtime_metrics.experimental_runtime_id_enabled, - experimental_propagate_process_tags_enabled: settings.experimental_propagate_process_tags_enabled,} + propagate_process_tags_enabled: settings.experimental_propagate_process_tags_enabled,} end let(:options) { {} } diff --git a/spec/datadog/core/runtime/metrics_spec.rb b/spec/datadog/core/runtime/metrics_spec.rb index 88dc5ad4130..36c13bb7412 100644 --- a/spec/datadog/core/runtime/metrics_spec.rb +++ b/spec/datadog/core/runtime/metrics_spec.rb @@ -6,7 +6,7 @@ RSpec.describe Datadog::Core::Runtime::Metrics do let(:logger) { logger_allowing_debug } let(:telemetry) { double(Datadog::Core::Telemetry::Component) } - let(:options) { {experimental_propagate_process_tags_enabled: true} } + let(:options) { {propagate_process_tags_enabled: true} } subject(:runtime_metrics) { described_class.new(logger: logger, telemetry: telemetry, **options) } describe '::new' do @@ -271,7 +271,7 @@ it_behaves_like 'a flush of all runtime metrics' context 'with process tags enabled' do - let(:options) { super().merge(experimental_propagate_process_tags_enabled: true) } + let(:options) { super().merge(propagate_process_tags_enabled: true) } let(:statsd) { spy('statsd') } before do @@ -325,7 +325,7 @@ describe ':tags' do subject(:default_tags) { default_metric_options[:tags] } - context 'when :experimental_propagate_process_tags_enabled is true' do + context 'when :propagate_process_tags_enabled is true' do before do allow(Datadog::Core::Environment::Process).to receive(:tags) .and_return(['entrypoint.workdir:test', 'entrypoint.name:test_script']) @@ -369,8 +369,8 @@ end end - context 'when :experimental_propagate_process_tags_enabled is true' do - let(:options) { super().merge(experimental_propagate_process_tags_enabled: true) } + context 'when :propagate_process_tags_enabled is true' do + let(:options) { super().merge(propagate_process_tags_enabled: true) } before do expect(Datadog::Core::Environment::Process).to receive(:tags).and_return(['entrypoint.workdir:test', 'entrypoint.name:test_script', 'entrypoint.basedir:test', 'entrypoint.type:script']) @@ -384,8 +384,8 @@ end end - context 'when :experimental_propagate_process_tags_enabled is false' do - let(:options) { super().merge(experimental_propagate_process_tags_enabled: false) } + context 'when :propagate_process_tags_enabled is false' do + let(:options) { super().merge(propagate_process_tags_enabled: false) } it 'does not include process tags when disabled' do is_expected.to_not include('entrypoint.workdir:test') diff --git a/spec/datadog/core/workers/runtime_metrics_spec.rb b/spec/datadog/core/workers/runtime_metrics_spec.rb index c50b14c36f3..27f35efd83a 100644 --- a/spec/datadog/core/workers/runtime_metrics_spec.rb +++ b/spec/datadog/core/workers/runtime_metrics_spec.rb @@ -20,17 +20,23 @@ it { expect(worker).to be_a_kind_of(Datadog::Core::Workers::Polling) } context 'by default' do - subject(:worker) { described_class.new(logger: logger, telemetry: telemetry) } + subject(:worker) do + described_class.new( + logger: logger, + telemetry: telemetry, + propagate_process_tags_enabled: true + ) + end it { expect(worker.enabled?).to be false } it { expect(worker.loop_base_interval).to eq 10 } it { expect(worker.loop_back_off_ratio).to eq 1.2 } it { expect(worker.loop_back_off_max).to eq 30 } - it 'builds runtime metrics from configuration for process tags propagation' do + it 'builds runtime metrics with process tags propagation setting' do expect(Datadog::Core::Runtime::Metrics).to receive(:new).with( logger: logger, telemetry: telemetry, - experimental_propagate_process_tags_enabled: true, + propagate_process_tags_enabled: true, ).and_call_original worker From e854814890ec45efde584abf207d7b149b127e1f Mon Sep 17 00:00:00 2001 From: wan <26727996+wantsui@users.noreply.github.com> Date: Thu, 12 Mar 2026 19:20:56 -0400 Subject: [PATCH 15/17] Add missing test --- spec/datadog/core/telemetry/request_spec.rb | 23 +++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/spec/datadog/core/telemetry/request_spec.rb b/spec/datadog/core/telemetry/request_spec.rb index 105979018cc..ae0051e5c7d 100644 --- a/spec/datadog/core/telemetry/request_spec.rb +++ b/spec/datadog/core/telemetry/request_spec.rb @@ -80,6 +80,29 @@ end end + context 'when process tags propagation is enabled' do + let(:process_tags_enabled) { true } + let(:process_tags) { 'entrypoint.workdir:test,entrypoint.name:test_script' } + + before do + allow(Datadog::Core::Environment::Process).to receive(:serialized).and_return(process_tags) + end + + it do + is_expected.to match( + api_version: api_version, + application: application.merge(process_tags: process_tags), + debug: debug, + host: host, + payload: payload, + request_type: request_type, + runtime_id: runtime_id, + seq_id: seq_id, + tracer_time: be_between(before_time, after_time), + ) + end + end + context 'when Datadog::CI is loaded and ci mode is enabled' do before do stub_const('Datadog::CI::VERSION::STRING', '1.2.3') From 49efe379b78a2768b179ddda002207d3b0ae52ed Mon Sep 17 00:00:00 2001 From: wan <26727996+wantsui@users.noreply.github.com> Date: Fri, 13 Mar 2026 15:35:48 -0400 Subject: [PATCH 16/17] Add back the experimental designation so it can be deleted later --- lib/datadog/core/configuration/components.rb | 2 +- lib/datadog/core/runtime/metrics.rb | 4 +--- lib/datadog/core/workers/runtime_metrics.rb | 2 +- spec/datadog/core/configuration/components_spec.rb | 2 +- spec/datadog/core/runtime/metrics_spec.rb | 14 +++++++------- spec/datadog/core/workers/runtime_metrics_spec.rb | 4 ++-- 6 files changed, 13 insertions(+), 15 deletions(-) diff --git a/lib/datadog/core/configuration/components.rb b/lib/datadog/core/configuration/components.rb index 27cabaa6311..98ff4976615 100644 --- a/lib/datadog/core/configuration/components.rb +++ b/lib/datadog/core/configuration/components.rb @@ -54,7 +54,7 @@ def build_runtime_metrics(settings, logger, telemetry) options[:statsd] = settings.runtime_metrics.statsd unless settings.runtime_metrics.statsd.nil? options[:services] = [settings.service] unless settings.service.nil? options[:experimental_runtime_id_enabled] = settings.runtime_metrics.experimental_runtime_id_enabled - options[:propagate_process_tags_enabled] = settings.experimental_propagate_process_tags_enabled + options[:experimental_propagate_process_tags_enabled] = settings.experimental_propagate_process_tags_enabled Core::Runtime::Metrics.new(logger: logger, telemetry: telemetry, **options) end diff --git a/lib/datadog/core/runtime/metrics.rb b/lib/datadog/core/runtime/metrics.rb index 599ee07eacb..a3573c29bdd 100644 --- a/lib/datadog/core/runtime/metrics.rb +++ b/lib/datadog/core/runtime/metrics.rb @@ -26,9 +26,7 @@ def initialize(telemetry:, **options) # Initialize the collection of runtime-id @runtime_id_enabled = options.fetch(:experimental_runtime_id_enabled, false) - @process_tags_enabled = options.fetch(:propagate_process_tags_enabled) do - options.fetch(:experimental_propagate_process_tags_enabled) - end + @process_tags_enabled = options.fetch(:experimental_propagate_process_tags_enabled) end # Associate service with runtime metrics diff --git a/lib/datadog/core/workers/runtime_metrics.rb b/lib/datadog/core/workers/runtime_metrics.rb index 9113ec3ad09..4e20682ffa2 100644 --- a/lib/datadog/core/workers/runtime_metrics.rb +++ b/lib/datadog/core/workers/runtime_metrics.rb @@ -25,7 +25,7 @@ def initialize(telemetry:, **options) Core::Runtime::Metrics.new( logger: options[:logger], telemetry: telemetry, - propagate_process_tags_enabled: options.fetch(:propagate_process_tags_enabled) do + experimental_propagate_process_tags_enabled: options.fetch(:propagate_process_tags_enabled) do options.fetch(:experimental_propagate_process_tags_enabled) end ) diff --git a/spec/datadog/core/configuration/components_spec.rb b/spec/datadog/core/configuration/components_spec.rb index b2171393a2f..2171b28f8ad 100644 --- a/spec/datadog/core/configuration/components_spec.rb +++ b/spec/datadog/core/configuration/components_spec.rb @@ -307,7 +307,7 @@ {enabled: settings.runtime_metrics.enabled, services: [settings.service], experimental_runtime_id_enabled: settings.runtime_metrics.experimental_runtime_id_enabled, - propagate_process_tags_enabled: settings.experimental_propagate_process_tags_enabled,} + experimental_propagate_process_tags_enabled: settings.experimental_propagate_process_tags_enabled,} end let(:options) { {} } diff --git a/spec/datadog/core/runtime/metrics_spec.rb b/spec/datadog/core/runtime/metrics_spec.rb index 36c13bb7412..88dc5ad4130 100644 --- a/spec/datadog/core/runtime/metrics_spec.rb +++ b/spec/datadog/core/runtime/metrics_spec.rb @@ -6,7 +6,7 @@ RSpec.describe Datadog::Core::Runtime::Metrics do let(:logger) { logger_allowing_debug } let(:telemetry) { double(Datadog::Core::Telemetry::Component) } - let(:options) { {propagate_process_tags_enabled: true} } + let(:options) { {experimental_propagate_process_tags_enabled: true} } subject(:runtime_metrics) { described_class.new(logger: logger, telemetry: telemetry, **options) } describe '::new' do @@ -271,7 +271,7 @@ it_behaves_like 'a flush of all runtime metrics' context 'with process tags enabled' do - let(:options) { super().merge(propagate_process_tags_enabled: true) } + let(:options) { super().merge(experimental_propagate_process_tags_enabled: true) } let(:statsd) { spy('statsd') } before do @@ -325,7 +325,7 @@ describe ':tags' do subject(:default_tags) { default_metric_options[:tags] } - context 'when :propagate_process_tags_enabled is true' do + context 'when :experimental_propagate_process_tags_enabled is true' do before do allow(Datadog::Core::Environment::Process).to receive(:tags) .and_return(['entrypoint.workdir:test', 'entrypoint.name:test_script']) @@ -369,8 +369,8 @@ end end - context 'when :propagate_process_tags_enabled is true' do - let(:options) { super().merge(propagate_process_tags_enabled: true) } + context 'when :experimental_propagate_process_tags_enabled is true' do + let(:options) { super().merge(experimental_propagate_process_tags_enabled: true) } before do expect(Datadog::Core::Environment::Process).to receive(:tags).and_return(['entrypoint.workdir:test', 'entrypoint.name:test_script', 'entrypoint.basedir:test', 'entrypoint.type:script']) @@ -384,8 +384,8 @@ end end - context 'when :propagate_process_tags_enabled is false' do - let(:options) { super().merge(propagate_process_tags_enabled: false) } + context 'when :experimental_propagate_process_tags_enabled is false' do + let(:options) { super().merge(experimental_propagate_process_tags_enabled: false) } it 'does not include process tags when disabled' do is_expected.to_not include('entrypoint.workdir:test') diff --git a/spec/datadog/core/workers/runtime_metrics_spec.rb b/spec/datadog/core/workers/runtime_metrics_spec.rb index 27f35efd83a..87051791d43 100644 --- a/spec/datadog/core/workers/runtime_metrics_spec.rb +++ b/spec/datadog/core/workers/runtime_metrics_spec.rb @@ -24,7 +24,7 @@ described_class.new( logger: logger, telemetry: telemetry, - propagate_process_tags_enabled: true + experimental_propagate_process_tags_enabled: true ) end @@ -36,7 +36,7 @@ expect(Datadog::Core::Runtime::Metrics).to receive(:new).with( logger: logger, telemetry: telemetry, - propagate_process_tags_enabled: true, + experimental_propagate_process_tags_enabled: true, ).and_call_original worker From f362eb80eb4ec59eb52e451fa334e934d0986db7 Mon Sep 17 00:00:00 2001 From: wan <26727996+wantsui@users.noreply.github.com> Date: Mon, 16 Mar 2026 17:31:30 -0400 Subject: [PATCH 17/17] Remove the unneeded experimental_propagate_process_tags_enabled during Runtime new --- lib/datadog/core/workers/runtime_metrics.rb | 5 +-- .../core/workers/runtime_metrics_spec.rb | 33 +++++++------------ 2 files changed, 13 insertions(+), 25 deletions(-) diff --git a/lib/datadog/core/workers/runtime_metrics.rb b/lib/datadog/core/workers/runtime_metrics.rb index 4e20682ffa2..e4d2246a037 100644 --- a/lib/datadog/core/workers/runtime_metrics.rb +++ b/lib/datadog/core/workers/runtime_metrics.rb @@ -24,10 +24,7 @@ def initialize(telemetry:, **options) @metrics = options.fetch(:metrics) do Core::Runtime::Metrics.new( logger: options[:logger], - telemetry: telemetry, - experimental_propagate_process_tags_enabled: options.fetch(:propagate_process_tags_enabled) do - options.fetch(:experimental_propagate_process_tags_enabled) - end + telemetry: telemetry ) end diff --git a/spec/datadog/core/workers/runtime_metrics_spec.rb b/spec/datadog/core/workers/runtime_metrics_spec.rb index 87051791d43..2b1f4397bb1 100644 --- a/spec/datadog/core/workers/runtime_metrics_spec.rb +++ b/spec/datadog/core/workers/runtime_metrics_spec.rb @@ -6,13 +6,12 @@ RSpec.describe Datadog::Core::Workers::RuntimeMetrics do subject(:worker) { described_class.new(telemetry: telemetry, **options) } - let(:metrics) { instance_double(Datadog::Core::Runtime::Metrics, close: nil) } - let(:options) { {metrics: metrics, enabled: true} } - + let(:runtime_metrics) { instance_double(Datadog::Core::Runtime::Metrics, close: nil) } + let(:options) { {metrics: runtime_metrics, enabled: true} } let(:logger) { logger_allowing_debug } let(:telemetry) { double(Datadog::Core::Telemetry::Component) } - before { allow(metrics).to receive(:flush) } + before { allow(runtime_metrics).to receive(:flush) } after { worker.stop(true, 1) } @@ -24,7 +23,7 @@ described_class.new( logger: logger, telemetry: telemetry, - experimental_propagate_process_tags_enabled: true + metrics: runtime_metrics, ) end @@ -32,15 +31,7 @@ it { expect(worker.loop_base_interval).to eq 10 } it { expect(worker.loop_back_off_ratio).to eq 1.2 } it { expect(worker.loop_back_off_max).to eq 30 } - it 'builds runtime metrics with process tags propagation setting' do - expect(Datadog::Core::Runtime::Metrics).to receive(:new).with( - logger: logger, - telemetry: telemetry, - experimental_propagate_process_tags_enabled: true, - ).and_call_original - - worker - end + it { expect(worker.metrics).to be(runtime_metrics) } end context 'when :enabled is given' do @@ -88,7 +79,7 @@ it 'starts a worker thread' do perform expect(worker).to have_attributes( - metrics: metrics, + metrics: runtime_metrics, run_async?: true, running?: true, started?: true, @@ -300,7 +291,7 @@ # Metrics are produced once right away # and again after an interval. - wait_for(metrics).to have_received(:flush).at_least(2).times + wait_for(runtime_metrics).to have_received(:flush).at_least(2).times end end @@ -309,14 +300,14 @@ let(:options) do { - metrics: metrics, + metrics: runtime_metrics, fork_policy: fork_policy, enabled: true } end context 'when the process forks' do - before { allow(metrics).to receive(:flush) } + before { allow(runtime_metrics).to receive(:flush) } after { worker.stop } @@ -330,7 +321,7 @@ expect_in_fork do # Capture the flush @flushed = false - allow(metrics).to receive(:flush) do + allow(runtime_metrics).to receive(:flush) do @flushed = true end @@ -352,7 +343,7 @@ expect_in_fork do # Capture the flush @flushed = false - allow(metrics).to receive(:flush) do + allow(runtime_metrics).to receive(:flush) do @flushed = true end @@ -362,7 +353,7 @@ # Verify state of the worker expect(worker.error?).to be false - expect(metrics).to have_received(:flush).at_least(:once) + expect(runtime_metrics).to have_received(:flush).at_least(:once) end end end