Class: Instana::Activators::Dalli

Inherits:
Instana::Activator show all
Defined in:
lib/instana/activators/dalli.rb

Instance Method Summary collapse

Methods inherited from Instana::Activator

#call, call, inherited, start

Instance Method Details

#can_instrument?Boolean

Returns:

  • (Boolean)


7
8
9
10
11
# File 'lib/instana/activators/dalli.rb', line 7

def can_instrument?
  defined?(::Dalli::Protocol::Base || defined?(::Dalli::Server)) &&
    defined?(::Dalli::Client) &&
    Instana.config[:dalli][:enabled]
end

#instrumentObject



13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/instana/activators/dalli.rb', line 13

def instrument
  require 'instana/instrumentation/dalli'
  dalli_version = Gem::Specification.find_by_name('dalli').version
  ::Dalli::Client.prepend ::Instana::Instrumentation::Dalli
  if dalli_version < Gem::Version.new('3.0')
    ::Dalli::Server.prepend ::Instana::Instrumentation::DalliRequestHandler
  elsif dalli_version >= Gem::Version.new('3.0') && dalli_version < Gem::Version.new('3.1.3')
    ::Dalli::Protocol::Binary.prepend ::Instana::Instrumentation::DalliRequestHandler
  else
    ::Dalli::Protocol::Base.prepend ::Instana::Instrumentation::DalliRequestHandler
  end

  true
end