class HealthInspector::Services::Redis

Attributes

configuration[RW]

Public Class Methods

new() click to toggle source
Calls superclass method HealthInspector::Services::Base::new
# File lib/health_inspector/services/redis.rb, line 11
def initialize
  super
end
slug() click to toggle source
# File lib/health_inspector/services/redis.rb, line 15
def self.slug
  'redis'
end

Public Instance Methods

inspect!() click to toggle source
# File lib/health_inspector/services/redis.rb, line 38
def inspect!
  redis_connection = ::Redis.new(redis_configuration)
  redis_connection.set('health_monitor_redis', 'added')
  redis_connection.del('health_monitor_redis')

  return { status: 'OK', timestamp: Time.now.utc.to_i } if redis_connection
rescue StandardError => e
  { status: 'FAILED',
    message: "Could not connect to redis-server. Error: #{e.inspect}",
    timestamp: Time.now.utc.to_i }
ensure
  redis_connection.disconnect! if redis_connection
end
redis_configuration() click to toggle source
# File lib/health_inspector/services/redis.rb, line 19
def redis_configuration
  redis_configs = {
    'host' => configuration['host'],
    'password' => configuration['password'],
    'port' => (configuration['port'] || 6379),
    'db' => (configuration['db'] || 1)
  }

  sentinels = configuration['sentinels']
  if !sentinels.nil? && sentinels.present?
    redis_configs['sentinels'] = configuration['sentinels']
    redis_configs['role'] = configuration['role']
    redis_configs['host'] = configuration['master_name']
  end

  redis_configs[:url] = "redis://#{configuration['host']}"
  redis_configs
end