GH GambleHub

Операції та Управління → Передбачення інцидентів

Передбачення інцидентів

1) Навіщо це потрібно

Інциденти рідко «вибухають з нізвідки». Перед відмовою платформа подає сигнали: прискорене зростання p99, повільне вигорання error-бюджету, лаги черг, зростання ретраїв на конкретному даунстрімі, наближення квот провайдера. Системне передбачення інцидентів переводить реакцію з «гасіння пожежі» в «раннє втручання», знижуючи MTTR, Change Failure Rate і втрати виручки.

Цілі:
  • Виявляти патерни провісників і автоматично ініціювати профілактичні дії.
  • Зменшити частку P1/P2 за рахунок зсуву вліво (pre-incident detect rate).
  • Вбудувати передбачення в процеси релізів, фейловера і capacity-попереджень.

2) Карта сигналів (lead indicators)

Платформа/інфра:
  • Прискорення p95/p99 (градієнт), «хвости» затримок, зростання варіації.
  • Черги/стріми: зростання'lag'і позитивна похідна lag; HPA на максимумі.
  • БД/кеш: `active_conns/max_conns`, `replication_lag`, `evictions`, падение `cache_hit`.
  • Мережа: помилки mTLS/handshake, зростання 5xx/timeout назовні.
Залежності/провайдери:
  • 'outbound _ error _ rate '/' retry _ rate'до конкретного провайдера,'circuit _ open','quota _ usage> 0. 9`.
  • SLA провайдера: планові вікна, деградації.
Продукт/бізнес:
  • Аномальне навантаження (кампанії/матчі), стрибки RPS/TPS, незвичайні мікси регіонів/каналів.
  • Конверсія депозитів/ставок падає при зростанні p99 → квазі-проксі інциденту.
SLO-шар:
  • Burn-rate error-бюджету> порогу (наприклад,> 4 × протягом 10-15 хв).
  • Часті дрібні порушення SLO (мікро-деградації) як маркер збою, що наближається.

3) Джерела та вітрини даних

Онлайн-телееметрія: Prometheus/OTel (метрики, логи, трейси).
Події інцидентів: тікети/статуси/постмортеми (істина для таргета).
План/факти змін: релізи, фічефлаги, міграції, вікна провайдерів.
Довідники: карта залежностей, квоти, власники.
DWH-знімки: агрегати для навчання/валідації (синхронна віконність!).

Вимоги до якості: повнота ≥99%, годинне/хвилинне вирівнювання TZ, єдині визначення p95/p99.

4) Підходи до передбачення

4. 1 Непараметричні/правила (швидкий старт)

Порогові алерти на швидкість зміни: 'deriv (p99)','z-score'для коротких вікон.
Композитні умови: `lag↑ + HPA=max + circuit_open(to="PSP-X")`.
SLO-burn-гейти: останів релізу/канарки при burn-rate> X.

4. 2 Детекція аномалій

Seasonal baselines (STL/Prophet-подібні ідеї), rolling медіана + MAD.
Multivariate: спільна аномалія'p99 + retry + open_circuit + quota'.
Change-point detection: CUSUM/BOCPD для зрушень трендів.

4. 3 ML-моделі (supervised)

Класифікація «інцидент в T + K?» по вікну ознак (наприклад, за 10-30 хв до).
Ознаки: статистики, похідні, сезонні залишки, one-hot провайдерів/регіонів, прапори релізів.
Мітки: 'incident{severity∈[P1,P2]}'в інтервалі [t, t + K].
Explainability: SHAP/Permutation importance для довіри та операційності.

4. 4 SRE-first гібрид

Модель → скоринг ризику (0-1) → політика дій (фічефлаги/фейловер/пред-скейл), з HITL для критики.

5) Проектування ознак (feature engineering)

Ковзні вікна (1/5/15 хв): mean, p95/p99, std, max, slope.
Відносні показники: `p99/baseline_1d`, `error_rate_delta`.
Когортні фічі: провайдер, регіон, тип гри/матчу, канал пристрою.
«Навантажувальні» фічі: RPS, payload size, кількість відкритих WS.
Системні: `hpa_desired/max`, `db_conn_ratio`, `redis_evictions>0`.
Подієві прапори: «йде реліз», «канарка 10%», «вікно провайдера».

6) Механіка передбачень і дії

Ланцюжок прийняття рішень:

1. Скоринг ризику кожні N секунд по доменах (Payments/Bets/Games/KYC).

2. Політика алерта:
  • ризик ≥ 0. 8 + підтверджуючі сигнали → page власника домену;
  • 0. 6–0. 8 → попередження + підготовка заходів.
3. Автодії (safeguards):
  • перед-скейл (HPA minReplicas↑), включення кешів, обмеження важких функцій;
  • переключення на резервного провайдера/маршрут;
  • пауза/роллбек канарки;
  • ліміт ретраїв до «вузького» даунстриму.
  • 4. HITL: людина підтверджує заходи рівня «зміна бізнес-поведінки».

7) Інтеграція в щоденні процеси

Релізи: предиктивні гейти на канарках (порівняння «до/після» і ризик-скоринг).
Фейловер: автоматична підготовка/прогрів резервного маршруту при ризику провайдера.
Capacity: «early uplift» при падінні headroom і зростанні лагів.
Сповіщення: окрема стрічка «pre-incident» + анотації в дашбордах.

8) Спостережуваність і дашборди

Risk Overview: ризик по доменах і провайдерам, тенденції, внесок ознак.
Lead Signals: top-N провісників (градієнт p99, lag, відкриті брейкери).
Actions & Outcomes: що включилося, ефект на p95/error, скасовані інциденти.
Model Health: precision/recall/latency, drift ознак, частота автодій.

9) Метрики якості передбачень

Recall @P1/P2 (чутливість щодо критичних інцидентів).
Precision (менше «помилкових пейджів»).
Lead Time (медіана «скільки хвилин до факту»).
Intervention Win-rate (частка випадків, де дія знизила ризик/витрати).
Alert Fatigue Index (алертів/зміна/чол).
Drift Score (стат. відмінності розподілів ознак vs навчального періоду).

Типові цілі: Recall(P1) ≥ 0. 7, Precision ≥ 0. 6, Lead Time медіана ≥ 8-10 хв.

10) Управління ризиками моделі (ML Ops/Governance)

Версіонування даних/коду/артефактів, відтворюваність.
Champion/Challenger: нова модель йде паралельно, порівняння оффлайн/онлайн.
Дрейф: PSI/KL-дивергенція, авто-перелік порогів, алерт «модель застаріла».
Explainability: для кожного рішення зберігати важливості ознак і посилання на дані.
Безпека/етика: доступи, PII-маскування, контроль автодействий політиками.

11) Приклади правил і політик

SLO-burn і канарка (концепт):

policy:
if slo_burn_rate{service="payments"} > 4 for 10m and release_phase in ["canary", "post-deploy_30m"]:
action: pause_release_and_rollback notify: squad-payments
Композитний ризик провайдера:

risk_psp_x = sigmoid(
1. 2z(outbound_p99_ms) +
1. 5z(outbound_error_rate) +
0. 8z(retry_rate) +
1. 0I(quota_usage>0. 9) +
0. 7I(circuit_open=1)
)
if risk_psp_x > 0. 8 for 5m -> route_to_psp_y + reduce_features
Lag-шторм у стрімінгу:

if (consumer_lag > 5e6 and deriv(consumer_lag) > 5e4) and hpa_desired == hpa_max:
action: scale_consumers + throttle_producers + enable_batching

12) Чек-лист впровадження (30-60 днів)

Каталог сигналів і «істини» по інцидентах (severity, таймлайни).

  • Базові лінії і сезонність для ключових метрик (до/після релізу).
  • Правила ранніх сигналів (градієнти p99, lag, burn-rate).
  • Дашборди Risk/Lead Signals/Actions.
  • Інтеграція з фічефлагами/канарками, перед-скейл HPA.
  • Пілот ML-класифікатора на одному домені (наприклад, Payments).
  • Політики HITL і журнал автодействий.
  • Метрики якості та алерти на дрейф/здоров'я моделі.

13) Анти-патерни

«Кришталеві кулі»: складна ML-модель без базових ліній і простих правил.
Немає actionability: пророкуємо «погано», але не робимо нічого автоматично.
Ігнор сезонності/календаря подій (матчі/турніри) → помилкові тривоги.
Змішування зон часу → невірні вікна метрик/інцидентів.
Відсутність explainability → недовіра, відключення передикту командами.
Єдиний глобальний поріг на всі домени/регіони → низька точність.

14) Специфіка доменів (iGaming)

Payments: провайдери/квоти, зростання'retry _ rate'і'circuit _ open'→ ранній фейловер.
Bets: затримка оновлення коефіцієнтів, зростання WS-фан-ауту → ліміт широкомовлень.
Games/Live: сплески з'єднань, ліміти студій → деградація UI/кеші.
KYC/AML: затримки webhook, черги верифікацій → HITL і відкладена обробка.

15) Приклади метрик і алертів (ідеї)


ALERT PreIncidentRiskHigh
IF risk_score{domain="payments"} > 0. 8 FOR 5m
LABELS {severity="critical", team="payments"}

ALERT LeadSignalP99Slope
IF deriv(api_p99_ms{service="bets"}[5m]) > 15 AND api_p99_ms > baseline_1d 1. 2 FOR 10m
LABELS {severity="warning", team="bets"}

ALERT ProviderEarlyQuota
IF usage_quota_ratio{provider="psp_x"} > 0. 85 FOR 10m
LABELS {severity="info", team="integrations"}

ALERT StreamLagStorm
IF (kafka_consumer_lag{topic="ledger"} > 5e6 AND rate(kafka_consumer_lag[5m]) > 5e4)
AND hpa_desired == hpa_max FOR 10m
LABELS {severity="critical", team="streaming"}

16) KPI програми передбачень

Pre-Incident Detect Rate (частка попереджених/пом'якшених інцидентів).
Avg Lead Time до інциденту.
Reduction in P1/P2 кв/кв.
MTTR (очікувано ↓ за рахунок раннього контексту).
False Alarm Rate/Alert Fatigue (стабільно ↓).
Cost Avoidance (оцінка попереджених втрат/штрафів/оверскейлу).

17) Швидкий старт (рецепт)

1. Увімкніть градієнтні правила на p99/lag і SLO-burn;

2. Додайте композитні умови для провайдерів;

3. Зв'яжіть предикт з фічефлагами і пред-скейлом;

4. Звіт «передбачення → дію → ефект»;

5. Пілот ML в одному домені; масштабуйте після зростання Precision/Recall.

18) FAQ

Q: З чого почати без ML?
A: Сезонні базові лінії + градієнти + композитні правила. Це дає помітний приріст Recall без складнощів.

Q: Як не потонути у фолс-позитивах?
A: Комбінувати сигнали, вводити гістерезис і час підтвердження, налаштовувати пороги per-домен/регіон, оцінювати Precision і Alert Fatigue.

Q: Які дії автоматизувати першими?
A: Безпечні та оборотні: перед-скейл, включення кешів/деградації, пауза/ролбек канарки, перемикання провайдера при підтверджених сигналах.

Contact

Зв’яжіться з нами

Звертайтеся з будь-яких питань або за підтримкою.Ми завжди готові допомогти!

Telegram
@Gamble_GC
Розпочати інтеграцію

Email — обов’язковий. Telegram або WhatsApp — за бажанням.

Ваше ім’я необов’язково
Email необов’язково
Тема необов’язково
Повідомлення необов’язково
Telegram необов’язково
@
Якщо ви вкажете Telegram — ми відповімо й там, додатково до Email.
WhatsApp необов’язково
Формат: +код країни та номер (наприклад, +380XXXXXXXXX).

Натискаючи кнопку, ви погоджуєтесь на обробку даних.