Introduce yabeda for Solid Queue metrics
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
module Yabeda
|
||||
module SolidQueue
|
||||
def self.install!
|
||||
Yabeda.configure do
|
||||
group :solid_queue
|
||||
|
||||
gauge :jobs_failed_count, comment: "Number of failed jobs"
|
||||
gauge :jobs_unreleased_count, comment: "Number of claimed jobs that don't belong to any process"
|
||||
gauge :jobs_scheduled_and_delayed_count, comment: "Number of scheduled jobs that have over 5 minutes delay"
|
||||
gauge :recurring_tasks_count, comment: "Number of recurring jobs scheduled"
|
||||
gauge :recurring_tasks_delayed_count, comment: "Number of recurring jobs that haven't been enqueued within their schedule"
|
||||
|
||||
collect do
|
||||
if ::SolidQueue.supervisor?
|
||||
solid_queue.jobs_failed_count.set({}, ::SolidQueue::FailedExecution.count)
|
||||
solid_queue.jobs_unreleased_count.set({}, ::SolidQueue::ClaimedExecution.where(process: nil).count)
|
||||
solid_queue.jobs_scheduled_and_delayed_count.set({}, ::SolidQueue::ScheduledExecution.where(scheduled_at: ..5.minutes.ago).count)
|
||||
solid_queue.recurring_tasks_count.set({}, ::SolidQueue::RecurringTask.count)
|
||||
solid_queue.recurring_tasks_delayed_count.set({}, ::SolidQueue::RecurringTask.count do |task|
|
||||
task.last_enqueued_time.present? && (task.previous_time - task.last_enqueued_time) > 5.minutes
|
||||
end)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user