Module: Datadog::Tracing::Contrib::Redis::Patcher

Includes:
Patcher
Defined in:
lib/datadog/tracing/contrib/redis/patcher.rb

Overview

Patcher enables patching of ‘redis’ module.

Defined Under Namespace

Modules: ClientPatch, InstancePatch

Class Method Summary collapse

Methods included from Patcher

included

Class Method Details

.default_tagsObject



50
51
52
53
54
55
# File 'lib/datadog/tracing/contrib/redis/patcher.rb', line 50

def default_tags
  [].tap do |tags|
    tags << "target_redis_version:#{Integration.redis_version}"               if Integration.redis_version
    tags << "target_redis_client_version:#{Integration.redis_client_version}" if Integration.redis_client_version
  end
end

.patchObject



57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# File 'lib/datadog/tracing/contrib/redis/patcher.rb', line 57

def patch
  # Redis 5+ extracts RedisClient to its own gem and provide instrumentation interface
  if Integration.redis_client_compatible?
    require_relative 'trace_middleware'

    ::RedisClient.register(TraceMiddleware)
  end

  if Integration.redis_compatible? && Integration.redis_version < Gem::Version.new('5.0.0')
    require_relative 'instrumentation'

    ::Redis.include(InstancePatch)
    ::Redis::Client.include(ClientPatch)
    ::Redis::Client.include(Instrumentation)
  end
end