Class: Evil::Metrics::Sidekiq::ServerMiddleware

Inherits:
Object
  • Object
show all
Defined in:
lib/evil/metrics/sidekiq/server_middleware.rb

Overview

Sidekiq worker middleware

Instance Method Summary collapse

Instance Method Details

#call(worker, job, queue) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 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