Module: QueueClassicPlus::UpdateMetrics
- Defined in:
- lib/queue_classic_plus/update_metrics.rb
Class Method Summary collapse
- .jobs_queued ⇒ Object
- .jobs_scheduled ⇒ Object
- .late_count ⇒ Object
- .metrics ⇒ Object
- .update ⇒ Object
Class Method Details
.jobs_queued ⇒ Object
29 30 31 32 33 |
# File 'lib/queue_classic_plus/update_metrics.rb', line 29 def self.jobs_queued sql_group_count "SELECT q_name AS group, COUNT(1) FROM queue_classic_jobs WHERE scheduled_at <= NOW() GROUP BY q_name" end |
.jobs_scheduled ⇒ Object
35 36 37 38 39 |
# File 'lib/queue_classic_plus/update_metrics.rb', line 35 def self.jobs_scheduled sql_group_count "SELECT q_name AS group, COUNT(1) FROM queue_classic_jobs WHERE scheduled_at > NOW() GROUP BY q_name" end |
.late_count ⇒ Object
41 42 43 44 45 46 |
# File 'lib/queue_classic_plus/update_metrics.rb', line 41 def self.late_count nb_late = execute("SELECT COUNT(1) FROM queue_classic_jobs WHERE scheduled_at < NOW() AND #{not_failed}") nb_late ? Integer(nb_late['count']) : 0 end |
.metrics ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/queue_classic_plus/update_metrics.rb', line 17 def self.metrics { jobs_queued: jobs_queued, jobs_scheduled: jobs_scheduled, max_created_at: max_age("created_at", "created_at = scheduled_at"), max_locked_at: max_age("locked_at", "locked_at IS NOT NULL"), "max_created_at.unlocked" => max_age("locked_at", "locked_at IS NULL"), "jobs_delayed.lag" => max_age("scheduled_at"), "jobs_delayed.late_count" => late_count, } end |
.update ⇒ Object
3 4 5 6 7 8 9 10 11 12 13 14 15 |
# File 'lib/queue_classic_plus/update_metrics.rb', line 3 def self.update metrics.each do |name, values| if values.respond_to?(:each) values.each do |hash| hash.to_a.each do |(source, count)| Metrics.measure("qc.#{name}", count, source: source) end end else Metrics.measure("qc.#{name}", values) end end end |