class Datadog::RateByServiceSampler
RateByServiceSampler samples different services at different rates
Constants
- DEFAULT_KEY
Public Class Methods
new(default_rate = 1.0, options = {})
click to toggle source
Calls superclass method
Datadog::RateByKeySampler::new
# File lib/ddtrace/sampler.rb, line 166 def initialize(default_rate = 1.0, options = {}) super(DEFAULT_KEY, default_rate, &method(:key_for)) @env = options[:env] end
Public Instance Methods
update(rate_by_service)
click to toggle source
# File lib/ddtrace/sampler.rb, line 171 def update(rate_by_service) # Remove any old services delete_if { |key, _| key != DEFAULT_KEY && !rate_by_service.key?(key) } # Update each service rate update_all(rate_by_service) # Emit metric for service cache size Datadog.health_metrics.sampling_service_cache_length(length) end
Private Instance Methods
key_for(span)
click to toggle source
# File lib/ddtrace/sampler.rb, line 184 def key_for(span) # Resolve env dynamically, if Proc is given. env = @env.is_a?(Proc) ? @env.call : @env "service:#{span.service},env:#{env}" end