Method: Datadog::Tracing::Sampling::RuleSampler#initialize
- Defined in:
- lib/datadog/tracing/sampling/rule_sampler.rb
permalink #initialize(rules = [], rate_limit: Datadog.configuration.tracing.sampling.rate_limit, rate_limiter: nil, default_sample_rate: Datadog.configuration.tracing.sampling.default_rate, default_sampler: nil) ⇒ RuleSampler
Returns a new instance of RuleSampler.
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/datadog/tracing/sampling/rule_sampler.rb', line 25 def initialize( rules = [], rate_limit: Datadog.configuration.tracing.sampling.rate_limit, rate_limiter: nil, default_sample_rate: Datadog.configuration.tracing.sampling.default_rate, default_sampler: nil ) @rules = if default_sample_rate && !default_sampler # Add to the end of the rule list a rule always matches any trace rules << SimpleRule.new(sample_rate: default_sample_rate) else rules end @rate_limiter = if rate_limiter rate_limiter elsif rate_limit Core::TokenBucket.new(rate_limit) else Core::UnlimitedLimiter.new end @default_sampler = if default_sampler default_sampler elsif default_sample_rate nil else # TODO: Simplify .tags access, as `Tracer#tags` can't be arbitrarily changed anymore RateByServiceSampler.new(1.0, env: -> { Tracing.send(:tracer).['env'] }) end end |