Class: Wellness::Services::RedisService

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

Constant Summary collapse

KEYS =
[
  'used_memory_human',
  'connected_clients',
  'keyspace_misses',
  'keyspace_hits',
  'evicted_keys',
  'expired_keys',
  'sync_partial_err',
  'sync_partial_ok',
  'sync_full',
  'rejected_connections',
  'total_commands_processed',
  'total_connections_received',
  'uptime_in_seconds',
  'uptime_in_days'
]

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

#build_clientObject



38
39
40
# File 'lib/wellness/services/redis_service.rb', line 38

def build_client
  Redis.new(self.params)
end

#checkHash

Returns:

  • (Hash)


28
29
30
31
32
33
34
35
36
# File 'lib/wellness/services/redis_service.rb', line 28

def check
  client = build_client
  details = client.info.select { |k, _| KEYS.include?(k) }
  passed(details)
rescue Redis::BaseError => error
  failed(error)
rescue Exception => error
  failed(error)
end

#failed(error) ⇒ Object



49
50
51
52
53
54
55
56
# File 'lib/wellness/services/redis_service.rb', line 49

def failed(error)
  {
    status: 'UNHEALTHY',
    details: {
      error: error.message
    }
  }
end

#passed(details) ⇒ Object



42
43
44
45
46
47
# File 'lib/wellness/services/redis_service.rb', line 42

def passed(details)
  {
    status: 'HEALTHY',
    details: details
  }
end