SQS — алерт при росте DLQ (dead letter queue)
Главная SQS-очередь обрабатывается ок, но DLQ молча растёт — какие-то messages фейлят 3 attempts и уходят. Никто не смотрит DLQ пока не накопится тысяча.
Рецепт
#!/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 обнуляется ночью при ручной разборке) или внезапный скачок при релизе.
Похожие рецепты
Релиз увеличил bundle-size, p99 cold-start вырос с 800ms до 3s. Метрика в CloudWatch есть, но никто туда не смотрит. Нужен heartbeat-style алерт.
CloudFront CDN-distribution начал возвращать 5xx 4% времени — клиенты в дальних регионах видят битые страницы. CloudWatch graph есть, dashboard никто не открывает.
DynamoDB начал throttle-ить запросы (горячий ключ или write-capacity мал) — приложение получает ProvisionedThroughputExceededException, но AWS-алерты только на 5-минутном агрегате.