class G5PromRails::SidekiqTimingMiddleware

Public Class Methods

build_metric(reg) click to toggle source
# File lib/g5_prom_rails/sidekiq_timing_middleware.rb, line 2
def self.build_metric(reg)
  reg.histogram(
    :sidekiq_job_seconds,
    "job running time in seconds",
    {},
    [
      10,
      30,
      90,
      3.minutes.to_i,
      7.minutes.to_i,
      12.minutes.to_i,
      20.minutes.to_i,
      35.minutes.to_i,
      60.minutes.to_i,
      80.minutes.to_i,
      2.hours.to_i,
      3.hours.to_i,
      5.hours.to_i,
      10.hours.to_i,
    ]
  )
end
new(options = nil) click to toggle source
# File lib/g5_prom_rails/sidekiq_timing_middleware.rb, line 26
def initialize(options = nil)
  @metric = options[:metric]
end

Public Instance Methods

call(worker, msg, queue) { || ... } click to toggle source
# File lib/g5_prom_rails/sidekiq_timing_middleware.rb, line 30
def call(worker, msg, queue)
  @metric.observe(
    { job_class: worker.class.name },
    Benchmark.realtime { yield }
  )
end