Sha256: 4bcaf406163a1d8da7eb1629a46631fc43e4cea9bfadf50fbbacab588cc082f8

Contents?: true

Size: 1.42 KB

Versions: 24

Compression:

Stored size: 1.42 KB

Contents

module Datadog
  module Tracing
    module Sampling
      # Interface for client-side trace sampling.
      # @abstract
      # @public_api
      class Sampler
        # Returns `true` if the provided trace should be kept.
        # Otherwise, `false`.
        #
        # This method *must not* modify the `trace`.
        #
        # @param [Datadog::Tracing::TraceOperation] trace
        # @return [Boolean] should this trace be kept?
        def sample?(trace)
          raise NotImplementedError, 'Samplers must implement the #sample? method'
        end

        # Returns `true` if the provided trace should be kept.
        # Otherwise, `false`.
        #
        # This method *may* modify the `trace`, in case changes are necessary based on the
        # sampling decision.
        #
        # @param [Datadog::Tracing::TraceOperation] trace
        # @return [Boolean] should this trace be kept?
        def sample!(trace)
          raise NotImplementedError, 'Samplers must implement the #sample! method'
        end

        # The sampling rate, if this sampler has such concept.
        # Otherwise, `nil`.
        #
        # @param [Datadog::Tracing::TraceOperation] trace
        # @return [Float,nil] sampling ratio between 0.0 and 1.0 (inclusive), or `nil` if not applicable
        def sample_rate(trace)
          raise NotImplementedError, 'Samplers must implement the #sample_rate method'
        end
      end
    end
  end
end

Version data entries

24 entries across 24 versions & 1 rubygems

Version Path
ddtrace-1.23.3 lib/datadog/tracing/sampling/sampler.rb
ddtrace-1.23.2 lib/datadog/tracing/sampling/sampler.rb
ddtrace-1.23.1 lib/datadog/tracing/sampling/sampler.rb
ddtrace-1.22.0 lib/datadog/tracing/sampling/sampler.rb
ddtrace-1.21.1 lib/datadog/tracing/sampling/sampler.rb
ddtrace-1.21.0 lib/datadog/tracing/sampling/sampler.rb
ddtrace-1.20.0 lib/datadog/tracing/sampling/sampler.rb
ddtrace-1.19.0 lib/datadog/tracing/sampling/sampler.rb
ddtrace-1.18.0 lib/datadog/tracing/sampling/sampler.rb
ddtrace-1.17.0 lib/datadog/tracing/sampling/sampler.rb
ddtrace-1.16.2 lib/datadog/tracing/sampling/sampler.rb
ddtrace-1.16.1 lib/datadog/tracing/sampling/sampler.rb
ddtrace-1.16.0 lib/datadog/tracing/sampling/sampler.rb
ddtrace-1.15.0 lib/datadog/tracing/sampling/sampler.rb
ddtrace-1.14.0 lib/datadog/tracing/sampling/sampler.rb
ddtrace-1.13.1 lib/datadog/tracing/sampling/sampler.rb
ddtrace-1.13.0 lib/datadog/tracing/sampling/sampler.rb
ddtrace-1.12.1 lib/datadog/tracing/sampling/sampler.rb
ddtrace-1.12.0 lib/datadog/tracing/sampling/sampler.rb
ddtrace-1.11.1 lib/datadog/tracing/sampling/sampler.rb