Class: Gitlab::SidekiqMiddleware::ClientMetrics

Inherits:
Object
  • Object
show all
Includes:
MetricsHelper
Defined in:
lib/gitlab/sidekiq_middleware/client_metrics.rb

Constant Summary collapse

ENQUEUED =
:sidekiq_enqueued_jobs_total

Constants included from MetricsHelper

MetricsHelper::FALSE_LABEL, MetricsHelper::TRUE_LABEL

Instance Method Summary collapse

Constructor Details

#initializeClientMetrics

Returns a new instance of ClientMetrics.



10
11
12
# File 'lib/gitlab/sidekiq_middleware/client_metrics.rb', line 10

def initialize
  @metrics = init_metrics
end

Instance Method Details

#call(worker_class, job, queue, _redis_pool) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/gitlab/sidekiq_middleware/client_metrics.rb', line 14

def call(worker_class, job, queue, _redis_pool)
  # worker_class can either be the string or class of the worker being enqueued.
  worker_class = worker_class.to_s.safe_constantize

  labels = create_labels(worker_class, queue, job)
  if job.key?('at')
    labels[:scheduling] = 'delayed'
    job[:scheduled_at] = job['at']
  else
    labels[:scheduling] = 'immediate'
  end

  @metrics.fetch(ENQUEUED).increment(labels, 1)

  yield
end