Class: Wellness::Services::SidekiqService

Inherits:
Base
  • Object
show all
Defined in:
lib/wellness/services/sidekiq_service.rb

Overview

Author:

  • Matthew A. Johnston

Constant Summary collapse

KEYS =
%w(redis_stats uptime_in_days connected_clients used_memory_human used_memory_peak_human)

Instance Attribute Summary

Attributes inherited from Base

#name, #params, #result

Instance Method Summary collapse

Methods inherited from Base

#call, dependency, #failed_check, #healthy?, #initialize, #passed_check

Constructor Details

This class inherits a constructor from Wellness::Services::Base

Instance Method Details

#checkHash

Returns:

  • (Hash)


15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/wellness/services/sidekiq_service.rb', line 15

def check
  sidekiq_stats = Sidekiq::Stats.new
  queue = Sidekiq::Queue.new
  redis = Redis.new(self.params.fetch(:redis))
  redis_stats = redis.info.select { |k, _| KEYS.include?(k) }
  workers_size = redis.scard('workers').to_i

  {
    status: 'HEALTHY',
    details: {
      processed: sidekiq_stats.processed,
      failed: sidekiq_stats.failed,
      busy: workers_size,
      enqueued: sidekiq_stats.enqueued,
      scheduled: sidekiq_stats.scheduled_size,
      retries: sidekiq_stats.retry_size,
      default_latency: queue.latency,
      redis: redis_stats
    }
  }
rescue => error
  {
    status: 'UNHEALTHY',
    details: {
      error: error.message
    }
  }
end