Class: OneApm::Collector::Samplers::DelayedJobSampler
Constant Summary
collapse
- OA_FAILED_QUERY =
'failed_at is not NULL'.freeze
- OA_LOCKED_QUERY =
'locked_by is not NULL'.freeze
Instance Attribute Summary
#id
Class Method Summary
collapse
Instance Method Summary
collapse
enabled?, inherited, name, named, sampler_classes
Constructor Details
Returns a new instance of DelayedJobSampler.
Class Method Details
.supported_backend? ⇒ Boolean
12
13
14
|
# File 'lib/one_apm/collector/samplers/delayed_job_sampler.rb', line 12
def self.supported_backend?
::Delayed::Worker.backend.to_s == "Delayed::Backend::ActiveRecord::Job"
end
|
49
50
51
|
# File 'lib/one_apm/collector/samplers/delayed_job_sampler.rb', line 49
def self.supported_on_this_platform?
defined?(::Delayed::Job)
end
|
Instance Method Details
#count(query) ⇒ Object
41
42
43
44
45
46
47
|
# File 'lib/one_apm/collector/samplers/delayed_job_sampler.rb', line 41
def count(query)
if ::ActiveRecord::VERSION::MAJOR.to_i < 4
::Delayed::Job.count(query)
else
::Delayed::Job.where(query).count
end
end
|
#failed_jobs ⇒ Object
33
34
35
|
# File 'lib/one_apm/collector/samplers/delayed_job_sampler.rb', line 33
def failed_jobs
count(OA_FAILED_QUERY)
end
|
#locked_jobs ⇒ Object
37
38
39
|
# File 'lib/one_apm/collector/samplers/delayed_job_sampler.rb', line 37
def locked_jobs
count(OA_LOCKED_QUERY)
end
|
#poll ⇒ Object
53
54
55
56
57
|
# File 'lib/one_apm/collector/samplers/delayed_job_sampler.rb', line 53
def poll
record_failed_jobs(failed_jobs)
record_locked_jobs(locked_jobs)
record_queue_length_metrics
end
|
#record_failed_jobs(value) ⇒ Object
22
23
24
|
# File 'lib/one_apm/collector/samplers/delayed_job_sampler.rb', line 22
def record_failed_jobs(value)
OneApm::Manager.record_metric("Workers/DelayedJob/failed_jobs", value)
end
|
#record_locked_jobs(value) ⇒ Object
26
27
28
|
# File 'lib/one_apm/collector/samplers/delayed_job_sampler.rb', line 26
def record_locked_jobs(value)
OneApm::Manager.record_metric("Workers/DelayedJob/locked_jobs", value)
end
|