class ScoutApm::Instruments::Redis

Attributes

context[R]

Public Class Methods

new(context) click to toggle source
# File lib/scout_apm/instruments/redis.rb, line 6
def initialize(context)
  @context = context
  @installed = false
end

Public Instance Methods

call_with_scout_instruments(*args, &block) click to toggle source
# File lib/scout_apm/instruments/redis.rb, line 28
def call_with_scout_instruments(*args, &block)
  command = args.first.first rescue "Unknown"

  self.class.instrument("Redis", command) do
    call_without_scout_instruments(*args, &block)
  end
end
install() click to toggle source
# File lib/scout_apm/instruments/redis.rb, line 19
def install
  if defined?(::Redis) && defined?(::Redis::Client)
    @installed = true

    logger.info "Instrumenting Redis"

    ::Redis::Client.class_eval do
      include ScoutApm::Tracer

      def call_with_scout_instruments(*args, &block)
        command = args.first.first rescue "Unknown"

        self.class.instrument("Redis", command) do
          call_without_scout_instruments(*args, &block)
        end
      end

      alias_method :call_without_scout_instruments, :call
      alias_method :call, :call_with_scout_instruments
    end
  end
end
installed?() click to toggle source
# File lib/scout_apm/instruments/redis.rb, line 15
def installed?
  @installed
end
logger() click to toggle source
# File lib/scout_apm/instruments/redis.rb, line 11
def logger
  context.logger
end