Skip to content

Commit 46dfcd8

Browse files
committed
Refactor set_priority_and_sampled to use configs
1 parent 1b583e2 commit 46dfcd8

File tree

2 files changed

+24
-12
lines changed

2 files changed

+24
-12
lines changed

lib/new_relic/agent/transaction/distributed_tracing.rb

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -162,9 +162,17 @@ def assign_payload_and_sampling_params(payload)
162162

163163
unless payload.sampled.nil?
164164
if payload.sampled == true
165-
set_priority_and_sampled_newrelic_header('distributed_tracing.sampler.remote_parent_sampled', payload)
165+
set_priority_and_sampled_newrelic_header(
166+
NewRelic::Agent.config[:'distributed_tracing.sampler.remote_parent_sampled'],
167+
NewRelic::Agent.config[:'distributed_tracing.sampler.remote_parent_sampled.trace_id_ratio_based.ratio'],
168+
payload
169+
)
166170
elsif payload.sampled == false
167-
set_priority_and_sampled_newrelic_header('distributed_tracing.sampler.remote_parent_not_sampled', payload)
171+
set_priority_and_sampled_newrelic_header(
172+
NewRelic::Agent.config[:'distributed_tracing.sampler.remote_parent_not_sampled'],
173+
NewRelic::Agent.config[:'distributed_tracing.sampler.remote_parent_not_sampled.trace_id_ratio_based.ratio'],
174+
payload
175+
)
168176
else
169177
transaction.sampled = payload.sampled
170178
transaction.priority = payload.priority if payload.priority
@@ -177,8 +185,8 @@ def default_sampling(payload)
177185
transaction.priority = payload.priority if payload.priority
178186
end
179187

180-
def set_priority_and_sampled_newrelic_header(config, payload)
181-
case NewRelic::Agent.config[config.to_sym]
188+
def set_priority_and_sampled_newrelic_header(sampler, ratio, payload)
189+
case sampler
182190
when 'default'
183191
use_nr_tracestate_sampled(payload)
184192
when 'always_on'
@@ -188,8 +196,6 @@ def set_priority_and_sampled_newrelic_header(config, payload)
188196
transaction.sampled = false
189197
transaction.priority = 0
190198
when 'trace_id_ratio_based'
191-
ratio = NewRelic::Agent.config["#{config}.trace_id_ratio_based.ratio".to_sym]
192-
193199
if ratio.is_a?(Float) && (0.0..1.0).cover?(ratio)
194200
upper_bound = (ratio * (2**64 - 1)).ceil
195201
sampled = ratio == 1.0 || trace_id[8, 8].unpack1('Q>') < upper_bound

lib/new_relic/agent/transaction/trace_context.rb

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -154,9 +154,17 @@ def accept_trace_context(header_data)
154154

155155
def determine_sampling_decision(payload, trace_flags)
156156
if trace_flags == '01'
157-
set_priority_and_sampled('distributed_tracing.sampler.remote_parent_sampled', payload)
157+
set_priority_and_sampled(
158+
NewRelic::Agent.config[:'distributed_tracing.sampler.remote_parent_sampled'],
159+
NewRelic::Agent.config[:'distributed_tracing.sampler.remote_parent_sampled.trace_id_ratio_based.ratio'],
160+
payload
161+
)
158162
elsif trace_flags == '00'
159-
set_priority_and_sampled('distributed_tracing.sampler.remote_parent_not_sampled', payload)
163+
set_priority_and_sampled(
164+
NewRelic::Agent.config[:'distributed_tracing.sampler.remote_parent_not_sampled'],
165+
NewRelic::Agent.config[:'distributed_tracing.sampler.remote_parent_not_sampled.trace_id_ratio_based.ratio'],
166+
payload
167+
)
160168
else
161169
use_nr_tracestate_sampled(payload)
162170
end
@@ -171,8 +179,8 @@ def use_nr_tracestate_sampled(payload)
171179
end
172180
end
173181

174-
def set_priority_and_sampled(config, payload)
175-
case NewRelic::Agent.config[config.to_sym]
182+
def set_priority_and_sampled(sampler, ratio, payload)
183+
case sampler
176184
when 'default'
177185
use_nr_tracestate_sampled(payload)
178186
when 'always_on'
@@ -182,8 +190,6 @@ def set_priority_and_sampled(config, payload)
182190
transaction.sampled = false
183191
transaction.priority = 0
184192
when 'trace_id_ratio_based'
185-
ratio = NewRelic::Agent.config["#{config}.trace_id_ratio_based.ratio".to_sym]
186-
187193
if ratio.is_a?(Float) && (0.0..1.0).cover?(ratio)
188194
upper_bound = (ratio * (2**64 - 1)).ceil
189195
sampled = ratio == 1.0 || trace_id[8, 8].unpack1('Q>') < upper_bound

0 commit comments

Comments
 (0)