Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion lib/datadog/tracing/configuration/settings.rb
Original file line number Diff line number Diff line change
Expand Up @@ -188,7 +188,7 @@ def self.extended(base)
# It is not supported by our backend yet. Do not enable it.
option :trace_id_128_bit_logging_enabled do |o|
o.env Tracing::Configuration::Ext::Correlation::ENV_TRACE_ID_128_BIT_LOGGING_ENABLED
o.default false
o.default true
o.type :bool
end

Expand Down
11 changes: 9 additions & 2 deletions lib/datadog/tracing/correlation.rb
Original file line number Diff line number Diff line change
Expand Up @@ -94,8 +94,15 @@ def identifier_from_digest(digest)
end

def format_trace_id(trace_id)
if Datadog.configuration.tracing.trace_id_128_bit_logging_enabled &&
!Tracing::Utils::TraceId.to_high_order(trace_id).zero?
if Datadog.configuration.tracing.trace_id_128_bit_logging_enabled
format_trace_id_128(trace_id)
else
Tracing::Utils::TraceId.to_low_order(trace_id).to_s
end
end

def format_trace_id_128(trace_id)
if !Tracing::Utils::TraceId.to_high_order(trace_id).zero?
Kernel.format('%032x', trace_id)
else
Tracing::Utils::TraceId.to_low_order(trace_id).to_s
Expand Down
8 changes: 4 additions & 4 deletions spec/datadog/tracing/configuration/settings_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -944,7 +944,7 @@ def propagation_style_inject
context 'is not defined' do
let(:env_var) { nil }

it { is_expected.to eq(false) }
it { is_expected.to eq(true) }
end

context 'is `true`' do
Expand All @@ -964,10 +964,10 @@ def propagation_style_inject
describe '#trace_id_128_bit_logging_enabled=' do
it 'updates the #trace_id_128_bit_logging_enabled setting' do
expect do
settings.tracing.trace_id_128_bit_logging_enabled = true
settings.tracing.trace_id_128_bit_logging_enabled = false
end.to change { settings.tracing.trace_id_128_bit_logging_enabled }
.from(false)
.to(true)
.from(true)
.to(false)
end
end

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@
env: 'env',
service: 'service',
span_id: span_id.to_s,
trace_id: low_order_trace_id(trace_id).to_s,
trace_id: format_for_correlation(trace_id),
version: 'version'
},
ddsource: 'ruby' }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -210,7 +210,7 @@ def perform(test_retry: false, test_discard: false)
it 'injects trace correlation' do
perform_later
expect(output).to include('my-log')
expect(output).to include(low_order_trace_id(span.trace_id).to_s)
expect(output).to include(format_for_correlation(span.trace_id))
end
end

Expand Down
108 changes: 55 additions & 53 deletions spec/datadog/tracing/contrib/rails/rails_log_auto_injection_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -89,9 +89,9 @@ def index
expect(log_entries).to have(2).items
rack_rails_logger_entry, my_entry = log_entries

expect(rack_rails_logger_entry).not_to include low_order_trace_id(trace.id).to_s
expect(rack_rails_logger_entry).not_to include format_for_correlation(trace.id)

expect(my_entry).not_to include low_order_trace_id(trace.id).to_s
expect(my_entry).not_to include format_for_correlation(trace.id)
end
end

Expand All @@ -109,9 +109,9 @@ def index
expect(log_entries).to have(2).items
rack_rails_logger_entry, my_entry = log_entries

expect(rack_rails_logger_entry).to include "dd.trace_id=#{low_order_trace_id(trace.id)}"
expect(rack_rails_logger_entry).to include "dd.trace_id=#{format_for_correlation(trace.id)}"

expect(my_entry).to include low_order_trace_id(trace.id).to_s
expect(my_entry).to include format_for_correlation(trace.id)
end
end

Expand All @@ -128,11 +128,11 @@ def index
expect(log_entries).to have(2).items
rack_rails_logger_entry, my_entry = log_entries

expect(rack_rails_logger_entry).to include "dd.trace_id=#{low_order_trace_id(trace.id)}"
expect(rack_rails_logger_entry).to include "dd.trace_id=#{format_for_correlation(trace.id)}"
expect(rack_rails_logger_entry).to include '[some_info]'
expect(rack_rails_logger_entry).to include '[some_other_info]'

expect(my_entry).to include low_order_trace_id(trace.id).to_s
expect(my_entry).to include format_for_correlation(trace.id)
expect(my_entry).to include '[some_info]'
expect(my_entry).to include '[some_other_info]'
end
Expand All @@ -158,12 +158,12 @@ def index

rack_rails_logger_entry, my_entry, controller_logger_entry = log_entries

expect(rack_rails_logger_entry).not_to include low_order_trace_id(trace.id).to_s
expect(rack_rails_logger_entry).not_to include format_for_correlation(trace.id)

expect(controller_logger_entry).to include low_order_trace_id(low_order_trace_id(trace.id)).to_s
expect(controller_logger_entry).to include format_for_correlation(trace.id)
expect(controller_logger_entry).to include 'ddsource=ruby'

expect(my_entry).not_to include low_order_trace_id(trace.id).to_s
expect(my_entry).not_to include format_for_correlation(trace.id)
end
end

Expand All @@ -185,14 +185,14 @@ def index

rack_rails_logger_entry, my_entry, controller_logger_entry = log_entries

expect(rack_rails_logger_entry).not_to include low_order_trace_id(trace.id).to_s
expect(rack_rails_logger_entry).not_to include format_for_correlation(trace.id)

expect(controller_logger_entry).to include low_order_trace_id(trace.id).to_s
expect(controller_logger_entry).to include format_for_correlation(trace.id)
expect(controller_logger_entry).to include 'ddsource=ruby'
expect(controller_logger_entry).to include 'some_hash_info=test_hash_value'
expect(controller_logger_entry).to include 'some_other_hash_info=other_test_hash_value'

expect(my_entry).not_to include low_order_trace_id(trace.id).to_s
expect(my_entry).not_to include format_for_correlation(trace.id)
end
end

Expand All @@ -216,14 +216,14 @@ def index

rack_rails_logger_entry, my_entry, controller_logger_entry = log_entries

expect(rack_rails_logger_entry).not_to include low_order_trace_id(low_order_trace_id(trace.id)).to_s
expect(rack_rails_logger_entry).not_to include format_for_correlation(trace.id)

expect(controller_logger_entry).to include low_order_trace_id(trace.id).to_s
expect(controller_logger_entry).to include format_for_correlation(trace.id)
expect(controller_logger_entry).to include 'ddsource=ruby'
expect(controller_logger_entry).to include 'some_lambda_info=test_lambda_value'
expect(controller_logger_entry).to include 'some_other_lambda_info=other_test_lambda_value'

expect(my_entry).not_to include low_order_trace_id(trace.id).to_s
expect(my_entry).not_to include format_for_correlation(trace.id)
end
end
end
Expand All @@ -241,11 +241,11 @@ def index

rack_rails_logger_entry, my_entry, controller_logger_entry = log_entries

expect(rack_rails_logger_entry).not_to include low_order_trace_id(trace.id).to_s
expect(rack_rails_logger_entry).not_to include format_for_correlation(trace.id)

expect(my_entry).not_to include low_order_trace_id(trace.id).to_s
expect(my_entry).not_to include format_for_correlation(trace.id)

expect(controller_logger_entry).not_to include low_order_trace_id(trace.id).to_s
expect(controller_logger_entry).not_to include format_for_correlation(trace.id)
end
end
end
Expand All @@ -272,11 +272,11 @@ def index

rack_rails_logger_entry, my_entry, controller_logger_entry = log_entries

expect(rack_rails_logger_entry).to include "dd.trace_id=#{low_order_trace_id(trace.id)}"
expect(rack_rails_logger_entry).to include "dd.trace_id=#{format_for_correlation(trace.id)}"

expect(my_entry).to include "dd.trace_id=#{low_order_trace_id(trace.id)}"
expect(my_entry).to include "dd.trace_id=#{format_for_correlation(trace.id)}"

expect(controller_logger_entry.scan(low_order_trace_id(trace.id).to_s)).to have(2).times
expect(controller_logger_entry.scan(format_for_correlation(trace.id))).to have(2).times
expect(controller_logger_entry).to include 'ddsource=ruby'
end
end
Expand All @@ -292,15 +292,15 @@ def index

rack_rails_logger_entry, my_entry, controller_logger_entry = log_entries

expect(rack_rails_logger_entry).to include "dd.trace_id=#{low_order_trace_id(trace.id)}"
expect(rack_rails_logger_entry).to include "dd.trace_id=#{format_for_correlation(trace.id)}"
expect(rack_rails_logger_entry).to include '[some_info]'
expect(rack_rails_logger_entry).to include '[some_other_info]'

expect(my_entry).to include "dd.trace_id=#{low_order_trace_id(trace.id)}"
expect(my_entry).to include "dd.trace_id=#{format_for_correlation(trace.id)}"
expect(my_entry).to include '[some_info]'
expect(my_entry).to include '[some_other_info]'

expect(controller_logger_entry.scan(low_order_trace_id(trace.id).to_s)).to have(2).times
expect(controller_logger_entry.scan(format_for_correlation(trace.id))).to have(2).times
expect(controller_logger_entry).to include 'ddsource=ruby'
expect(controller_logger_entry).to include '[some_info]'
expect(controller_logger_entry).to include '[some_other_info]'
Expand All @@ -325,11 +325,11 @@ def index

rack_rails_logger_entry, my_entry, controller_logger_entry = log_entries

expect(rack_rails_logger_entry).to include "dd.trace_id=#{low_order_trace_id(trace.id)}"
expect(rack_rails_logger_entry).to include "dd.trace_id=#{format_for_correlation(trace.id)}"

expect(my_entry).to include "dd.trace_id=#{low_order_trace_id(trace.id)}"
expect(my_entry).to include "dd.trace_id=#{format_for_correlation(trace.id)}"

expect(controller_logger_entry.scan(low_order_trace_id(trace.id).to_s)).to have(2).times
expect(controller_logger_entry.scan(format_for_correlation(trace.id))).to have(2).times
expect(controller_logger_entry).to include 'ddsource=ruby'
expect(controller_logger_entry).to include 'some_hash_info=test_hash_value'
expect(controller_logger_entry).to include 'some_other_hash_info=other_test_hash_value'
Expand All @@ -356,11 +356,11 @@ def index

rack_rails_logger_entry, my_entry, controller_logger_entry = log_entries

expect(rack_rails_logger_entry).to include "dd.trace_id=#{low_order_trace_id(trace.id)}"
expect(rack_rails_logger_entry).to include "dd.trace_id=#{format_for_correlation(trace.id)}"

expect(my_entry).to include "dd.trace_id=#{low_order_trace_id(trace.id)}"
expect(my_entry).to include "dd.trace_id=#{format_for_correlation(trace.id)}"

expect(controller_logger_entry.scan(low_order_trace_id(trace.id).to_s)).to have(2).times
expect(controller_logger_entry.scan(format_for_correlation(trace.id))).to have(2).times
expect(controller_logger_entry).to include 'ddsource=ruby'
expect(controller_logger_entry).to include 'some_lambda_info=test_lambda_value'
expect(controller_logger_entry).to include 'some_other_lambda_info=other_test_lambda_value'
Expand All @@ -387,15 +387,15 @@ def index

rack_rails_logger_entry, my_entry, controller_logger_entry = log_entries

expect(rack_rails_logger_entry).to include "dd.trace_id=#{low_order_trace_id(trace.id)}"
expect(rack_rails_logger_entry).to include "dd.trace_id=#{format_for_correlation(trace.id)}"
expect(rack_rails_logger_entry).to include '[some_info]'
expect(rack_rails_logger_entry).to include '[some_other_info]'

expect(my_entry).to include "dd.trace_id=#{low_order_trace_id(trace.id)}"
expect(my_entry).to include "dd.trace_id=#{format_for_correlation(trace.id)}"
expect(my_entry).to include '[some_info]'
expect(my_entry).to include '[some_other_info]'

expect(controller_logger_entry.scan(low_order_trace_id(trace.id).to_s)).to have(2).times
expect(controller_logger_entry.scan(format_for_correlation(trace.id))).to have(2).times
expect(controller_logger_entry).to include '[some_info]'
expect(controller_logger_entry).to include '[some_other_info]'
expect(controller_logger_entry).to include 'ddsource=ruby'
Expand All @@ -420,9 +420,9 @@ def index
expect(log_entries).to have(2).item
rack_rails_logger_entry, my_entry = log_entries

expect(rack_rails_logger_entry).not_to include low_order_trace_id(trace.id).to_s
expect(rack_rails_logger_entry).not_to include format_for_correlation(trace.id)

expect(my_entry).not_to include low_order_trace_id(trace.id).to_s
expect(my_entry).not_to include format_for_correlation(trace.id)
end
end

Expand All @@ -440,9 +440,9 @@ def index

rack_rails_logger_entry, my_entry = log_entries

expect(rack_rails_logger_entry).not_to include low_order_trace_id(trace.id).to_s
expect(rack_rails_logger_entry).not_to include format_for_correlation(trace.id)

expect(my_entry).not_to include low_order_trace_id(trace.id).to_s
expect(my_entry).not_to include format_for_correlation(trace.id)
end
end

Expand All @@ -457,11 +457,11 @@ def index

rack_rails_logger_entry, my_entry = log_entries

expect(rack_rails_logger_entry).not_to include low_order_trace_id(trace.id).to_s
expect(rack_rails_logger_entry).not_to include format_for_correlation(trace.id)
expect(rack_rails_logger_entry).to include '[some_info]'
expect(rack_rails_logger_entry).to include '[some_other_info]'

expect(my_entry).not_to include low_order_trace_id(trace.id).to_s
expect(my_entry).not_to include format_for_correlation(trace.id)
expect(my_entry).to include '[some_info]'
expect(my_entry).to include '[some_other_info]'
end
Expand All @@ -481,8 +481,10 @@ def index
expect(log_entries).to have(2).items

rack_rails_logger_entry, my_entry = log_entries
expect(rack_rails_logger_entry).to include "dd.trace_id=#{low_order_trace_id(low_order_trace_id(trace.id))}"
expect(my_entry).to include "dd.trace_id=#{low_order_trace_id(low_order_trace_id(trace.id))}"
expect(rack_rails_logger_entry).to include "dd.trace_id=#{
format_for_correlation(trace.id)
}"
expect(my_entry).to include "dd.trace_id=#{format_for_correlation(trace.id)}"
end
end
end
Expand All @@ -507,11 +509,11 @@ def index

rack_rails_logger_entry, my_entry, controller_logger_entry = log_entries

expect(rack_rails_logger_entry).not_to include low_order_trace_id(trace.id).to_s
expect(rack_rails_logger_entry).not_to include format_for_correlation(trace.id)

expect(my_entry).not_to include low_order_trace_id(trace.id).to_s
expect(my_entry).not_to include format_for_correlation(trace.id)

expect(controller_logger_entry).not_to include low_order_trace_id(trace.id).to_s
expect(controller_logger_entry).not_to include format_for_correlation(trace.id)
end
end

Expand All @@ -533,11 +535,11 @@ def index

rack_rails_logger_entry, my_entry, controller_logger_entry = log_entries

expect(rack_rails_logger_entry).not_to include low_order_trace_id(trace.id).to_s
expect(rack_rails_logger_entry).not_to include format_for_correlation(trace.id)

expect(my_entry).not_to include low_order_trace_id(trace.id).to_s
expect(my_entry).not_to include format_for_correlation(trace.id)

expect(controller_logger_entry).not_to include low_order_trace_id(trace.id).to_s
expect(controller_logger_entry).not_to include format_for_correlation(trace.id)
expect(controller_logger_entry).to include 'some_hash_info=test_hash_value'
expect(controller_logger_entry).to include 'some_other_hash_info=other_test_hash_value'
end
Expand All @@ -563,11 +565,11 @@ def index

rack_rails_logger_entry, my_entry, controller_logger_entry = log_entries

expect(rack_rails_logger_entry).not_to include low_order_trace_id(trace.id).to_s
expect(rack_rails_logger_entry).not_to include format_for_correlation(trace.id)

expect(my_entry).not_to include low_order_trace_id(trace.id).to_s
expect(my_entry).not_to include format_for_correlation(trace.id)

expect(controller_logger_entry).not_to include low_order_trace_id(trace.id).to_s
expect(controller_logger_entry).not_to include format_for_correlation(trace.id)
expect(controller_logger_entry).to include 'some_lambda_info=test_lambda_value'
expect(controller_logger_entry).to include 'some_other_lambda_info=other_test_lambda_value'
end
Expand All @@ -587,11 +589,11 @@ def index

rack_rails_logger_entry, my_entry, controller_logger_entry = log_entries

expect(rack_rails_logger_entry).not_to include low_order_trace_id(trace.id).to_s
expect(rack_rails_logger_entry).not_to include format_for_correlation(trace.id)

expect(my_entry).not_to include low_order_trace_id(trace.id).to_s
expect(my_entry).not_to include format_for_correlation(trace.id)

expect(controller_logger_entry).not_to include low_order_trace_id(trace.id).to_s
expect(controller_logger_entry).not_to include format_for_correlation(trace.id)
end
end
end
Expand Down
Loading
Loading