Class: Sidekiq::Monitor::Status
- Inherits:
-
Object
- Object
- Sidekiq::Monitor::Status
- Defined in:
- lib/sidekiq/monitor.rb
Defined Under Namespace
Classes: QUEUE_STRUCT
Constant Summary collapse
- VALID_SECTIONS =
%w[all version overview processes queues]
- COL_PAD =
2
Instance Method Summary collapse
- #all ⇒ Object
- #display(section = nil) ⇒ Object
- #overview ⇒ Object
- #processes ⇒ Object
- #queues ⇒ Object
- #version ⇒ Object
Instance Method Details
#all ⇒ Object
22 23 24 25 26 27 28 29 30 |
# File 'lib/sidekiq/monitor.rb', line 22 def all version puts overview puts processes puts queues end |
#display(section = nil) ⇒ Object
12 13 14 15 16 17 18 19 20 |
# File 'lib/sidekiq/monitor.rb', line 12 def display(section = nil) section ||= "all" unless VALID_SECTIONS.include? section puts "I don't know how to check the status of '#{section}'!" puts "Try one of these: #{VALID_SECTIONS.join(", ")}" return end send(section) end |
#overview ⇒ Object
37 38 39 40 41 42 43 44 45 46 |
# File 'lib/sidekiq/monitor.rb', line 37 def overview puts "---- Overview ----" puts " Processed: #{delimit stats.processed}" puts " Failed: #{delimit stats.failed}" puts " Busy: #{delimit stats.workers_size}" puts " Enqueued: #{delimit stats.enqueued}" puts " Retries: #{delimit stats.retry_size}" puts " Scheduled: #{delimit stats.scheduled_size}" puts " Dead: #{delimit stats.dead_size}" end |
#processes ⇒ Object
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
# File 'lib/sidekiq/monitor.rb', line 48 def processes puts "---- Processes (#{process_set.size}) ----" process_set.each_with_index do |process, index| # Keep compatibility with legacy versions since we don't want to break sidekiqmon during rolling upgrades or downgrades. # # Before: # ["default", "critical"] # # After: # {"default" => 1, "critical" => 10} queues = if process["weights"] process["weights"].sort_by { |queue| queue[0] }.map { |capsule| capsule.map { |name, weight| (weight > 0) ? "#{name}: #{weight}" : name }.join(", ") } else process["queues"].sort end puts "#{process["identity"]} #{(process)}" puts " Started: #{Time.at(process["started_at"])} (#{time_ago(process["started_at"])})" puts " Threads: #{process["concurrency"]} (#{process["busy"]} busy)" puts " Queues: #{split_multiline(queues, pad: 11)}" puts " Version: #{process["version"] || "Unknown"}" if process["version"] != Sidekiq::VERSION puts "" unless (index + 1) == process_set.size end end |
#queues ⇒ Object
74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 |
# File 'lib/sidekiq/monitor.rb', line 74 def queues puts "---- Queues (#{queue_data.size}) ----" columns = { name: [:ljust, (["name"] + queue_data.map(&:name)).map(&:length).max + COL_PAD], size: [:rjust, (["size"] + queue_data.map(&:size)).map(&:length).max + COL_PAD], latency: [:rjust, (["latency"] + queue_data.map(&:latency)).map(&:length).max + COL_PAD] } columns.each { |col, (dir, width)| print col.to_s.upcase.public_send(dir, width) } puts queue_data.each do |q| columns.each do |col, (dir, width)| print q.send(col).public_send(dir, width) end puts end end |