Class: Gitlab::SidekiqMiddleware::ClientMetrics
- Inherits:
-
Object
- Object
- Gitlab::SidekiqMiddleware::ClientMetrics
- 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
- #call(worker_class, job, queue, _redis_pool) ⇒ Object
-
#initialize ⇒ ClientMetrics
constructor
A new instance of ClientMetrics.
Constructor Details
#initialize ⇒ ClientMetrics
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 |