class Jaeger::Samplers::Probabilistic
Probabilistic
sampler
Sample a portion of traces using trace_id as the random decision
Attributes
rate[R]
Public Class Methods
new(rate: 0.001)
click to toggle source
# File lib/jaeger/samplers/probabilistic.rb, line 11 def initialize(rate: 0.001) update(rate: rate) end
Public Instance Methods
sample(trace_id:, **)
click to toggle source
# File lib/jaeger/samplers/probabilistic.rb, line 33 def sample(trace_id:, **) [@boundary >= trace_id, @tags] end
update(rate:)
click to toggle source
# File lib/jaeger/samplers/probabilistic.rb, line 15 def update(rate:) if rate < 0.0 || rate > 1.0 raise "Sampling rate must be between 0.0 and 1.0, got #{rate.inspect}" end new_boundary = TraceId::TRACE_ID_UPPER_BOUND * rate return false if @boundary == new_boundary @rate = rate @boundary = TraceId::TRACE_ID_UPPER_BOUND * rate @tags = { 'sampler.type' => 'probabilistic', 'sampler.param' => rate } true end