Module: DashingContrib::Jobs::Kue
- Extended by:
- RunnableJob
- Defined in:
- lib/dashing-contrib/jobs/kue.rb
Constant Summary
Constants included
from RunnableJob
RunnableJob::CRITICAL, RunnableJob::OK, RunnableJob::WARNING
Class Method Summary
collapse
metrics, run, validate_state
Class Method Details
.metrics(options) ⇒ Object
7
8
9
10
11
12
13
14
15
16
17
18
|
# File 'lib/dashing-contrib/jobs/kue.rb', line 7
def self.metrics(options)
client = DashingContrib::Kue::Client.new({ endpoint: options[:endpoint] })
stats = client.stats
metrics = [
{ label: 'Processed', value: stats[:complete_count] },
{ label: 'Processing', value: stats[:active_count] },
{ label: 'Failed', value: stats[:failed_count] },
{ label: 'Queued', value: stats[:inactive_count] },
{ label: 'Delayed', value: stats[:delayed_count] }
]
{ metrics: metrics }
end
|
.validate_state(metrics, options = {}) ⇒ Object
20
21
22
23
24
25
26
27
28
29
30
|
# File 'lib/dashing-contrib/jobs/kue.rb', line 20
def self.validate_state(metrics, options = {})
default = { failed_warning_at: 20, failed_critical_at: 100 }
user_options = default.merge(options)
failed_stats = metrics[:metrics].select { |v| v[:label] == 'Failed' }.first
value = failed_stats[:value].to_i
return DashingContrib::RunnableJob::OK if value < user_options[:failed_warning_at]
return DashingContrib::RunnableJob::WARNING if value >= user_options[:failed_warning_at] && value < user_options[:failed_critical_at]
DashingContrib::RunnableJob::CRITICAL
end
|