Module: Yabeda::Sidekiq

Defined in:
lib/yabeda/sidekiq.rb,
lib/yabeda/sidekiq/version.rb,
lib/yabeda/sidekiq/client_middleware.rb,
lib/yabeda/sidekiq/server_middleware.rb

Defined Under Namespace

Classes: ClientMiddleware, ServerMiddleware

Constant Summary collapse

LONG_RUNNING_JOB_RUNTIME_BUCKETS =
[
  0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1, 2.5, 5, 10, # standard (from Prometheus)
  30, 60, 120, 300, 1800, 3600, 21_600 # Sidekiq tasks may be very long-running
].freeze
VERSION =
"0.6.0"

Class Method Summary collapse

Class Method Details

.custom_tags(worker, job) ⇒ Object



101
102
103
104
105
# File 'lib/yabeda/sidekiq.rb', line 101

def custom_tags(worker, job)
  return {} unless worker.respond_to?(:yabeda_tags)

  worker.method(:yabeda_tags).arity.zero? ? worker.yabeda_tags : worker.yabeda_tags(*job["args"])
end

.labelize(worker, job, queue) ⇒ Object



90
91
92
# File 'lib/yabeda/sidekiq.rb', line 90

def labelize(worker, job, queue)
  { queue: queue, worker: worker_class(worker, job), **custom_tags(worker, job).to_h }
end

.worker_class(worker, job) ⇒ Object



94
95
96
97
98
99
# File 'lib/yabeda/sidekiq.rb', line 94

def worker_class(worker, job)
  if defined?(ActiveJob::QueueAdapters::SidekiqAdapter::JobWrapper)
    return job["wrapped"] if worker.is_a?(ActiveJob::QueueAdapters::SidekiqAdapter::JobWrapper)
  end
  (worker.is_a?(String) ? worker : worker.class).to_s
end