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).

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