Sha256: 8bd1fbaeb7436ec3f825b9e98a0e0930876641f34df1033451f435ee7566d185

Contents?: true

Size: 1.05 KB

Versions: 7

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

7 entries across 7 versions & 1 rubygems

Version Path
ddtrace-0.51.1 lib/ddtrace/analytics.rb
ddtrace-0.51.0 lib/ddtrace/analytics.rb
ddtrace-0.50.0 lib/ddtrace/analytics.rb
ddtrace-0.49.0 lib/ddtrace/analytics.rb
ddtrace-0.48.0 lib/ddtrace/analytics.rb
ddtrace-0.47.0 lib/ddtrace/analytics.rb
ddtrace-0.46.0 lib/ddtrace/analytics.rb