Sha256: 9344e65ada26f2d5a5a41850435634e6b0b888a5b51b8aa4ad7940ffb0400a35
Contents?: true
Size: 1.98 KB
Versions: 2
Compression:
Stored size: 1.98 KB
Contents
# typed: false require_relative '../patcher' require_relative 'ext' require_relative 'configuration/resolver' module Datadog module Tracing module Contrib module Redis # Patcher enables patching of 'redis' module. module Patcher include Contrib::Patcher # Patch for redis instance module InstancePatch def self.included(base) base.prepend(InstanceMethods) end # Instance method patch for redis instance module InstanceMethods # `options` could be frozen def initialize(options = {}) super(options.merge(redis_instance: self)) end end end # Patch for redis client module ClientPatch def self.included(base) base.prepend(InstanceMethods) end # Instance method patch for redis client module InstanceMethods def initialize(options = {}) @redis_instance = options.delete(:redis_instance) super(options) end private attr_reader :redis_instance end end module_function def target_version Integration.version end # patch applies our patch if needed def patch # do not require these by default, but only when actually patching require 'redis' require_relative 'tags' require_relative 'quantize' require_relative 'instrumentation' # InstancePatch and ClientPatch allows the client object to access pin on redis instance ::Redis.include(InstancePatch) ::Redis::Client.include(ClientPatch) # TODO: To support redis-rb 5.x, Redis::Client -> RedisClient ::Redis::Client.include(Instrumentation) end end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
ddtrace-1.7.0 | lib/datadog/tracing/contrib/redis/patcher.rb |
ddtrace-1.6.1 | lib/datadog/tracing/contrib/redis/patcher.rb |