Module: Sidekiq::QueueMetrics
- Extended by:
- Eldritch::DSL
- Defined in:
- lib/sidekiq_queue_metrics/version.rb,
lib/sidekiq_queue_metrics/configuration.rb,
lib/sidekiq_queue_metrics/queue_metrics.rb,
lib/sidekiq_queue_metrics/web_extension.rb,
lib/sidekiq_queue_metrics/monitor/monitor.rb,
lib/sidekiq_queue_metrics/upgrade_manager.rb,
lib/sidekiq_queue_metrics/job_death_middleware.rb,
lib/sidekiq_queue_metrics/monitor/job_death_monitor.rb,
lib/sidekiq_queue_metrics/monitor/job_success_monitor.rb,
lib/sidekiq_queue_metrics/storage.rb,
lib/sidekiq_queue_metrics/helpers.rb
Defined Under Namespace
Modules: Helpers, WebExtension
Classes: JobDeathMiddleware, JobDeathMonitor, JobSuccessMonitor, Monitor, Storage, UpgradeManager
Constant Summary
collapse
- VERSION =
'3.0.0'
Class Method Summary
collapse
Class Method Details
.failed_jobs(queue) ⇒ Object
51
52
53
|
# File 'lib/sidekiq_queue_metrics/queue_metrics.rb', line 51
def failed_jobs(queue)
Storage.failed_jobs(queue).reverse
end
|
.fetch ⇒ Object
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
# 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) ⇒ Object
39
40
41
|
# File 'lib/sidekiq_queue_metrics/queue_metrics.rb', line 39
def fetch_enqueued_jobs(queue)
Sidekiq::Queue.new(queue).size
end
|
.fetch_retry_stats ⇒ Object
43
44
45
|
# 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 ⇒ Object
47
48
49
|
# 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) ⇒ Object
32
33
34
35
36
37
|
# 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
|
.max_recently_failed_jobs ⇒ Object
30
31
32
|
# 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) ⇒ Object
26
27
28
|
# File 'lib/sidekiq_queue_metrics/configuration.rb', line 26
def self.max_recently_failed_jobs=(count)
@max_recently_failed_jobs = count
end
|
.storage_location ⇒ Object
34
35
36
|
# File 'lib/sidekiq_queue_metrics/configuration.rb', line 34
def self.storage_location
@storage_location
end
|
.storage_location=(key) ⇒ Object
22
23
24
|
# File 'lib/sidekiq_queue_metrics/configuration.rb', line 22
def self.storage_location=(key)
@storage_location = key
end
|
.support_death_handlers? ⇒ Boolean
2
3
4
|
# File 'lib/sidekiq_queue_metrics/configuration.rb', line 2
def self.support_death_handlers?
Sidekiq::VERSION >= '5.1'
end
|