Fractal Techware

Alert runbooks /

RedisDown

redis_exporter has failed to talk to its Redis instance for a couple of minutes, so Redis is down or unreachable.

   
Severity critical
Source oliver006/redis_exporter 1.50+
Key metric redis_up (1 = last scrape reached Redis, 0 = failed)

What it means

On each scrape the exporter connects to Redis and runs INFO. If that fails, redis_up is 0. The alert fires when this persists beyond a short grace period. The exporter process itself is running (its own up series is 1), so the problem is between the exporter and Redis, or Redis itself.

Applications using Redis as a cache usually degrade (slower, more database load); applications using it for sessions, queues or locks usually fail outright.

Common causes

First checks

  1. Try to reach it from where the exporter runs:
    redis-cli -h <host> -p 6379 -a '<password>' --no-auth-warning PING
    
  2. Read the exporter log for the exact error (timeout, auth, connection refused):
    kubectl -n <ns> logs deploy/<redis-exporter> --tail=50
    
  3. Check the Redis process or pod and its last termination reason:
    kubectl -n <ns> get pod <redis-pod> -o jsonpath='{.status.containerStatuses[*].lastState.terminated.reason}'
    kubectl -n <ns> logs <redis-pod> --previous --tail=50
    
  4. If Redis answers but slowly, look for blocking commands:
    redis-cli -h <host> SLOWLOG GET 10
    redis-cli -h <host> INFO clients
    
  5. Check the scope:
    count by (job) (redis_up == 0)
    

Fixing it

Restart a crashed instance and check the log for the reason before it happens again; for OOM, set maxmemory below the container limit with headroom for fork and buffers. Fix exporter credentials or address after a password rotation or failover (point it at the Sentinel-managed master or a stable Service). Ban KEYS in favour of SCAN if blocking commands caused it.