class PrometheusExporter::Instrumentation::Hutch

Public Class Methods

new(klass) click to toggle source
# File lib/prometheus_exporter/instrumentation/hutch.rb, line 5
def initialize(klass)
  @klass = klass
  @client = PrometheusExporter::Client.default
end

Public Instance Methods

handle(message) click to toggle source
# 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