Sha256: 0e6e35041f6ee9af437a45e37ef18e8351219e6776cc3b923d01e82e26a359a4

Contents?: true

Size: 1.68 KB

Versions: 7

Compression:

Stored size: 1.68 KB

Contents

# typed: true

require_relative '../../metadata/ext'
require_relative '../analytics'
require_relative 'ext'

module Datadog
  module Tracing
    module Contrib
      module Redis
        # Tags handles generic common tags assignment.
        module Tags
          class << self
            def set_common_tags(client, span)
              span.set_tag(Tracing::Metadata::Ext::TAG_COMPONENT, Ext::TAG_COMPONENT)
              span.set_tag(Tracing::Metadata::Ext::TAG_OPERATION, Ext::TAG_OPERATION_COMMAND)

              # Tag as an external peer service
              span.set_tag(Tracing::Metadata::Ext::TAG_PEER_SERVICE, span.service)
              span.set_tag(Tracing::Metadata::Ext::TAG_PEER_HOSTNAME, client.host)

              # Set analytics sample rate
              Contrib::Analytics.set_sample_rate(span, analytics_sample_rate) if analytics_enabled?

              span.set_tag Tracing::Metadata::Ext::NET::TAG_TARGET_HOST, client.host
              span.set_tag Tracing::Metadata::Ext::NET::TAG_TARGET_PORT, client.port
              span.set_tag Ext::TAG_DB, client.db
              span.set_tag Ext::TAG_RAW_COMMAND, span.resource if show_command_args?
            end

            private

            def datadog_configuration
              Datadog.configuration.tracing[:redis]
            end

            def analytics_enabled?
              Contrib::Analytics.enabled?(datadog_configuration[:analytics_enabled])
            end

            def analytics_sample_rate
              datadog_configuration[:analytics_sample_rate]
            end

            def show_command_args?
              datadog_configuration[:command_args]
            end
          end
        end
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
ddtrace-1.5.2 lib/datadog/tracing/contrib/redis/tags.rb
ddtrace-1.5.1 lib/datadog/tracing/contrib/redis/tags.rb
ddtrace-1.5.0 lib/datadog/tracing/contrib/redis/tags.rb
ddtrace-1.4.2 lib/datadog/tracing/contrib/redis/tags.rb
ddtrace-1.4.1 lib/datadog/tracing/contrib/redis/tags.rb
ddtrace-1.4.0 lib/datadog/tracing/contrib/redis/tags.rb
ddtrace-1.3.0 lib/datadog/tracing/contrib/redis/tags.rb