From 4f65aba927395794c96601704361e91628118b6f Mon Sep 17 00:00:00 2001 From: Edmund Kump Date: Mon, 20 Nov 2023 20:28:08 -0500 Subject: [PATCH] update opentracer to work with 128-bit trace_ids --- lib/datadog/opentracer/text_map_propagator.rb | 3 ++- spec/datadog/opentracer/propagation_integration_spec.rb | 9 +++++++-- spec/datadog/opentracer/rack_propagator_spec.rb | 4 +++- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/lib/datadog/opentracer/text_map_propagator.rb b/lib/datadog/opentracer/text_map_propagator.rb index 817404ce819..bc0cfeb5bb7 100644 --- a/lib/datadog/opentracer/text_map_propagator.rb +++ b/lib/datadog/opentracer/text_map_propagator.rb @@ -33,7 +33,8 @@ def inject(span_context, carrier) carrier[Tracing::Distributed::Datadog::ORIGIN_KEY] = digest.trace_origin carrier[Tracing::Distributed::Datadog::PARENT_ID_KEY] = digest.span_id carrier[Tracing::Distributed::Datadog::SAMPLING_PRIORITY_KEY] = digest.trace_sampling_priority - carrier[Tracing::Distributed::Datadog::TRACE_ID_KEY] = digest.trace_id + carrier[Tracing::Distributed::Datadog::TRACE_ID_KEY] = + Datadog::Tracing::Utils::TraceId.to_low_order(digest.trace_id) nil end diff --git a/spec/datadog/opentracer/propagation_integration_spec.rb b/spec/datadog/opentracer/propagation_integration_spec.rb index 7cff270fb0d..968684243c2 100644 --- a/spec/datadog/opentracer/propagation_integration_spec.rb +++ b/spec/datadog/opentracer/propagation_integration_spec.rb @@ -169,7 +169,12 @@ def baggage_to_carrier_format(baggage) it { expect(intermediate_datadog_trace.sampling_priority).to eq(1) } it { expect(intermediate_datadog_trace.origin).to eq('synthetics') } it { expect(intermediate_datadog_span.finished?).to be(true) } - it { expect(intermediate_datadog_span.trace_id).to eq(origin_datadog_span.trace_id) } + + it { + expect(intermediate_datadog_span.trace_id) + .to eq(Datadog::Tracing::Utils::TraceId.to_low_order(origin_datadog_span.trace_id)) + } + it { expect(intermediate_datadog_span.parent_id).to eq(origin_datadog_span.span_id) } it { expect(@intermediate_scope.span.context.baggage).to include(baggage) } @@ -182,7 +187,7 @@ def baggage_to_carrier_format(baggage) it do expect(@origin_carrier).to include( - 'x-datadog-trace-id' => origin_datadog_span.trace_id, + 'x-datadog-trace-id' => Datadog::Tracing::Utils::TraceId.to_low_order(origin_datadog_span.trace_id), 'x-datadog-parent-id' => origin_datadog_span.span_id, 'x-datadog-sampling-priority' => 1, 'x-datadog-origin' => 'synthetics', diff --git a/spec/datadog/opentracer/rack_propagator_spec.rb b/spec/datadog/opentracer/rack_propagator_spec.rb index 5e6352ddea4..5546a182831 100644 --- a/spec/datadog/opentracer/rack_propagator_spec.rb +++ b/spec/datadog/opentracer/rack_propagator_spec.rb @@ -37,7 +37,9 @@ expect(carrier).to receive(:[]=) .with('x-datadog-origin', origin.to_s) expect(carrier).to receive(:[]=) - .with('x-datadog-tags', "_dd.p.key=value,_dd.p.dm=-1,_dd.p.tid=#{Datadog::Tracing::Utils::TraceId.to_high_order(trace_id).to_s(16)}") + .with('x-datadog-tags', + '_dd.p.key=value,_dd.p.dm=-1,_dd.p.tid=' + + Datadog::Tracing::Utils::TraceId.to_high_order(trace_id).to_s(16)) # Expect carrier to be set with OpenTracing baggage baggage.each do |key, value|