class Roqua::Probes::MonitoringProbe

Public Instance Methods

incomplete_jobs() click to toggle source
# File lib/roqua/probes/monitoring_probe.rb, line 8
def incomplete_jobs
  Roqua::Scheduling::CronJob.where('completed_at IS NULL OR completed_at < next_run_at')
end
longest_delay_in_minutes() click to toggle source
# File lib/roqua/probes/monitoring_probe.rb, line 12
def longest_delay_in_minutes
  delays = incomplete_jobs.pluck(:next_run_at).map do |next_run_at|
    Time.now - next_run_at
  end

  longest_delay_in_seconds = ([0] + delays).max

  (longest_delay_in_seconds / 1.minute).to_i
end
run() click to toggle source
# File lib/roqua/probes/monitoring_probe.rb, line 22
def run
  Appsignal.set_gauge('scheduler_delay_in_minutes', longest_delay_in_minutes)
end