Инструменты мониторинга API и инфраструктуры
1) Принципы: от целей к инструментам
SLO-first: выбирайте и настраивайте инструменты под продуктовые цели (логин, депозит, ставка), а не наоборот.
Open standards: OpenTelemetry (трейсы/метрики/логи), Prometheus exposition format, Loki JSON-логи.
Единый контекст: `trace_id`/`span_id` в логах и метриках; линки «дашборд → трейс → лог».
Cost-aware: кардинальность метрик, TTL логов, sampling трейсов — заранее.
2) Метрики: сбор, хранение, визуализация
Сбор: Prometheus / Agent-режим (VictoriaMetrics Agent, Grafana Agent, OpenTelemetry Collector).
Хранилища (TSDB): Prometheus (single), Thanos / Cortex / Mimir (горизонтальное масштабирование), VictoriaMetrics (экономия CPU/RAM).
Визуализация: Grafana как «стеклянная панель».
Что мерить для API (RED) и инфраструктуры (USE):- RED: `rate(requests)`, `error_ratio`, `latency p95/p99` по `route`, `method`, `provider`.
- USE: CPU/Mem, file descriptors, connection pools, queue lag, GC pauses.
- k8s: kube-state-metrics, node-exporter, cAdvisor, ingress/gateway exporters.
- БД/кэши: postgres_exporter, mysql_exporter, redis_exporter, kafka_exporter, rabbitmq_exporter.
- Сервис-мэш: Envoy metrics, istio/Linkerd dashboards.
- PSP/внешние: custom exporters (webhook success, PSP success ratio, callback latency).
promql
Успешность депозитов (SLI)
sum(rate(ig_payments_requests_total{route="/payments/deposit",status=~"2.."}[5m]))
/
sum(rate(ig_payments_requests_total{route="/payments/deposit"}[5m]))
p95 latency API histogram_quantile(0.95, sum(rate(http_request_duration_seconds_bucket[5m])) by (le, route))
Насыщение пула подключений к БД db_connections_in_use / db_connections_max3) Логи: поиск, корреляция, неизменяемость
Стек: OpenSearch/Elasticsearch + Beats/Vector/Fluent Bit или Grafana Loki (дешевле на хранении, «лог-как-стрим»).
Формат: JSON со стандартными полями `ts, level, service, env, trace_id, user_pid, route, status, latency_ms`.
Практики: маскирование PII, WORM-бакеты для аудита, TTL/ILM политики, партиционирование по `env/region/brand`.
4) Трассировка: где теряются миллисекунды
Стек: OpenTelemetry SDK/Collector → Jaeger/Tempo/Honeycomb/New Relic Traces.
Политика семплирования: 100% ошибок, адаптив для «медленных» запросов, 1–5% успешных.
Теги iGaming: `provider`, `psp`, `risk_decision`, `bonus_id`, `market`, `ws_table_id`.
Быстрый рецепт дебага: из красного графа SLO → трейс проблемного маршрута → «толстый» спан на PSP/игровом провайдере → лог вебхука.
5) APM-платформы: когда «всё-в-одном»
Коммерческие решения (Datadog, New Relic, Dynatrace, Grafana Cloud) закрывают APM, логи, трейсы, синтетику, RUM.
Плюсы: скорость внедрения, корреляция «из коробки». Минусы: стоимость/вендор-лок.
Гибрид: ядро на OSS (Prometheus+Grafana+Tempo+Loki), «дорисовывать» синтетику/алертинг коммерческими модулями по критичным флоу.
6) Синтетика и RUM: «снаружи» и «глазами игрока»
Синтетика: Checkly, Grafana Synthetic Monitoring, k6 Cloud, Uptrends, Pingdom, Catchpoint, ThousandEyes.
Скрипты: логин → депозит (sandbox) → запуск игры → проверка вебхука.
Гео: EU/LatAm/MEA/APAC, мобильные сети, ASN-микс.
RUM: Web-SDK (TTFB/LCP/CLS), мобильные SDK; сегментация по стране/сети/устройству.
7) Kubernetes-поверхности мониторинга
Control plane: etcd, API-server (apiserver_request_total, latency), scheduler/controllermanager.
Data plane: kubelet, CNI, ingress/gateway; `PodDisruptionBudget` и эвикшены.
Автоскейл: HPA/VPA/Cluster Autoscaler метрики и события; warm-пулы.
Сетевые политики: дропы/deny events, DNS latency.
8) Базы данных, очереди, кэши
Postgres/MySQL: лаг репликации, deadlocks, bloat, WAL, checkpoint duration, таймауты.
Kafka/RabbitMQ: consumer lag, rebalances, queue depth, redeliveries.
Redis: evictions, blocked clients, latency percentiles, реплика-лаг.
PITR/бэкапы: задачи backup-операторов + дашборд «время до восстановления».
9) Сеть, CDN, WAF, провайдеры игр и PSP
CDN/Edge: hit-ratio, TTFB по регионам, shield hit, «шторм промахов».
WAF/бот-менеджер: share челленджей/блоков, ASN/страны, FPR на логине/депозите.
Game providers: время запуска стола/слота, отказ/таймауты по студиям.
PSP: success ratio/latency по методу/стране/BIN, коды ошибок 3DS/AVS, webhooks success & delay.
10) Алертинг и дежурства
Роутинг: Alertmanager → PagerDuty/Opsgenie/Slack.
Правила: симптомные (SLO) + причинные (ресурсы).
Антишум: группировка, подавление цепных алёртов, окна тишины на релиз.
SLO-гейты в CD: авто-пауза/откат при нарушениях (Argo Rollouts/Flagger AnalysisRun).
Примеры алертов (упрощённо):- `login_success_ratio < 99.9% for 10m`
- `p95 /payments/deposit > 0.4s for 10m`
- `db_connections_saturation > 0.85 for 5m`
- `kafka_consumer_lag > 30s`
- `cdn_hit_ratio drop > 15% in 10m (per region)`
11) Дашборды, которые реально помогают
Флоу депозита: воронка, p95/p99, ошибки по PSP/BIN/странам, задержка вебхуков.
Live-игры/WS: подключения, RTT, resend/reconnect, ошибки по провайдерам.
Здоровье API: RED по маршрутам, saturations, top slow endpoints ↔ трейс.
DR-панель: replication lag, WAL shipping, synthetic login/deposit из DR-региона.
Security: WAF, bot score, 401/403 аномалии, подписанные вебхуки.
12) Управление стоимостью телеметрии
Кардинальность метрик: не включайте `user_id` в лейблы, лимиты на `route` и `provider`.
Downsampling и retention-классы (горячие 7–14 дней, тёплые 30–90, холодный архив).
Логи:скачок событий — включайте семплирование/дедуп; храните stacktrace отдельно.
Трейсы: динамическое sampling по «дорогим» путям (платежи/выводы).
13) Безопасность и приватность в мониторинге
mTLS от агентов до коллекторов; шифрование at-rest.
Псевдонимизация `user_pid`, запрет e-mail/телефона/документов в логах.
RBAC/MFA, WORM для аудита; DPA со сторонними провайдерами мониторинга.
14) Интеграция с CI/CD и автооткат
Экспозиция SLI как пром-метрик для CD-анализов.
Release labels (`version`, `rollout_step`) в метриках/логах/трейсах.
Автоматические канареечные гейты: деплой продолжится только при зелёных SLO.
15) Быстрый старт-стек (референс)
Сбор/транспорт: OTEL Collector + Prometheus/VM Agent + Fluent Bit.
Хранилище: VictoriaMetrics/Thanos (метрики), Loki/OpenSearch (логи), Tempo/Jaeger (трейсы).
Визуализация: Grafana + готовые дашборды k8s/Envoy/Postgres.
Синтетика & RUM: Checkly/k6 + Grafana RUM (или коммерческий аналог).
Алертинг: Alertmanager → PagerDuty/Slack; runbooks в ссылках.
16) Чек-лист внедрения (prod-ready)
- Определены SLO/SLI для логина/депозита/ставки/вывода.
- Метрики RED/USE + бизнес-SLI; единая онтология лейблов.
- Логи JSON с `trace_id`, маскирование PII, WORM для аудита.
- OpenTelemetry end-to-end; семплирование ошибок 100%.
- Синтетика из ключевых регионов + RUM в проде.
- Дашборды «флоу депозита», «WS», «здоровье API», «DR».
- Алертинг: SLO-симптомы + ресурсные причины; антишум.
- SLO-гейты подключены к CD; автооткат.
- План стоимости: ретеншен/семплирование/кардинальность.
- DPA/безопасность: mTLS, RBAC, приватность логов.
Резюме
Сильный мониторинг — это не набор «красивых графиков», а связная система: метрики RED/USE, логи с `trace_id`, OpenTelemetry-трассировки, синтетика и RUM, плюс дашборды, алертинг и SLO-гейты, встроенные в ваш CI/CD. Соберите стек вокруг открытых стандартов, контролируйте стоимость телеметрии и стандартизируйте онтологию лейблов — тогда любые проблемы с API и инфраструктурой будут видны заранее и чиниться до того, как их заметят игроки.
