Skip to content

Instantly share code, notes, and snippets.

@EricLondon
Created November 10, 2016 14:45
Show Gist options
  • Save EricLondon/10193e095eece07d1acb2a573b352b0a to your computer and use it in GitHub Desktop.
Save EricLondon/10193e095eece07d1acb2a573b352b0a to your computer and use it in GitHub Desktop.
Sidekiq status rake task
require 'sidekiq/api'
namespace :sidekiq do
desc 'Output Sidekiq Status'
task status: :environment do
divider = '=================================================='
puts "#{divider}\nSTATS"
stats = Sidekiq::Stats.new
puts "\tProcesses:\t#{stats.processes_size}"
puts "\tWorkers:\t#{stats.workers_size}"
puts "\tProcessed:\t#{stats.processed}"
puts "\tEnqueued:\t#{stats.enqueued}"
puts "\tFailed:\t#{stats.failed}"
puts "\tScheduled:\t#{stats.scheduled_size}"
puts "\tRetries:\t#{stats.retry_size}"
puts "\tDead:\t#{stats.dead_size}"
puts "#{divider}\nQUEUES"
Sidekiq::Queue.all.each do |queue|
puts "\tName:\t#{queue.name}"
puts "\tSize:\t#{queue.size}"
puts "\tLatency:\t#{queue.latency}"
puts
end
puts "#{divider}\nPROCESSES"
Sidekiq::ProcessSet.new.each do |process|
attribs = process.instance_variable_get(:@attribs)
attribs.each { |k,v| puts "\t#{k}:\t#{v}" }
puts
end
puts "#{divider}\nWORKERS"
Sidekiq::Workers.new.each do |process_id, thread_id, work|
puts "\tProcessID:\t#{process_id}"
puts "\tThreadID:\t#{thread_id}"
puts "\tWork:\t#{work}"
puts
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment