class Heartcheck::Monitoring::Redis

Handles redis monitoring, such as TCP lookup and basic operations

Public Class Methods

new(redis_conn) click to toggle source
# File lib/heartcheck/monitoring/redis.rb, line 13
def initialize(redis_conn)
  @redis_conn = redis_conn
  @errors = []
end
run_checks(redis_conn) click to toggle source

Runs all checks on a given redis connection

@param redis_conn [Redis] the redis connection @return errors [Array] an array with error messages

# File lib/heartcheck/monitoring/redis.rb, line 9
def self.run_checks(redis_conn)
  new(redis_conn).run_checks
end

Public Instance Methods

run_checks() click to toggle source
# File lib/heartcheck/monitoring/redis.rb, line 18
def run_checks
  begin
    @errors << 'Sidekiq fails to set' unless can_store?
    @errors << 'Sidekiq fails to get' unless can_fetch?
    @errors << 'Sidekiq fails to delete' unless can_delete?
  rescue ::Redis::BaseError
    @errors << 'Sidekiq fails to connect to redis'
  rescue => e
    @errors << "Sidekiq error: #{e.message}"
  end

  @errors
end

Private Instance Methods

can_delete?() click to toggle source
# File lib/heartcheck/monitoring/redis.rb, line 42
def can_delete?
  @redis_conn.del('check_test') == 1
end
can_fetch?() click to toggle source
# File lib/heartcheck/monitoring/redis.rb, line 38
def can_fetch?
  @redis_conn.get('check_test') == 'heartcheck'
end
can_store?() click to toggle source
# File lib/heartcheck/monitoring/redis.rb, line 34
def can_store?
  @redis_conn.set('check_test', 'heartcheck') == 'OK'
end