Sha256: 392860af1d1963dabac9983522c9e940ebea26eaaae5e3973b0ce8d67b6af552

Contents?: true

Size: 1.05 KB

Versions: 17

Compression:

Stored size: 1.05 KB

Contents

require 'ddtrace/ext/analytics'

module Datadog
  # Defines analytics behavior
  module Analytics
    class << self
      def set_sample_rate(span, sample_rate)
        return if span.nil? || !sample_rate.is_a?(Numeric)
        span.set_metric(Datadog::Ext::Analytics::TAG_SAMPLE_RATE, sample_rate)
      end

      def set_measured(span, value = true)
        return if span.nil?
        # rubocop:disable Style/MultipleComparison
        value = value == true || value == 1 ? 1 : 0
        span.set_metric(Datadog::Ext::Analytics::TAG_MEASURED, value)
      end
    end

    # Extension for Datadog::Span
    module Span
      def set_tag(key, value)
        case key
        when Ext::Analytics::TAG_ENABLED
          # If true, set rate to 1.0, otherwise set 0.0.
          value = value == true ? Ext::Analytics::DEFAULT_SAMPLE_RATE : 0.0
          Analytics.set_sample_rate(self, value)
        when Ext::Analytics::TAG_SAMPLE_RATE
          Analytics.set_sample_rate(self, value)
        else
          super if defined?(super)
        end
      end
    end
  end
end

Version data entries

17 entries across 17 versions & 2 rubygems

Version Path
ddtrace-0.45.0 lib/ddtrace/analytics.rb
ddtrace-0.44.0 lib/ddtrace/analytics.rb
ddtrace-0.43.0 lib/ddtrace/analytics.rb
ddtrace-0.42.0 lib/ddtrace/analytics.rb
ddtrace-0.41.0 lib/ddtrace/analytics.rb
ls-trace-0.2.0 lib/ddtrace/analytics.rb
ddtrace-0.40.0 lib/ddtrace/analytics.rb
ddtrace-0.39.0 lib/ddtrace/analytics.rb
ddtrace-0.38.0 lib/ddtrace/analytics.rb
ddtrace-0.37.0 lib/ddtrace/analytics.rb
ddtrace-0.36.0 lib/ddtrace/analytics.rb
ddtrace-0.35.2 lib/ddtrace/analytics.rb
ddtrace-0.35.1 lib/ddtrace/analytics.rb
ddtrace-0.35.0 lib/ddtrace/analytics.rb
ddtrace-0.34.2 lib/ddtrace/analytics.rb
ddtrace-0.34.1 lib/ddtrace/analytics.rb
ddtrace-0.34.0 lib/ddtrace/analytics.rb