Skip to content

Fastly — алерт когда purge выполняется дольше N секунд

Fastly soft-purge обычно даёт sub-second propagation, но иногда висит 30+ сек (overload, key collision). После релиза «новые» ассеты не появляются, пользователи видят старую версию.

Рецепт

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

API_KEY=${FASTLY_API_KEY}
SERVICE=${FASTLY_SERVICE_ID}
THRESH_S=${THRESH_S:-3}

# Send a no-op purge with a unique surrogate-key, time the round trip
KEY="hb-test-$(date +%s)"
START=$(date +%s%N)
curl -fsS -X POST -H "Fastly-Key: $API_KEY" \
  "https://api.fastly.com/service/$SERVICE/purge/$KEY" >/dev/null
END=$(date +%s%N)

MS=$(( (END - START) / 1000000 ))
S=$(( MS / 1000 ))

if [ "$S" -gt "$THRESH_S" ]; then
  curl -fsS "$HEARTBEAT_URL" --data "purge_ms=$MS,threshold_s=$THRESH_S"
  exit 2
fi
echo "OK (purge=${MS}ms)"

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

Заверните в Enterno heartbeat — увидите тренд latency и paged-on-call раньше, чем команда деплоев заметит «асет не обновляется».

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

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

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