Herramientas de monitoreo de API e infraestructura
1) Principios: de los objetivos a los instrumentos
SLO-first: elija y personalice las herramientas para los objetivos del producto (inicio de sesión, depósito, apuesta) y no viceversa.
Open standards: OpenTelemetry (tracks/métricas/logs), Prometheus exposition format, Loki JSON logs.
Contexto único: 'trace _ id '/' span _ id' en logs y métricas; links "dashboard → trace → logs'.
Coste-aware: la cardinalidad de las métricas, TTL de los registros, sampling de los tracks - por adelantado.
2) Métricas: recolección, almacenamiento, visualización
Сбор: Prometheus / Agent-режим (VictoriaMetrics Agent, Grafana Agent, OpenTelemetry Collector).
Almacenamiento (TSDB): Prometheus (single), Thanos/Cortex/Mimir (escala horizontal), VictoriaMetrics (ahorro de CPU/RAM).
Visualización: Grafana como «panel de vidrio».
Qué medir para la API (RED) y la infraestructura (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.
- Servicio principal: Envoy metrics, istio/Linkerd dashboards.
- PSP/внешние: custom exporters (webhook success, PSP success ratio, callback latency).
promql
Éxito de los depósitos (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))
Saturación de la agrupación de conexiones a la base de datos db_connections_in_use/ db_connections_max3) Registros: búsqueda, correlación, inmutabilidad
Pila: OpenSearch/Elasticsearch + Beats/Vector/Fluent Bit o Grafana Loki (más barato en almacenamiento, «logs-as-stream»).
Formato: JSON con campos estándar 'ts, level, service, env, trace_id, user_pid, route, status, latency_ms'.
Prácticas: enmascaramiento PII, baquetas WORM para auditoría, política TTL/ILM, partitura por 'env/region/brand'.
4) Seguimiento: donde se pierden milisegundos
Стек: OpenTelemetry SDK/Collector → Jaeger/Tempo/Honeycomb/New Relic Traces.
Política de muestreo: 100% de errores, adaptable para consultas «lentas», 1-5% de éxito.
Теги iGaming: `provider`, `psp`, `risk_decision`, `bonus_id`, `market`, `ws_table_id`.
La receta rápida del debag: del gráfico SLO rojo → el trace de la ruta problemática → «gordo» dormido en el proveedor de PSP/juego → el registro del webhook.
5) Plataformas APM: cuando «todo en uno»
Las soluciones comerciales (Datadog, New Relic, Dynatrace, Grafana Cloud) cierran APM, logs, tracks, sintéticos, RUM.
Pros: velocidad de implementación, correlación fuera de la caja. Contras: costo/vendedor-lock.
Híbrido: kernel en OSS (Prometheus + Grafana + Tempo + Loki), «download» sintético/alerting por módulos comerciales sobre flows críticos.
6) Sintética y RUM: «afuera» y «a través de los ojos del jugador»
Синтетика: Checkly, Grafana Synthetic Monitoring, k6 Cloud, Uptrends, Pingdom, Catchpoint, ThousandEyes.
Scripts: inicio de sesión → depósito (sandbox) → lanzamiento del juego → verificación de webhook.
Geo: EU/LatAm/MEA/APAC, redes móviles, mezcla ASN.
RUM: Web-SDK (TTFB/LCP/CLS), SDK móviles; segmentación por país/red/dispositivo.
7) Kubernetes-superficies de monitoreo
Control plane: etcd, API-server (apiserver_request_total, latency), scheduler/controllermanager.
Data plane: kubelet, CNI, ingress/gateway; `PodDisruptionBudget` и эвикшены.
Auto Scale: HPA/VPA/Cluster Autoscaler métricas y eventos; grupos warm.
Políticas de red: eventos de drops/deny, latencia DNS.
8) Bases de datos, colas, cachés
Postgres/MySQL: maga replicación, deadlocks, bloat, WAL, checkpoint duration, timeouts.
Kafka/RabbitMQ: consumer lag, rebalances, queue depth, redeliveries.
Redis: evictions, blocked clients, latency percentiles, réplica-amb.
PITR/backups: tareas de operadores de backup + dashboard «tiempo de recuperación».
9) Red, CDN, WAF, proveedores de juegos y PSP
CDN/Edge: hit-ratio, TTFB por región, shield hit, «tormenta de errores».
WAF/bot manager: share challenge/blocks, ASN/country, FPR en inicio de sesión/depósito.
Providers de juegos: tiempo de inicio de la mesa/ranura, failover/timeout por estudios.
PSP: éxito ratio/latencia por método/país/BIN, códigos de error 3DS/AVS, webhooks success & delay.
10) Alerta y servicio
Routing: Alertmanager → PagerDuty/Opsgenie/Slack.
Reglas: sintomático (SLO) + causal (recursos).
Anti-ruido: agrupación, supresión de alertas en cadena, ventanas de silencio para la liberación.
SLO-gates en CD: Auto-pausa/retroceso en caso de infracciones (Argo Rollouts/Flagger AnalysisRun).
Ejemplos de alertas (simplificado):- `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) Dashboards que realmente ayudan
Flow del depósito: embudo, p95/p99, errores por PSP/BIN/países, retraso de webhooks.
Juegos en vivo/WS: conexiones, RTT, resend/reconnect, errores por proveedores.
API salud: RED en las rutas, saturations, top slow endpoints ↔ trace.
Panel DR: Replication log, WAL shipping, synthetic login/deposite desde la región DR.
Seguridad: WAF, bot score, 401/403 anomalías firmadas por webhooks.
12) Gestión del coste de telemetría
Cardinalidad de métricas: no incluya 'user _ id' en etiquetas, límites en 'route' y 'provider'.
Downsampling y retention-classes (caliente 7-14 días, cálido 30-90, frío archivo).
Registros: salto de eventos - incluya sampling/dedoop; almacene la estaca por separado.
Tracks: sampling dinámico por caminos «caros» (pagos/conclusiones).
13) Seguridad y privacidad en el monitoreo
mTLS desde agentes hasta colectores; encriptación at-nat.
Seudonimización de 'user _ pid', prohibición de correo electrónico/teléfono/documentos en los logs.
RBAC/MFA, WORM para auditoría; DPA con proveedores de monitoreo de terceros.
14) Integración con CI/CD y autocorrección
Exposición de SLI como métrica prom para análisis de CD.
Release labels ('versión', 'rollout _ step') en métricas/logs/tries.
Gates canarios automáticos: el deploy solo continuará con los SLO verdes.
15) Stack de inicio rápido (referencia)
Recogida/transporte: OTEL Collector + Prometheus/VM Agent + Fluent Bit.
Almacenamiento: VictoriaMetrics/Thanos (métricas), Loki/OpenSearch (registros), Tempo/Jaeger (tracks).
Visualización: Grafana + acabados dashboards k8s/Envoy/Postgres.
Sintética & RUM: Checkly/k6 + Grafana RUM (o análogo comercial).
Alerta: Alertmanager → PagerDuty/Slack; runbooks en los enlaces.
16) Lista de comprobación de la implementación (prod-ready)
- SLO/SLI definidos para el inicio de sesión/depósito/apuesta/retiro.
- Métricas de RED/USE + SLI empresarial; una ontología unificada de etiquetas.
- Registros JSON con 'trace _ id', enmascaramiento PII, WORM para auditoría.
- OpenTelemetry end-to-end; sampling errores 100%.
- Sintética de regiones clave + RUM en venta.
- Dashboards «depósito flow», «WS», «API salud», «DR».
- Alerting: síntomas de SLO + causas de recursos; anti-ruido.
- Las puertas SLO están conectadas a un CD; autocartera.
- Plan de valor: Retenchen/sampling/cardinality.
- DPA/seguridad: mTLS, RBAC, privacidad de los registros.
Resumen
Un fuerte monitoreo no es un conjunto de «gráficos hermosos», sino un sistema conectado: métricas RED/USE, registros con 'trace _ id', rastreo OpenTelemetry, sintética y RUM, además de dashboards, alertas y getas SLO incorporadas en su CI/CUM D. Reúne una pila alrededor de los estándares abiertos, controla el costo de la telemetría y estandariza la ontología de las etiquetas, entonces cualquier problema con la API y la infraestructura se verá de antemano y se arreglará antes de que los jugadores los noten.
