Class: Datadog::PrioritySampler

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/ddtrace/sampler.rb

Overview

PrioritySampler

Instance Method Summary collapse

Constructor Details

#initialize(opts = {}) ⇒ PrioritySampler

Returns a new instance of PrioritySampler.



95
96
97
98
# File 'lib/ddtrace/sampler.rb', line 95

def initialize(opts = {})
  @base_sampler = opts[:base_sampler] || RateSampler.new
  @post_sampler = opts[:post_sampler] || RateByServiceSampler.new
end

Instance Method Details

#sample(span) ⇒ Object



100
101
102
103
104
105
106
107
# File 'lib/ddtrace/sampler.rb', line 100

def sample(span)
  span.context.sampling_priority = Datadog::Ext::Priority::AUTO_REJECT if span.context
  return unless @base_sampler.sample(span)
  return unless @post_sampler.sample(span)
  span.context.sampling_priority = Datadog::Ext::Priority::AUTO_KEEP if span.context

  true
end