Skip to content

Sentry — алерт по росту error-rate проекта

Релиз выкатили — Sentry даёт правильные алерты только за крупные сбои. Хочу видеть медленный рост error-rate за окно 15 минут до того, как это станет инцидентом.

Рецепт

bash
#!/usr/bin/env bash
# /opt/sentry-error-rate.sh — runs from cron every 5 min
# Sentry Events API v0 — /api/0/projects/{org}/{proj}/stats/

ORG=${SENTRY_ORG}
PROJ=${SENTRY_PROJECT}
TOKEN=${SENTRY_AUTH_TOKEN}
THRESH=${THRESH:-50}              # events / 15-min bucket

NOW=$(date +%s)
SINCE=$((NOW - 900))               # last 15 min

COUNT=$(curl -s -H "Authorization: Bearer $TOKEN" \
  "https://sentry.io/api/0/projects/$ORG/$PROJ/stats/?since=$SINCE&until=$NOW&resolution=10s&stat=received" \
  | jq '[.[] | .[1]] | add')

if [ "${COUNT:-0}" -gt "$THRESH" ]; then
  echo "sentry-spike: $COUNT events in 15min (threshold $THRESH)"
  curl -fsS -X POST "$HEARTBEAT_URL" \
       -H 'Content-Type: application/json' \
       --data "{\"status\":\"down\",\"detail\":\"$COUNT events / 15m\"}"
  exit 2
fi
echo "OK ($COUNT events / 15m)"

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

Заверните этот скрипт в Enterno heartbeat — получите retention 30 дней по error-rate и общий dashboard вместе с uptime, а не графики в Sentry без correlation с upstream-инцидентами.

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

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