class HealthMonitor::Providers::Sidekiq
Private Class Methods
configuration_class()
click to toggle source
# File lib/health_monitor/providers/sidekiq.rb, line 65 def configuration_class ::HealthMonitor::Providers::Sidekiq::Configuration end
Public Instance Methods
check!()
click to toggle source
# File lib/health_monitor/providers/sidekiq.rb, line 50 def check! check_workers! check_processes! check_latency! check_queue_size! check_redis! rescue Exception => e raise SidekiqException.new(e) end
Private Instance Methods
check_latency!()
click to toggle source
# File lib/health_monitor/providers/sidekiq.rb, line 81 def check_latency! configuration.queues.each do |queue, config| latency = queue(queue).latency raise "queue '#{queue}': latency #{latency} is greater than #{config[:latency]}" if latency > config[:latency] end end
check_processes!()
click to toggle source
# File lib/health_monitor/providers/sidekiq.rb, line 74 def check_processes! sidekiq_stats = ::Sidekiq::Stats.new return unless sidekiq_stats.processes_size.zero? raise 'Sidekiq alive processes number is 0!' end
check_queue_size!()
click to toggle source
# File lib/health_monitor/providers/sidekiq.rb, line 89 def check_queue_size! configuration.queues.each do |queue, config| size = queue(queue).size raise "queue '#{queue}': size #{size} is greater than #{config[:queue_size]}" if size > config[:queue_size] end end
check_redis!()
click to toggle source
# File lib/health_monitor/providers/sidekiq.rb, line 96 def check_redis! if ::Sidekiq.respond_to?(:redis_info) ::Sidekiq.redis_info else ::Sidekiq.redis(&:info) end end
check_workers!()
click to toggle source
# File lib/health_monitor/providers/sidekiq.rb, line 70 def check_workers! ::Sidekiq::Workers.new.size end
queue(queue_name)
click to toggle source
# File lib/health_monitor/providers/sidekiq.rb, line 104 def queue(queue_name) @queue ||= {} @queue[queue_name] ||= ::Sidekiq::Queue.new(queue_name) end