Class: PrometheusExporter::Instrumentation::Hutch

Inherits:
Object
  • Object
show all
Defined in:
lib/prometheus_exporter/instrumentation/hutch.rb

Instance Method Summary collapse

Constructor Details

#initialize(klass) ⇒ Hutch

Returns a new instance of Hutch.


5
6
7
8
# File 'lib/prometheus_exporter/instrumentation/hutch.rb', line 5

def initialize(klass)
  @klass = klass
  @client = PrometheusExporter::Client.default
end

Instance Method Details

#handle(message) ⇒ Object


10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/prometheus_exporter/instrumentation/hutch.rb', line 10

def handle(message)
  success = false
  start = ::Process.clock_gettime(::Process::CLOCK_MONOTONIC)
  result = @klass.process(message)
  success = true
  result
ensure
  duration = ::Process.clock_gettime(::Process::CLOCK_MONOTONIC) - start
  @client.send_json(
    type: "hutch",
    name: @klass.class.to_s,
    success: success,
    duration: duration
  )
end