Module: Instana::Instrumentation::ResqueClient

Defined in:
lib/instana/instrumentation/resque.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(klass) ⇒ Object



6
7
8
9
10
11
# File 'lib/instana/instrumentation/resque.rb', line 6

def self.included(klass)
  klass.send :extend, ::Resque
  ::Instana::Util.method_alias(klass, :enqueue)
  ::Instana::Util.method_alias(klass, :enqueue_to)
  ::Instana::Util.method_alias(klass, :dequeue)
end

Instance Method Details

#collect_kvs(op, klass, args) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/instana/instrumentation/resque.rb', line 13

def collect_kvs(op, klass, args)
  kvs = {}

  begin
    kvs[:job] = klass.to_s
    kvs[:queue] = klass.instance_variable_get(:@queue)
  rescue => e
    Instana.logger.debug { "#{__method__}:#{File.basename(__FILE__)}:#{__LINE__}: #{e.message}" }
  end

  { :'resque-client' => kvs }
end

#dequeue_with_instana(klass, *args) ⇒ Object



51
52
53
54
55
56
57
58
59
60
61
# File 'lib/instana/instrumentation/resque.rb', line 51

def dequeue_with_instana(klass, *args)
  if Instana.tracer.tracing?
    kvs = collect_kvs(:dequeue, klass, args)

    Instana.tracer.trace(:'resque-client', kvs) do
      dequeue_without_instana(klass, *args)
    end
  else
    dequeue_without_instana(klass, *args)
  end
end

#enqueue_to_with_instana(queue, klass, *args) ⇒ Object



38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/instana/instrumentation/resque.rb', line 38

def enqueue_to_with_instana(queue, klass, *args)
  if Instana.tracer.tracing? && !Instana.tracer.tracing_span?(:'resque-client')
    kvs = collect_kvs(:enqueue_to, klass, args)
    kvs[:Queue] = queue.to_s if queue

    Instana.tracer.trace(:'resque-client', kvs) do
      enqueue_to_without_instana(queue, klass, *args)
    end
  else
    enqueue_to_without_instana(queue, klass, *args)
  end
end

#enqueue_with_instana(klass, *args) ⇒ Object



26
27
28
29
30
31
32
33
34
35
36
# File 'lib/instana/instrumentation/resque.rb', line 26

def enqueue_with_instana(klass, *args)
  if Instana.tracer.tracing?
    kvs = collect_kvs(:enqueue, klass, args)

    Instana.tracer.trace(:'resque-client', kvs) do
      enqueue_without_instana(klass, *args)
    end
  else
    enqueue_without_instana(klass, *args)
  end
end