Module: QueueKit::Instrumentable

Included in:
Clients::RoundRobinShuffler, Worker
Defined in:
lib/queue_kit/instrumentable.rb

Defined Under Namespace

Classes: PutsInstrumenter

Instance Method Summary collapse

Instance Method Details

#debugObject



24
25
# File 'lib/queue_kit/instrumentable.rb', line 24

def debug
end

#default_instrument_optionsObject



33
34
35
# File 'lib/queue_kit/instrumentable.rb', line 33

def default_instrument_options
  {}
end

#default_instrumenterObject



37
38
39
# File 'lib/queue_kit/instrumentable.rb', line 37

def default_instrumenter
  PutsInstrumenter.new
end

#enable_debug_modeObject



27
28
29
30
31
# File 'lib/queue_kit/instrumentable.rb', line 27

def enable_debug_mode
  class << self
    alias debug force_debug
  end
end

#force_debugObject



20
21
22
# File 'lib/queue_kit/instrumentable.rb', line 20

def force_debug
  instrument(*yield)
end

#instrument(name, payload = nil) ⇒ Object



14
15
16
17
18
# File 'lib/queue_kit/instrumentable.rb', line 14

def instrument(name, payload = nil)
  options = default_instrument_options
  options.update(payload) if payload
  instrumenter.instrument("queuekit.#{name}", options)
end

#instrumenterObject



10
11
12
# File 'lib/queue_kit/instrumentable.rb', line 10

def instrumenter
  @instrumenter ||= default_instrumenter
end

#instrumenter_from(options) ⇒ Object



3
4
5
6
7
8
# File 'lib/queue_kit/instrumentable.rb', line 3

def instrumenter_from(options)
  @instrumenter = options[:instrumenter]
  if options.fetch(:debug) { false }
    enable_debug_mode
  end
end