Skip to content

Twilio — алерт по росту неуспешных доставок SMS

OTP-коды для логина шлются через Twilio — ночью carrier начал блокировать тип сообщений, delivery dropped до 30%. Узнаёте по жалобам пользователей.

Рецепт

bash
#!/usr/bin/env bash
# Last 100 messages — failure ratio.
TWILIO_SID="${TWILIO_SID:?must be set}"
TWILIO_TOKEN="${TWILIO_TOKEN:?must be set}"
THRESHOLD_PCT="${THRESHOLD_PCT:-15}"

JSON=$(curl -sS -u "$TWILIO_SID:$TWILIO_TOKEN" \
  "https://api.twilio.com/2010-04-01/Accounts/$TWILIO_SID/Messages.json?PageSize=100")

TOTAL=$(echo "$JSON" | python3 -c 'import json,sys;print(len(json.load(sys.stdin)["messages"]))' 2>/dev/null)
FAILED=$(echo "$JSON" | python3 -c '
import json,sys
m = json.load(sys.stdin)["messages"]
print(sum(1 for x in m if x.get("status") in ("failed", "undelivered")))
' 2>/dev/null)

[ -z "$TOTAL" ] || [ "$TOTAL" -lt 5 ] && { echo "no-data"; exit 0; }
PCT=$((FAILED * 100 / TOTAL))
[ "$PCT" -ge "$THRESHOLD_PCT" ] && echo "high ${PCT}% (${FAILED}/${TOTAL})" || echo "ok ${PCT}%"

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

Endpoint + Enterno HTTP-монитор с keyword "ok" каждые 5 мин — алерт за минуту до того, как пользователи начнут писать в саппорт. Дополнительно email-check на ваш домен — DMARC failure тоже бьёт по delivery.

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

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

Нужно ловить момент, когда реплика начала отставать от мастера больше чем на 10 секунд.