class Datadog::Sampling::SimpleRule

A Rule that matches a span based on operation name and/or service name and applies a fixed sampling to matching spans.

Public Class Methods

new(name: SimpleMatcher::MATCH_ALL, service: SimpleMatcher::MATCH_ALL, sample_rate: 1.0) click to toggle source

@param name [String,Regexp,Proc] Matcher for case equality (===) with the span name, defaults to always match @param service [String,Regexp,Proc] Matcher for case equality (===) with the service name, defaults to always match @param sample_rate [Float] Sampling rate between +[0,1]+

Calls superclass method Datadog::Sampling::Rule::new
# File lib/ddtrace/sampling/rule.rb, line 46
def initialize(name: SimpleMatcher::MATCH_ALL, service: SimpleMatcher::MATCH_ALL, sample_rate: 1.0)
  # We want to allow 0.0 to drop all traces, but \RateSampler
  # considers 0.0 an invalid rate and falls back to 100% sampling.
  #
  # We address that here by not setting the rate in the constructor,
  # but using the setter method.
  #
  # We don't want to make this change directly to \RateSampler
  # because it breaks its current contract to existing users.
  sampler = Datadog::RateSampler.new
  sampler.sample_rate = sample_rate

  super(SimpleMatcher.new(name: name, service: service), sampler)
end