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)'.
  • Якість: частка коректних відповідей (без 5хх/функц. помилок).
  • Актуальність даних: затримка реплікації/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).

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