Sha256: f96285d2a037544d5e6a3d1c9acfe9d5e3f36e0bfd0724eb377a6c6f826955bc

Contents?: true

Size: 1.39 KB

Versions: 18

Compression:

Stored size: 1.39 KB

Contents

# frozen_string_literal: true

require_relative '../patcher'
require_relative 'configuration/resolver'
require_relative 'ext'
require_relative 'quantize'
require_relative 'tags'
require_relative 'trace_middleware'

module Datadog
  module Tracing
    module Contrib
      module Redis
        # Instrumentation for Redis < 5
        module Instrumentation
          def self.included(base)
            base.prepend(InstanceMethods)
          end

          # InstanceMethods - implementing instrumentation
          module InstanceMethods
            def call(*args, &block)
              TraceMiddleware.call(self, args[0], service_name, command_args?) { super }
            end

            def call_pipeline(*args, &block)
              TraceMiddleware.call_pipelined(self, args[0].commands, service_name, command_args?) { super }
            end

            private

            def command_args?
              pinned = Datadog.configuration_for(self, :command_args)

              return pinned unless pinned.nil?

              datadog_configuration[:command_args]
            end

            def service_name
              Datadog.configuration_for(self, :service_name) ||
                datadog_configuration[:service_name]
            end

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

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
datadog-2.12.2 lib/datadog/tracing/contrib/redis/instrumentation.rb
datadog-2.12.1 lib/datadog/tracing/contrib/redis/instrumentation.rb
datadog-2.12.0 lib/datadog/tracing/contrib/redis/instrumentation.rb
datadog-2.11.0 lib/datadog/tracing/contrib/redis/instrumentation.rb
datadog-2.10.0 lib/datadog/tracing/contrib/redis/instrumentation.rb
datadog-2.9.0 lib/datadog/tracing/contrib/redis/instrumentation.rb
datadog-2.8.0 lib/datadog/tracing/contrib/redis/instrumentation.rb
datadog-2.7.1 lib/datadog/tracing/contrib/redis/instrumentation.rb
datadog-2.7.0 lib/datadog/tracing/contrib/redis/instrumentation.rb
datadog-2.6.0 lib/datadog/tracing/contrib/redis/instrumentation.rb
datadog-2.5.0 lib/datadog/tracing/contrib/redis/instrumentation.rb
datadog-2.4.0 lib/datadog/tracing/contrib/redis/instrumentation.rb
datadog-2.3.0 lib/datadog/tracing/contrib/redis/instrumentation.rb
datadog-2.2.0 lib/datadog/tracing/contrib/redis/instrumentation.rb
datadog-2.1.0 lib/datadog/tracing/contrib/redis/instrumentation.rb
datadog-2.0.0 lib/datadog/tracing/contrib/redis/instrumentation.rb
datadog-2.0.0.beta2 lib/datadog/tracing/contrib/redis/instrumentation.rb
datadog-2.0.0.beta1 lib/datadog/tracing/contrib/redis/instrumentation.rb