GH GambleHub

Мониторинг SLA и SLO

1) Термины и роли

SLA (Service Level Agreement) — внешнее договорное обязательство перед клиентом (штрафные оговорки, кредиты).
SLO (Service Level Objective) — целевой внутренний уровень сервиса, поддерживающий выполнение SLA.
SLI (Service Level Indicator) — измеряемый индикатор, на основе которого оцениваются SLO/SLA.
Error Budget — допустимая доля “недоступности/ошибок” за период: `Budget = 1 − SLO`.
Scope: измеряется глазами пользователя (end-to-end). В микросервисах — и на уровне компонента, и сквозного пути.

2) Выбор SLI: что именно измерять

Критерий — корреляция с пользовательским опытом и бизнес-ценностью.

Типовые SLI:
  • Доступность: доля успешных запросов. `SLI = успешные / все`.
  • Латентность: доля запросов быстрее порога T. `SLI = P(latency ≤ T)`.
  • Качество: доля корректных ответов (без 5xx/функц. ошибок).
  • Актуальность данных: задержка репликации/ETL ≤ X минут.
  • Результативность бизнес-процесса: доля успешных платежей/регистраций.

Анти-паттерны: считать только 200-ки как “успех”, игнорируя бизнес-ошибки; измерять в тестовой сети вместо пользовательской.

3) Формулы и окна наблюдения

Доступность за окно:
  • `Availability = (OK_requests / All_requests) × 100%`.
SLO по латентности:
  • `P95 ≤ T` → лучше формулировать как долю: `SLI = % запросов ≤ T`.
  • Пример: “99% запросов поиска ≤ 300 мс за 28 дней”.
  • Скользящее окно: 28 или 30 дней (баланс чувствительности и стабильности). Для инцидентов — доп. окна: 1 ч, 6 ч, 24 ч.

4) Error Budget и управление скоростью изменений

Расчет: при `SLO = 99.9%` бюджет = `0.1%` ошибок/недоступности за период.

Политика:
  • Бюджет > 50%: релизы и эксперименты по плану.
  • Бюджет 10–50%: только низкорисковые релизы, ужесточение канареек.
  • Бюджет < 10%: заморозка релизов, корневая причина, улучшения надежности.
  • Связь с прогрессивными релизами: canary/feature-flags “едят” бюджет дозированно, с авто-откатом при деградации.

5) Алерт-политики: от порогов к burn rate

Почему не “даупал SLO — подними алерт”: слишком поздно. Нужна проактивность.

Burn Rate (BR) — скорость сжигания бюджета:
  • `BR = (наблюдаемая ошибка за короткое окно / допустимая ошибка за это окно)`.
  • Если `BR > 1` — бюджет расходуется быстрее нормы.
Двухоконные алерты (SRE best practice):
  • Быстрый алерт (шум чувствителен, ловит катастрофы): окно 5–10 мин, порог BR 14–20×.
  • Медленный алерт (ловит ползучие деградации): окно 1–6 ч, порог BR 2–4×.
  • Условия комбинировать: сработал быстрый или медленный — пейджинг on-call.
  • Уровни: пейджер для пользовательских SLO, тикеты/уведомления для серых деградаций внутренних SLI.

6) Наблюдаемость и источники истины

Логи — диагностика причин.
Метрики — числовые SLI (успех/ошибка, перцентили латентности, доли, счетчики).
Трейсы — сквозные пути, локализация “горячих” сегментов.
Синтетика — активные пробы с периферии (region-aware).
Реальные события — RUM/телеметрия клиентов, бизнес-метрики (конверсия, успешные платежи).

Требования: единая картина в дашбордах релизов и инцидентов, аннотации “версия/канарейка/флаг”.

7) Проектирование SLO: пошаговый шаблон

1. Опишите критичный путь (например, “депозит картой”).
2. Определите SLI: успех/ошибка, порог латентности, полнота.
3. Согласуйте SLO: цель на 28 дней + исключения (запланированные окна).
4. Свяжите с SLA: юридическое обязательство ≦ фактический SLO.
5. Назначьте владельца (service owner), RACI и канал алертов.
6. Определите алерт-политики (двухоконные BR) и авто-откаты.
7. Внедрите отчетность: еженедельные обзоры бюджета, пост-инцидентные ревью.
8. Пересматривайте SLO ежеквартально (изменение нагрузки/архитектуры).

8) Примеры SLO (шаблоны)

API платежей:
  • Доступность: `≥ 99.95%` (28д, исключая объявленные окна ≤ 30 мин/мес).
  • Латентность: `≥ 99%` ответов `≤ 400 мс`.
  • Успех бизнес-операций: `≥ 98.5%` успешных авторизаций (fraud-фильтры учтены).
Поиск игр/контента:
  • Латентность: `≥ 99%` запросов `≤ 300 мс`.
  • Актуальность кэша: `≤ 5 мин` отставание в 99% случаев.
Стриминг-событий (KYC/AML):
  • Доставка: `≥ 99.9%` в течение `≤ 60 с` (end-to-end, с ретраями).
  • Потеря: `≤ 0.01%` сообщений (идемпотентность/дедупликация включены).

9) Мульти-регион и мульти-тенант

SLO “по когортам”: страна, платежный провайдер, VIP-сегмент, устройство.
Локальные SLO на краю: метрики из ближайших к пользователю точек (edge/PoP).
Агрегирование: общий SLO не должен скрывать провалы по важным когортам.
Переключение провайдеров: автоматические fallback-маршруты на уровне SLO-гейтов.

10) Дашборды и отчетность

Релизный дашборд: версия, канарейка (% трафика), SLI (успех/латентность), BR, аннотации флагов.
Операционный дашборд: burn-down бюджета по дням, топ-инциденты, MTTR, проблемные когорты.
Еженедельные отчеты: остаток бюджета, тренды BR, технический долг (узкие места), план улучшений.

11) Процессы: инциденты, RCA и улучшения

Инцидент-менеджмент: алерт → оценка BR → масштаб канареек/флагов → откат/фикс.
RCA (корневая причина): факты/таймлайн/гипотезы/исправления/проверка эффекта по SLI.
Извлеченные уроки: некарательные пост-мортемы, обязательные action items с владельцами и сроками.
Замыкание цикла: изменения в тестах, фича-флагах, лимитах, кэшах, ретраях, квотах.

12) Комплаенс и аудит

SLO/SLI как артефакты контроля (policy-as-code, неизменяемые логи).
Привязка к требованиям (например, доступность платежных операций).
Доказательства: протоколы алертов, отчеты по бюджету, журналы релизов/откатов.

13) Частые ошибки и как их избежать

“99.99% или смерть”: недостижимые цели → постоянный алерт-шум. Выбирать реалистичные SLO.
Глобальные средние скрывают локальные провалы → вводить когорты.
Метрики не e2e: высокие SLO при фактической деградации на клиенте → добавлять RUM/синтетику.
Алерты по одному порогу → переходить на двухоконные burn rate.
Нет связи с изменениями → релизы не аннотированы, нет авто-отката.

14) Мини-чек-лист внедрения

  • Описаны критичные пути и их SLI/SLO.
  • Задано окно наблюдения и исключения.
  • Настроены двухоконные BR-алерты (быстрые и медленные).
  • Дашборды релизов и операций с аннотациями версий/флагов.
  • Политика error budget влияет на релизы.
  • Регулярные обзоры бюджета и пост-инцидентные RCA.
  • Документация и владельцы показателей.

15) Пример расчета (конкретика)

SLO доступности API: 99.9% за 28 дней → бюджет = 0.1%.
За 7 дней накопилось 0.06% ошибок → израсходовано 60% недельного бюджета.
На коротком окне 15 мин наблюдается 2% ошибок. Допустимо на этом окне: `0.1% × (15 мин / 40320 мин) ≈ 0.000037%`.
Burn Rate ≫ 1 (десятки ×) → срабатывает быстрый пейджер, канарейка откатывается до 1%, включается фича-флаг “degrade-payments-UX”, запускается RCA.

16) Итог

Мониторинг SLA/SLO — это не только цифры в отчете, а механизм управления риском изменений и качеством сервиса. Правильные SLI, реалистичные SLO, управление error budget, двухоконные burn-rate алерты и e2e-наблюдаемость превращают метрики в рабочие решения: быстрее выпускать ценность и держать пользовательский опыт предсказуемым.

Contact

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

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

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

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

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

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