Class: Circuitry::Middleware::Seismograph

Inherits:
Object
  • Object
show all
Defined in:
lib/circuitry/middleware/seismograph.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Seismograph

Returns a new instance of Seismograph.



8
9
10
11
# File 'lib/circuitry/middleware/seismograph.rb', line 8

def initialize(options = {})
  self.namespace = options.fetch(:namespace, 'circuitry')
  self.stat = options.fetch(:stat)
end

Instance Attribute Details

#namespaceObject

Returns the value of attribute namespace.



6
7
8
# File 'lib/circuitry/middleware/seismograph.rb', line 6

def namespace
  @namespace
end

#statObject

Returns the value of attribute stat.



6
7
8
# File 'lib/circuitry/middleware/seismograph.rb', line 6

def stat
  @stat
end

Instance Method Details

#call(topic, _message, &block) ⇒ Object



13
14
15
16
17
18
19
# File 'lib/circuitry/middleware/seismograph.rb', line 13

def call(topic, _message, &block)
  tags = ["topic:#{topic}"]
  sensor.benchmark(stat, tags: tags, &block)
rescue StandardError => err
  log.error('Circuitry message processing failed', description: err.message, tags: tags)
  raise err
end