Skip to content

Commit e4fedbc

Browse files
committed
Add trace_ratio_sampled?
Now the trace ratio sampling logic lives in one method
1 parent 06c89fa commit e4fedbc

File tree

2 files changed

+7
-7
lines changed

2 files changed

+7
-7
lines changed

lib/new_relic/agent/transaction.rb

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -303,16 +303,19 @@ def sampled?
303303
false
304304
when 'trace_id_ratio_based'
305305
ratio = NewRelic::Agent.config[:'distributed_tracing.sampler.root.trace_id_ratio_based.ratio']
306-
upper_bound = (ratio * (2**64 - 1)).ceil
307-
308-
ratio == 1.0 || trace_id[8, 8].unpack1('Q>') < upper_bound
306+
trace_ratio_sampled?(ratio)
309307
when 'adaptive'
310308
NewRelic::Agent.instance.adaptive_sampler.sampled?
311309
end
312310
end
313311
@sampled
314312
end
315313

314+
def trace_ratio_sampled?(ratio)
315+
upper_bound = (ratio * (2**64 - 1)).ceil
316+
ratio == 1.0 || trace_id[8, 8].unpack1('Q>') < upper_bound
317+
end
318+
316319
def trace_id
317320
@trace_id ||= NewRelic::Agent::GuidGenerator.generate_guid(32)
318321
end

lib/new_relic/agent/transaction/trace_context.rb

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -190,10 +190,7 @@ def set_priority_and_sampled(sampler, ratio, payload)
190190
transaction.sampled = false
191191
transaction.priority = 0
192192
when 'trace_id_ratio_based'
193-
upper_bound = (ratio * (2**64 - 1)).ceil
194-
sampled = ratio == 1.0 || trace_id[8, 8].unpack1('Q>') < upper_bound
195-
196-
transaction.sampled = sampled
193+
transaction.sampled = trace_ratio_sampled?(ratio)
197194
transaction.priority = adaptive_priority
198195
when 'adaptive'
199196
use_nr_tracestate_sampled(payload)

0 commit comments

Comments
 (0)