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 |
# 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. queues = if process["capsules"] # 8.0.6+ process["capsules"].values.map { |x| x["weights"].keys.join(", ") } elsif 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"]} #{tags_for(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
70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 |
# File 'lib/sidekiq/monitor.rb', line 70 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 |
#version ⇒ Object
32 33 34 35 |
# File 'lib/sidekiq/monitor.rb', line 32 def version puts "Sidekiq #{Sidekiq::VERSION}" puts Time.now.utc end |