GH GambleHub

Операції та Управління → Метрики продуктивності

Метрики продуктивності

1) Навіщо потрібні метрики продуктивності

Продуктивність - це здатність системи забезпечувати цільові SLO за часом відгуку і пропускної здатності при заданій вартості. Без метрик неможливо:
  • виявляти деградації до інцидентів,
  • прогнозувати ємність і бюджет,
  • порівнювати альтернативні рішення (кеш vs БД, gRPC vs REST),
  • управляти регресіями після релізів.

Принципи: єдиний словник метрик, агрегування по перцентилях (p50/p90/p95/p99), роздільний облік «гарячих» і «холодних» шляхів, контекст (версія, регіон, провайдер, пристрій).

2) Таксономія метрик

2. 1 Базові SRE-рамки

Чотири золотих сигнали: Latency, Traffic, Errors, Saturation.
RED (для мікросервісів): Rate, Errors, Duration.
USE (для заліза): Utilization, Saturation, Errors.

2. 2 Рівні

Інфраструктура: CPU, RAM, диск, мережа, контейнери, вузли.
Платформа/Сервіси: API-ендпойнти, черги, кеші, БД, шини подій.
Клієнтський досвід: Web Vitals, мобільні SDK, стрімінг, CDN.
Дата-платформа: ETL/ELT, стріми, вітрини, BI затримки.
Бізнес-критичні флоу: авторизація, KYC, депозити/виплати, гейм-раунди.

3) Каталог ключових метрик і формули

3. 1 API і мікросервіси

RPS (Requests per second).
Latency p50/p95/p99 (ms) - бажано «end-to-end» і «backend-only».
Error Rate (%) = 5xx + валідовані 4xx/всі запити.
Saturation: середня довжина черги воркерів, «in-flight» запити.
Cold Start Rate (для FaaS).
Throttling/Dropped Requests.

SLO приклад: p95 latency ≤ 250 ms при RPS до 2k в регіоні EU-East; помилки ≤ 0. 5%.

3. 2 Бази даних

QPS/Transactions/s, avg/median query time, p95 query time.
Lock Waits / Deadlocks, Row/Index Hit Ratio, Buffer Cache Miss%.
RepLag (реплікація), Checkpoint/Flush time, Autovacuum lag.
Hot Keys/Skew - топ-N ключів по навантаженню.

Формула «Запитів на ядро»: QPS/ vCPU_core_count → сигнал для шардування.

3. 3 Кеш і CDN

Hit Ratio (%), Evictions/s, Latency p95, Item Size percentiles.
Origin Offload (%) для CDN, TTFB, Stale-while-revalidate hit%.

3. 4 Черги/стріми

Ingress/egress msg/s, Consumer Lag (повідомлень/час), Rebalance rate.
Processing Time p95, DLQ Rate.

3. 5 Інфраструктура/контейнери

CPU Utilization %, CPU Throttle %, Run Queue length.
Memory RSS/Working Set, OOM kills, Page Faults.
Disk IOPS/Latency/Throughput, Network RTT/ retransmits.
Node Saturation: pods pending, pressure (CPU/Memory/IO).

3. 6 Web-клієнт (UX)

Core Web Vitals: LCP, INP, CLS.
TTFB, FCP, TTI, Resource Timing (DNS, TLS, TTFB, download).
Error Rate (JS), Long Tasks, SPA route change time.
CDN Geo-Latency (перцентильний).

3. 7 Мобільний клієнт

App Start time (cold/warm), ANR rate, Crash-free sessions %.
Network round-trips/session, Payload size, Battery drain/session.
Offline success rate (кешовані операції).

3. 8 Дата-платформа і звітність

Freshness Lag (T-now → витрина), Throughput rows/s, Job Success %.
Cost per TB processed, Skew по партіях, Late events%.
BI Time-to-Render p95 для ключових дашбордів.

3. 9 Доменно-критичні флоу (iGaming як приклад)

Auth p95, KYC TTV (Time-to-Verify), Deposit/Withdrawal p95.
Game Round Duration p95, RNG call latency, Provider RTT p95.
Payment PSP success rate, Chargeback investigation SLA.

4) Нормалізація, перцентилі та атрибуція

Перцентили проти середніх: фіксуємо p50/p90/p95/p99 - середні згладжують пікові болі.
Розрізи: версія програми, регіон, провайдер, канал мережі (4G/Wi-Fi), пристрій.
Кореляція: пов'язуємо «backend-only» і «real-user» метрики для причинно-наслідкових ланцюжків.
Exemplars/Traces: пов'язуємо екстремальні перцентілі з трасуваннями.

5) Пороги і алерти (приблизна сітка)

Latency p95 (core API): warning> 250 ms, critical> 400 ms 5 хв поспіль.
Error rate: warning > 0. 5%, critical> 2% (за ендпойнтом, не глобально).
DB RepLag: warning > 2 s, critical > 10 s.
Kafka consumer lag (time): warning > 30 s, critical > 2 min.
Web LCP (p75): warning > 2. 5 s, critical > 4 s.
Mobile ANR: warning > 0. 5%, critical > 1%.
ETL Freshness: warning > +15 min, critical > +60 min от SLA.

Використовуємо статичні + адаптивні пороги (сезонність, денні шаблони), дедуплікацію та групування алертів за сервісами/релізами.

6) Тестування продуктивності

Типи: baseline, стрес, тривале (soak), хаос (degrade links/PSP).
Навантажувальні профілі: за реальними трейсами (distribution-based), «бурсти», регіональні піки.
Цілі: досягнення SLO при цільових RPS і mix операцій, валідація backpressure.
Метрики прогону: Throughput, Error%, p95 latency, GC паузы, CPU throttle, queue lag, cost/run.

Правило регресій: реліз вважається успішним, якщо p95 не погіршений> 10% при рівному профілі, а вартість запиту (CPU-ms/запит) не зросла> 15%.

7) Планування ємності та ціна/продуктивність

Demand model: RPS по годинах × середня робота/запит (CPU-ms, IO-ops).
Headroom: 30-50% запасу для критичних шляхів, auto-scaling по P95.
Cost KPIs: Cost per 1k requests, Cost per GB served, $ per 1 p. p. LCP поліпшення.
Кешування/денормалізація: вважати «cache ROI» = (економія CPU-ms − вартість кешу).
Теплі та холодні регіони: offload в CDN/edge, реплікація «тільки читання».

8) Практики спостережуваності та профілювання

Трасування: розподілені trace-ID через всі hop'и; семплювання розумне (tail-based).
Метрики: Prometheus/OpenTelemetry, єдина нотація імен і лейблів.
Логи: з кореляцією по trace/span, budget на лог-шум, редагування PII.
Профілювальники: CPU/Heap/Alloc/Lock profiles, безперервне профілювання (eBPF).
Екземпляри-зразки: зв'язуємо p99 сплески з конкретними span/SQL/PSP-колом.

9) Метрики релізів і команд (для повноти)

DORA: Deployment Frequency, Lead Time, Change Failure Rate, MTTR.
SPACE: задоволеність, продуктивність, активність, комунікація, ефективність.
Ці метрики не про залізо, але безпосередньо впливають на стійкість продуктивності.

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

Гнатися за середніми: ігнорування p95/p99.
«Глобальний» error rate: приховує хворобливі ендпойнти.
Без атрибуції за версіями: неможливо ловити регресії клієнта.
Алерт-спам: пороги без гістерезису і корекції сезонності.
Оптимізація «наосліп»: відсутність профілювання і трасувань.
Змішування UX і backend latency: неправильні висновки з клієнтського досвіду.

11) Чек-листи

Єдиний стандарт метрик

  • Словник метрик з формулами, одиницями, власниками
  • Обов'язкові перцентилі p50/p90/p95/p99
  • Трейс-кореляція та лог-кореляція
  • Теги: регіон, версія, провайдер, пристрій, канал мережі
  • Пороги з гістерезисом і дедуплікацією

Перед релізом

  • Бейзлайн p95/p99 на стейджі та проді
  • Канарковий трафік + порівняння метрик A/B
  • Фіча-прапор з швидким відкатом
  • План спостереження (observability runbook)

Регулярно

  • Рев'ю найповільніших топ-N запитів/SQL
  • Аудит кеш-політик і TTL
  • Перевірка Freshness і реплікацій БД
  • Тести деградації зовнішніх провайдерів (PSP, KYC)

12) Міні-плейбуки (приклад)

Деградація p95/api/payments

1. Звірити error% і зовнішні таймаути PSP.
2. Перевірити consumer lag черги коллбеків.
3. Переглянути trace прикладів p99: вузьке місце SQL/HTTP?
4. Включити кеш довідників/лімітів, знизити N + 1.
5. Бюджет: тимчасово підняти ресурси воркера на 20%, включити autoscale.
6. Post-fix: індекс за (psp_id, status, created_at), ретрай-джиттер.

Зростання RepLag в БД

1. Перевірити «важкі» запити і довгі транзакції.
2. Збільшити паралелізм реплікації, тюнити checkpoint.
3. Offload читання в кеш/репліки тільки читання.
4. При пікових вікнах - частковий денорм + батчі.

13) Приклади формул/SQL (спрощено)

Error Rate по ендпойнту

sql
SELECT endpoint,
100. 0 SUM(CASE WHEN status >= 500 THEN 1 ELSE 0 END) / COUNT() AS error_pct
FROM http_logs
WHERE ts >= now() - interval '5 minutes'
GROUP BY 1
HAVING COUNT() > 500;

Latency p95 (TDigest/Approx)

sql
SELECT endpoint, approx_percentile(latency_ms, 0. 95) AS p95_ms
FROM http_metrics
WHERE ts >= date_trunc('hour', now())
GROUP BY 1;

Consumer Lag (час)

sql
SELECT topic, consumer_group,
max(produced_ts) - max(consumed_ts) AS lag_interval
FROM stream_offsets
GROUP BY 1,2;

Web LCP p75

sql
SELECT approx_percentile(lcp_ms, 0. 75) AS lcp_p75
FROM web_vitals
WHERE country = 'UA' AND device IN ('mobile','tablet')
AND ts >= current_date;

14) Вбудовування в дашборди і звітність

Картки KPI: p95 latency, error%, RPS, saturation з трендами WoW/DoD.
Топ-N «найгірших» ендпойнтів/SQL/ресурсів, клікабельний drill-down → trace.
Кореляція версій клієнта: граф «версія → p95 LCP/INP → конверсія».
Карта світу: geo-latency (CDN), PSP latency по регіонах.
SLO-панель: частка часу в SLO, вильоти з SLO, «бюджет помилок».

15) Підсумки

Метрики продуктивності - це системна дисципліна: єдиний словник, перцентили, атрибуція, хороша спостережуваність і строгі SLO. Комбінуючи технічні (латентність, лаги, кеш-хіти) і продуктові сигнали (час KYC, депозит p95, LCP), ви керуєте якістю досвіду і вартістю його доставки - передбачувано і масштабовано.

Contact

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

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

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

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

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

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