Перейти к содержимому

Аномальный скачок трафика

Простой EWMA-детектор поверх любого counter-а requests:

import os, time, math, requests
state = {"ewma": None, "ts": time.time()}
def observe(rps_now: float):
alpha = 0.2
if state["ewma"] is None:
state["ewma"] = rps_now
return
state["ewma"] = alpha * rps_now + (1 - alpha) * state["ewma"]
if rps_now > state["ewma"] * 5 and rps_now > 10:
push("📈 Traffic spike",
f"RPS={rps_now:.0f} (baseline EWMA {state['ewma']:.1f})",
priority=9)
def push(t, m, p):
requests.post(f"{os.environ['NOTIFLY_URL']}/message",
params={"token": os.environ["NOTIFLY_TOKEN"]},
json={"title": t, "message": m, "priority": p}, timeout=5)

В push положите топ-5 IP / user-agent / endpoint — обычно сразу понятно, DDoS это, продакт-Hunt-эффект, или ваш crawler пошёл в loop.