class HealthMonitor::Providers::Sidekiq
Public Instance Methods
Source
# File lib/health_monitor/providers/sidekiq.rb, line 56 def check! check_workers! check_processes! check_latency! check_queue_size! check_redis! check_amount_of_retries! rescue Exception => e raise SidekiqException.new(e) end
Private Instance Methods
Source
# File lib/health_monitor/providers/sidekiq.rb, line 101 def check_amount_of_retries! jobs_over_limit = ::Sidekiq::RetrySet.new.select do |job| job.item['retry_count'] >= configuration.maximum_amount_of_retries end return unless jobs_over_limit.any? raise "amount of retries for a job is greater than #{configuration.maximum_amount_of_retries}" end
Source
# File lib/health_monitor/providers/sidekiq.rb, line 85 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
Source
# File lib/health_monitor/providers/sidekiq.rb, line 77 def check_processes! sidekiq_stats = ::Sidekiq::Stats.new return unless sidekiq_stats.processes_size.zero? raise 'Sidekiq alive processes number is 0!' end
Source
# File lib/health_monitor/providers/sidekiq.rb, line 93 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
Source
# File lib/health_monitor/providers/sidekiq.rb, line 111 def check_redis! if ::Sidekiq.respond_to?(:redis_info) ::Sidekiq.redis_info else ::Sidekiq.redis(&:info) end end
Source
# File lib/health_monitor/providers/sidekiq.rb, line 73 def check_workers! ::Sidekiq::Workers.new.size end
Source
# File lib/health_monitor/providers/sidekiq.rb, line 69 def configuration_class ::HealthMonitor::Providers::Sidekiq::Configuration end
Source
# File lib/health_monitor/providers/sidekiq.rb, line 119 def queue(queue_name) @queue ||= {} @queue[queue_name] ||= ::Sidekiq::Queue.new(queue_name) end