module Sidekiq::QueueMetrics
Constants
- VERSION
Public Class Methods
failed_jobs(queue)
click to toggle source
# File lib/sidekiq_queue_metrics/queue_metrics.rb, line 51 def failed_jobs(queue) Storage.failed_jobs(queue).reverse end
fetch()
click to toggle source
# File lib/sidekiq_queue_metrics/queue_metrics.rb, line 7 def fetch queues = [] enqueued_jobs = scheduled_jobs = retry_stats = {} together do async do queues = Sidekiq::Queue.all.map(&:name).map(&:to_s) queues.each {|queue| enqueued_jobs[queue] = fetch_enqueued_jobs(queue)} end async {retry_stats = fetch_retry_stats} async {scheduled_jobs = fetch_scheduled_stats} end queues.reduce({}) do |stats, queue| stats[queue] = { 'enqueued' => val_or_default(enqueued_jobs[queue]), 'in_retry' => val_or_default(retry_stats[queue]), 'scheduled' => val_or_default(scheduled_jobs[queue]) }.merge(fetch_success_and_failed_stats(queue)) stats end end
fetch_enqueued_jobs(queue)
click to toggle source
# File lib/sidekiq_queue_metrics/queue_metrics.rb, line 39 def fetch_enqueued_jobs(queue) Sidekiq::Queue.new(queue).size end
fetch_retry_stats()
click to toggle source
# File lib/sidekiq_queue_metrics/queue_metrics.rb, line 43 def fetch_retry_stats Sidekiq::RetrySet.new.group_by(&:queue).map {|queue, jobs| [queue, jobs.count]}.to_h end
fetch_scheduled_stats()
click to toggle source
# File lib/sidekiq_queue_metrics/queue_metrics.rb, line 47 def fetch_scheduled_stats Sidekiq::ScheduledSet.new.group_by(&:queue).map {|queue, jobs| [queue, jobs.count]}.to_h end
fetch_success_and_failed_stats(queue)
click to toggle source
# File lib/sidekiq_queue_metrics/queue_metrics.rb, line 32 def fetch_success_and_failed_stats(queue) default_metric_values = { 'processed' => 0, 'failed' => 0 } default_metric_values.merge( Sidekiq::QueueMetrics::Storage.get_stats(queue) ) end
init(config)
click to toggle source
# File lib/sidekiq_queue_metrics/configuration.rb, line 6 def self.init(config) config.server_middleware do |chain| chain.add Sidekiq::QueueMetrics::JobSuccessMonitor end config.on(:startup) { UpgradeManager.upgrade_if_needed } if support_death_handlers? config.death_handlers << Sidekiq::QueueMetrics::JobDeathMonitor.proc else config.server_middleware do |chain| chain.add Sidekiq::QueueMetrics::JobDeathMiddleware end end end
max_recently_failed_jobs()
click to toggle source
# File lib/sidekiq_queue_metrics/configuration.rb, line 30 def self.max_recently_failed_jobs @max_recently_failed_jobs || 50 end
max_recently_failed_jobs=(count)
click to toggle source
# File lib/sidekiq_queue_metrics/configuration.rb, line 26 def self.max_recently_failed_jobs=(count) @max_recently_failed_jobs = count end
storage_location()
click to toggle source
# File lib/sidekiq_queue_metrics/configuration.rb, line 34 def self.storage_location @storage_location end
storage_location=(key)
click to toggle source
# File lib/sidekiq_queue_metrics/configuration.rb, line 22 def self.storage_location=(key) @storage_location = key end
support_death_handlers?()
click to toggle source
# File lib/sidekiq_queue_metrics/configuration.rb, line 2 def self.support_death_handlers? Sidekiq::VERSION >= '5.1' end
Private Class Methods
val_or_default(val, default = 0)
click to toggle source
# File lib/sidekiq_queue_metrics/queue_metrics.rb, line 55 def val_or_default(val, default = 0) val || default end