Skip to content

Redis Streams — алерт когда XPENDING растёт

Consumer для Redis Streams лагает — сообщения берутся, но XACK не происходит (worker завис между чтением и подтверждением). XLEN не растёт, XPENDING растёт.

Рецепт

bash
#!/usr/bin/env bash
# /etc/cron.d/redis-streams
# */2 * * * * root /opt/redis-streams.sh

HOST=${REDIS_HOST:-127.0.0.1}
STREAM=${STREAM}
GROUP=${CONSUMER_GROUP}
THRESH=${THRESH:-100}                 # alert above pending count

PENDING=$(redis-cli -h "$HOST" XPENDING "$STREAM" "$GROUP" | head -1)

if [ "${PENDING:-0}" -gt "$THRESH" ]; then
  curl -fsS "$HEARTBEAT_URL" --data "pending=$PENDING,stream=$STREAM,group=$GROUP"
  exit 2
fi
echo "OK (pending=$PENDING)"

То же самое в Enterno.io

Подключите Enterno heartbeat — пара минут без ack-а у consumer уже тренд, заметите перед массовой деградацией пайплайна.

Настроить HTTP monitor → ← Все рецепты

Похожие рецепты