GH GambleHub

SLO, SLA и мониторинг надежности

(Раздел: Технологии и Инфраструктура)

Краткое резюме

SLO — это внутренняя цель качества, SLA — внешнее обязательство перед клиентом, SLI — как мы измеряем качество. В iGaming ключевые SLI: доступность API и оплат, p95/p99 латентности критичных маршрутов, Time-to-Wallet (TTW), конверсия платежей, запуск игр, а также метрики очередей. Управление надежностью строится вокруг бюджета ошибок, multi-burn алертов, четких гейтов релизов и наглядных дашбордов с аннотациями.

1) Термины и различия

SLI (Service Level Indicator) — измеряемый индикатор (напр., доля успешных запросов за окно времени).
SLO (Service Level Objective) — целевое значение SLI (напр., «доступность 99.9% за 30 дней»).
SLA (Service Level Agreement) — контракт/обязательство с компенсациями; базируется на реальных SLO, но включает юридические оговорки и окна исключений (planned maintenance, форс-мажор).

Правило: сперва стабилизируйте SLI/SLO внутри, и только потом фиксируйте SLA наружу.

2) Каркас SLI для iGaming

ТехSLO

Availability: успешные 2xx/3xx / все запросы.
Latency: p95/p99 по ключевым роутам (`/deposit`, `/bet`, `/game/init`).
Errors: доля 5xx/таймаутов.
Saturation/Queues: задержка очередей выплат/транзакций.

Бизнес-SLI

Payment conversion: `success/attempt`.
TTW p95: время от запроса на вывод до зачисления.
Game start success: сессии игр, инициализация провайдера.
KYC/AML flow success: успешное завершение пути.

3) Бюджет ошибок: как считать

Error Budget = 1 − SLO.
Пример: SLO доступности 99.9%/30д ⇒ бюджет ошибок = 0.1% времени ≈ 43мин 12с в 30-дневном окне.

Для SLI-доли:

success_ratio = success_requests / all_requests error_ratio  = 1 - success_ratio

SLO считается на скользящем окне (30/7/1 день) и виден на дашбордах.

Политика использования:
  • Быстрое «сгорание» бюджета → freeze релизов, канарею стопим, работаем над стабильностью.
  • Запас бюджета → допускаем более частые изменения (контролируемо).

4) Примеры SLO для ключевых потоков

Payments API:
  • Availability ≥ 99.9% / 30д
  • Latency p95 `/deposit` ≤ 250 ms / 30д
  • Payment conversion ≥ baseline − 0.3% / 24ч
  • TTW p95 (вывод) ≤ 3 мин / 24ч
Games API / провайдеры игр:
  • Game init success ≥ 99.5% / 7д p95 game init ≤ 600 ms / 7д
Backoffice / отчеты:
  • Job success ≥ 99% / 7д, лаг < 5 мин (пиковые окна отдельно).

5) Измерение: формулы и PromQL (идеи)

Успешность запросов:
promql sum(rate(http_requests_total{status=~"2..    3..",service="payments-api"}[5m]))
/
sum(rate(http_requests_total{service="payments-api"}[5m]))
p95 латентности:
promql histogram_quantile(0. 95,
sum by (le) (rate(http_request_duration_seconds_bucket{service="payments-api",route="/deposit"}[5m])))
TTW p95 (гистограмма событий):
promql histogram_quantile(0. 95,
sum by (le) (rate(ttw_seconds_bucket{flow="withdrawal"}[15m])))
Конверсия платежей:
promql sum(rate(payments_success_total[15m])) / sum(rate(payments_attempt_total[15m]))

6) Burn-rate алерты (multi-window)

Идея: сравниваем текущую скорость расхода бюджета с допустимой.

Пример для SLO 99.9%:
  • Fast burn: 14× бюджета за 1 час → пейдж через 5–15 минут.
  • Slow burn: 6× бюджета за 24 часа → тикет, разбор причины.
Псевдо-правила:
yaml recording rule: job:http:success_ratio — заранее alert: SLOFastBurn expr: (1 - job:http:success_ratio{job="payments-api"}) > (1 - 0. 999) 14 for: 10m labels: { severity: "page" }

alert: SLOSlowBurn expr: (1 - job:http:success_ratio{job="payments-api"}) > (1 - 0. 999) 6 for: 1h labels: { severity: "ticket" }

7) Дашборды «SLO-карта» и операционка

Верхний уровень (карта):
  • Карточки по сервисам: Availability, p95, Error-rate, Burn-rate, остаток Error Budget.
  • Фильтры: `env`, `region`, `tenant`, `version`.
  • Аннотации релизов: Git SHA, тип (canary/blue-green), время переключения.
Drill-down:
  • Сравнение stable vs canary.
  • Разрез по PSP/провайдерам игр.
  • Переход к exemplars (trace_id) и связанным логам.
  • Queue lag и saturation (USE-метрики).

8) SLO-процессы: гейты, freeze, эскалации

Gates в CD: промоушен канарейки разрешается только при выполнении SLO-прокси (availability, p95, conv).
Freeze: при fast-burn или нулевом остатке бюджета — стоп релизов до восстановления.
Эскалации: SEV-матрица (SEV1 платежи/депозиты, SEV2 игры, SEV3 бэкофис).
RCA: разбор без обвинений, обновление тестов/лимитов/фичефлагов.

9) Data/ML-SLO (для рекомендателей/LLM)

Latency: p95 ответа модели ≤ 300 ms (или tokens/s ≥ N).
Quality proxy: доля валидных ответов/низкой токсичности, share of helpful.
Freshness: возраст фичей/данных ≤ X часов.
Cost per 1k events: расходы в бюджете.
SLO-гейты интегрируются в релизы моделей (A/B/канареечный rollout).

10) Конструирование SLA на базе SLO

Выберите консервативные SLO как основу SLA.
Определите исключения (плановые работы, внешние зависимые провайдеры, регламент инцидентов).
Введите компенсации по уровням нарушений (кредит/скидка), механизмы отчетности и верификации.

11) Частые ошибки и анти-паттерны

Нет SLO, только «uptime 100%» — нереалистично, демотивирует и прячет риски.
Алерты по «каждой метрике» вместо burn-rate — алерт-фэтиг и игнор.
Смешение PII в метриках/логах для SLO — риски комплаенса.
Кардинальность взрывается: `user_id/session_id` как лейблы.
Отсутствие аннотаций релизов — сложно связать деградации с изменениями.
Непрозрачный бюджет ошибок — команда не понимает, когда «можно» рисковать.
SLO не привязан к бизнесу — техметрики «зеленые», выручка «красная».

12) Чек-лист внедрения

1. Утвердите базовые SLI (Availability, p95/p99, Error-rate, TTW, Conversion).
2. Задайте SLO на 30/7/1-дневных окнах и посчитайте Error Budget.
3. Добавьте recording rules и burn-rate алерты (fast/slow).
4. Постройте SLO-карту с аннотациями релизов и сравнениями canary/stable.
5. Включите гейты в CD: без SLO-ок — без промоушена.
6. Введите freeze-процедуры и SEV-матрицу эскалаций.
7. Свяжите SLO с бизнес-метриками (conv, TTW) и платежными маршрутами.
8. Для Data/ML определите latency/quality/freshness-SLO.
9. Регулярные RCA и пересмотр SLO/порогов (ежеквартально).
10. Документируйте SLA только после стабилизации SLO.

13) Примеры «готовых» целей (как старт)

API общие: Availability 99.9%/30д; p95 ≤ 250 ms/30д; Error-rate ≤ 0.3%/30д.
Payments: Conversion ≥ baseline − 0.3%/24ч; TTW p95 ≤ 3 мин/24ч.
Games init: Success ≥ 99.5%/7д; p95 ≤ 600 ms/7д.
Backoffice jobs: Success ≥ 99%/7д; лаг ≤ 5 мин/7д.
LLM/Reco: tokens/s ≥ N, toxicity viol. ≤ 0.5%/7д, freshness ≤ 6ч.

Итоги

SLO/SLA-подход превращает надежность из «лучше, чем вчера» в измеряемую дисциплину: прозрачные SLI, понятный бюджет ошибок, алерты на скорость сгорания, понятные дашборды и встроенные в релизы гейты качества. Такой контур дает iGaming-платформе предсказуемый p95/p99, стабильные платежи и TTW, а значит — лучшую выручку и меньше инцидентов в самые горячие часы.

Contact

Свяжитесь с нами

Обращайтесь по любым вопросам или за поддержкой.Мы всегда готовы помочь!

Telegram
@Gamble_GC
Начать интеграцию

Email — обязателен. Telegram или WhatsApp — по желанию.

Ваше имя необязательно
Email необязательно
Тема необязательно
Сообщение необязательно
Telegram необязательно
@
Если укажете Telegram — мы ответим и там, в дополнение к Email.
WhatsApp необязательно
Формат: +код страны и номер (например, +380XXXXXXXXX).

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