class Evil::Metrics::Sidekiq::ServerMiddleware

Sidekiq worker middleware

Public Instance Methods

call(worker, job, queue) { || ... } click to toggle source
# File lib/evil/metrics/sidekiq/server_middleware.rb, line 8
def call(worker, job, queue)
  labels = Evil::Metrics::Sidekiq.labelize(worker, job, queue)
  start = Time.now
  begin
    yield
    Evil::Metrics.sidekiq_jobs_success_total.increment(labels)
  rescue Exception # rubocop: disable Lint/RescueException
    Evil::Metrics.sidekiq_jobs_failed_total.increment(labels)
    raise
  ensure
    Evil::Metrics.sidekiq_job_runtime.measure(labels, elapsed(start))
    Evil::Metrics.sidekiq_jobs_executed_total.increment(labels)
  end
end

Private Instance Methods

elapsed(start) click to toggle source
# File lib/evil/metrics/sidekiq/server_middleware.rb, line 25
def elapsed(start)
  (Time.now - start).round(3)
end