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