Skip to content

AWS Lambda — алерт когда p99 cold-start вырос

Релиз увеличил bundle-size, p99 cold-start вырос с 800ms до 3s. Метрика в CloudWatch есть, но никто туда не смотрит. Нужен heartbeat-style алерт.

Рецепт

bash
#!/usr/bin/env bash
# Pulls Lambda Init Duration p99 over the last 10 min for one function.
FN="${FN:-my-api}"
THRESHOLD_MS="${THRESHOLD_MS:-1500}"

P99=$(aws cloudwatch get-metric-statistics \
  --namespace AWS/Lambda --metric-name Duration \
  --dimensions Name=FunctionName,Value="$FN" Name=Resource,Value="$FN" \
  --start-time "$(date -u -d '10 min ago' +%FT%TZ)" \
  --end-time   "$(date -u +%FT%TZ)" \
  --period 60 --extended-statistics p99 \
  --query 'Datapoints[-1].ExtendedStatistics.p99' --output text 2>/dev/null)

[ -z "$P99" ] || [ "$P99" = "None" ] && { echo "no-data"; exit 1; }
P99_MS=$(printf "%.0f" "$P99")
[ "$P99_MS" -ge "$THRESHOLD_MS" ] && echo "high $P99_MS" || echo "ok $P99_MS"

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

Положите рядом с вашим Lambda-функцией. Endpoint можно завернуть в saneprefix через Enterno HTTP-монитор + PageSpeed на public-эндпоинт самой функции — корреляция cold-start vs full-page latency.

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

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

Node-приложение тормозит из-за блокирующих CPU-операций; latency пользователей растёт. Нужен endpoint с моментальным значением event-loop-lag.