Class: Jaeger::Samplers::Probabilistic

Inherits:
Object
  • Object
show all
Defined in:
lib/jaeger/samplers/probabilistic.rb

Overview

Probabilistic sampler

Sample a portion of traces using trace_id as the random decision

Instance Method Summary collapse

Constructor Details

#initialize(rate: 0.001) ⇒ Probabilistic

Returns a new instance of Probabilistic.



9
10
11
12
13
14
15
16
17
18
19
# File 'lib/jaeger/samplers/probabilistic.rb', line 9

def initialize(rate: 0.001)
  if rate < 0.0 || rate > 1.0
    raise "Sampling rate must be between 0.0 and 1.0, got #{rate.inspect}"
  end

  @boundary = TraceId::TRACE_ID_UPPER_BOUND * rate
  @tags = {
    'sampler.type' => 'probabilistic',
    'sampler.param' => rate
  }
end

Instance Method Details

#sample?(trace_id:) ⇒ Boolean

Returns:

  • (Boolean)


21
22
23
# File 'lib/jaeger/samplers/probabilistic.rb', line 21

def sample?(trace_id:, **)
  [@boundary >= trace_id, @tags]
end