Skip to content

Алерт при провале cache-hit ratio CDN

CDN cache_status (cf-cache-status или x-cache) внезапно даёт MISS на больше 30% запросов — вырос origin-load и счёт за бэкенд.

Рецепт

bash
#!/usr/bin/env bash
# Sample cache_status header N times, alert if MISS rate > THRESHOLD.
URL=${1:?URL required}
N=${N:-20}
THRESHOLD_PERCENT=${THRESHOLD_PERCENT:-30}

MISS=0
for i in $(seq 1 "$N"); do
  STATUS=$(curl -sI "$URL?nocache=$RANDOM" | awk -F': ' '
    /^cf-cache-status:|^x-cache:/ { print toupper($2) }
  ' | tr -d '\r')
  case "$STATUS" in *MISS*|*EXPIRED*|*BYPASS*) MISS=$((MISS+1));; esac
done

PCT=$((MISS * 100 / N))
if [ "$PCT" -gt "$THRESHOLD_PERCENT" ]; then
  curl -X POST "$SLACK_WEBHOOK" \
    --data "{\"text\":\"CDN cache miss rate: $PCT% on $URL\"}"
fi

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

Это «свой бот» подход. HTTP-monitor Enterno уже хранит response-headers — Pioneer+ показывает cache-hit ratio на dashboard и шлёт алерт без bash-loop.

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

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

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