Skip to content

SQS — алерт при росте DLQ (dead letter queue)

Главная SQS-очередь обрабатывается ок, но DLQ молча растёт — какие-то messages фейлят 3 attempts и уходят. Никто не смотрит DLQ пока не накопится тысяча.

Рецепт

bash
#!/usr/bin/env bash
# /etc/cron.d/sqs-dlq
# */5 * * * * root /opt/sqs-dlq.sh

QUEUE=${DLQ_URL}
REGION=${AWS_REGION:-us-east-1}
THRESH=${THRESH:-10}                  # alert above N messages

DEPTH=$(aws sqs get-queue-attributes \
  --region "$REGION" \
  --queue-url "$QUEUE" \
  --attribute-names ApproximateNumberOfMessages \
  --output text --query 'Attributes.ApproximateNumberOfMessages')

if [ "${DEPTH:-0}" -gt "$THRESH" ]; then
  curl -fsS "$HEARTBEAT_URL" --data "dlq=$DEPTH,threshold=$THRESH"
  exit 2
fi
echo "OK (DLQ=$DEPTH)"

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

Подключите Enterno heartbeat — увидите ежедневный паттерн (DLQ обнуляется ночью при ручной разборке) или внезапный скачок при релизе.

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

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

CloudFront CDN-distribution начал возвращать 5xx 4% времени — клиенты в дальних регионах видят битые страницы. CloudWatch graph есть, dashboard никто не открывает.

DynamoDB начал throttle-ить запросы (горячий ключ или write-capacity мал) — приложение получает ProvisionedThroughputExceededException, но AWS-алерты только на 5-минутном агрегате.