Class: Sidekiq::Instrument::ServerMiddleware

Inherits:
Object
  • Object
show all
Includes:
MetricNames
Defined in:
lib/sidekiq/instrument/middleware/server.rb

Instance Method Summary collapse

Methods included from MetricNames

#metric_name, #worker_dog_options

Instance Method Details

#call(worker, _job, _queue, &block) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/sidekiq/instrument/middleware/server.rb', line 10

def call(worker, _job, _queue, &block)
  Statter.statsd.increment(metric_name(worker, 'dequeue'))
  Statter.dogstatsd&.increment('sidekiq.dequeue', worker_dog_options(worker))

  start_time = Time.now
  yield block
  execution_time_ms = (Time.now - start_time) * 1000
  Statter.statsd.measure(metric_name(worker, 'runtime'), execution_time_ms)
  Statter.dogstatsd&.timing('sidekiq.runtime', execution_time_ms, worker_dog_options(worker))
rescue StandardError => e
  Statter.statsd.increment(metric_name(worker, 'error'))
  Statter.dogstatsd&.increment('sidekiq.error', worker_dog_options(worker))
  raise e
ensure
  WorkerMetrics.trace_workers_decrement_counter(worker.class.to_s.underscore)
  Statter.dogstatsd&.flush(sync: true)
end