GH GambleHub

Monitoreo de infraestructura

Monitoreo de

1) Objetivos y marco

El monitoreo de la infraestructura es un sistema de señales de salud, rendimiento y disponibilidad de la plataforma. Debe:
  • Avisar de fallos antes que el usuario (detección temprana).
  • Dar diagnóstico de causa de origen (de symptom a causa).
  • Soporta lanzamientos de juego SLO y giros automáticos.
  • Alimentar análisis post-incidente (evidence as data).

Principios básicos: Observable por diseño, menos ruido - más señales, automatización de reacciones, un único panel de verdad.

2) Tríada de la observabilidad

Métricas (timeseries): velocidad/demanda/errores/saturación (USE/RED).
Registros: detalle de eventos con contexto; no contienen secretos/PII.
Tracks: tratamientos distribuidos de causalidad.

Además:
  • Perfiles (CPU/heap/lock/io), eBPF para el nivel del sistema.
  • Eventos/auditorías (K8s Eventos, cambios en las configuraciones/secretos).

3) SLI/SLO/SLA - lenguaje de calidad

SLI (indicador): 'disponibilidad', 'error _ rate', 'p95 _ latency', 'queue _ lag'.
SLO (objetivo): "solicitudes exitosas ≥ 99. 9% en 30 días".
Error Budget: desviación válida; se utiliza para los lanzamientos auto-parada.

Ejemplo de SLO (YAML):
yaml service: "api-gateway"
slis:
- name: success_rate query_good: sum(rate(http_requests_total{status!~"5.."}[5m]))
query_total: sum(rate(http_requests_total[5m]))
slo: 99. 9 window: 30d

4) Mapa de capas de monitoreo

1. Hosts/VM/nodos: CPU/Load/Steal, RAM/Swap, Disk IOPS/Latency, Filesystem.
2. Red/LB/DNS: RTT, paquetes/drops, backklog, SYN/Timeout, probes de salud.
3. Kubernetes/Orchestrator: servidor API, etcd, controladores, scheduler; pods/nodos, pending/evicted, throttling, kube-events.
4. Servicios/contenedores: RED (Rate/Errors/Duration), readiness/liveness.
5. Bases de datos/cachés: QPS, bloqueo wait, replication lag, buffer hit, slow queries.
6. Colas/buses: consumer lag, requeue/dead-letter, throughput.
7. Almacenamiento/nube: S3/Blob errores y latencia, 429/503 de los proveedores.
8. Límites perimetrales: WAF/Rate Limits, 4xx/5xx en rutas, CDN.
9. Sintética: comprobación HTTP de scripts (depósito/retiro), TLS/certificados.
10. Economía/capacidad: costo por servicio, utilidad, sala de estar.

5) Whitebox и Blackbox

Whitebox: exportadores/SDK dentro de los servicios (Prometheus, OpenTelemetry).
Blackbox: muestras externas de diferentes regiones (availability, latency, TLS expiry).
Combinar: «signo exterior» + «diagnóstico interior».

Ejemplo de 'blackbox _ exporter':
yaml modules:
https_2xx:
prober: http http:
method: GET preferred_ip_protocol: "ip4"

6) Kubernetes: señales clave

Кластер: `apiserver_request_total`, `etcd_server_has_leader`, etcd fsync.
Узлы: `container_cpu_cfs_throttled_seconds_total`, `node_pressure`.
Pods: Pending/CrashLoopBackOff, OOMKilled, restarts.
Planes/límites: Requests vs Limits, PodDisruptionBudget, HPA/VPA.
Red: NetworkPolicy drops, conntrack exhaustion.

Дашборды: «Cluster health», «Workload saturation», «Top erroring services».

7) DB y colas

PostgreSQL/MySQL: replication lag, deadlocks, slow query %, checkpoint I/O.
Redis/Memcached: hit ratio, evictions, rejected connections.
Kafka/RabbitMQ: consumer lag, unacked, requeue, broker ISR, disk usage.

8) Métricas de RED/USE y correlación de negocios

RED: `rate` (RPS), `errors` (4xx/5xx), `duration` (p95/p99).
USE (para recursos): Utilization, Saturation, Errors.
Vincule con el producto: los depósitos/pagos son un éxito, las banderas de Frod, la conversión son «guardas» en la liberación de Canarias.

9) Estructura de alerting

Tier-1 (page): incidentes que afectan a SLO (disponibilidad, 5xx, latencia, falla de componentes críticos de clúster).
Tier-2 (ticket): degradación de la capacidad, aumento de errores sin afectar el SLO.
Tier-3 (inform): tendencias, capacidad predictiva, certificados caducados.

Reglas de escalamiento: tiempo de silencio/compresión de duplicados, rotación on-call, «follow-the-sun».

Ejemplo de rutas de Alertmanager:
yaml route:
group_by: ["service","severity"]
receiver: "pager"
routes:
- match: { severity: "critical" }
receiver: "pager"
- match: { severity: "warning" }
receiver: "tickets"

10) Ejemplos de reglas Prometheus

10. 1 Errores 5xx con umbral SLO

yaml groups:
- name: api rules:
- alert: HighErrorRate expr:
sum(rate(http_requests_total{status=~"5.."}[5m])) /
sum(rate(http_requests_total[5m])) > 0. 005 for: 10m labels: { severity: "critical", service: "api-gateway" }
annotations:
summary: "5xx > 0. 5% 10m"
runbook: "https://runbooks/api-gateway/5xx"

10. 2 Quema de error-budget (burn multi-window)

yaml
- alert: ErrorBudgetBurn expr:
(1 - (
sum(rate(http_requests_total{status!~"5.."}[1m])) /
sum(rate(http_requests_total[1m]))
)) > (1 - 0. 999) 14 for: 5m labels: { severity: "critical", slo: "99. 9" }
annotations: { summary: "Fast burn >14x for 5m" }

10. 3 Saturación del sistema (CPU Throttling)

yaml
- alert: CPUThrottlingHigh expr: rate(container_cpu_cfs_throttled_seconds_total[5m]) > 0. 1 for: 10m labels: { severity: "warning" }
annotations: { summary: "CPU throttling >10%" }

11) Registros: recolección, normalización, retiro

Estandarización: registros JSON: 'ts',' level ',' service ',' trace _ id ',' user/tenant '.
Pipeline: agente (Fluent Bit/Vector) → búfer → índice/almacenamiento.
Revisión: enmascarar PII/secretos en el borde.
Retiro: almacenamiento de clase rápida (7-14 días), archivo «frío» (30-180 días).
Semántica: error budgets/deprecates - canales separados.

12) Senderos y OpenTelemetry

Utilice puntos de entrada (gateway), llamadas kliyent→servis, DB/caché/colas.
Vincule las métricas a los atributos de trais (Exemplars) para una navegación rápida.
OTel Collector como puerta de enlace central: filtrado, muestreo, exportación a las becendas seleccionadas.

Ejemplo de OTel Collector (fragmento):
yaml receivers: { otlp: { protocols: { http: {}, grpc: {} } } }
processors: { batch: {}, tail_sampling: { policies: [ { name: errors, type: status_code, status_codes: [ERROR] } ] } }
exporters: { prometheus: {}, otlp: { endpoint: "traces. sink:4317" } }
service:
pipelines:
metrics: { receivers: [otlp], processors: [batch], exporters: [prometheus] }
traces: { receivers: [otlp], processors: [tail_sampling,batch], exporters: [otlp] }

13) Sintética y comprobaciones externas

Huecos HTTP de los escenarios empresariales (inicio de sesión, depósito, retirada, compra).
TLS/Domain: duración de los certificados/CAA/DNS health.
Regionalidad: muestras de países clave/proveedores (enrutamiento/hojas de flujo).
La sintética debe alertarse si no está disponible para el usuario, incluso con telemetría interna verde.

14) Perfiles y eBPF

Perfil continuo: identificar funciones calientes, bloqueos.
eBPF: eventos del sistema (syscalls, retransmisiones TCP), en venta con un mínimo overhead.
Alertas de perfil sin estraticing (tickets), y para regresiones después de la liberación, como señal de retroceso.

15) Dashboards y «panel de la verdad»

Conjunto mínimo:

1. Platform Overview: SLI/SLO por servicios clave, error-budget, alertas.

2. API RED: RPS/ERRORS/DURATION a lo largo de las rutas.

3. K8s Cluster: control-plane, узлы, capacity headroom.

4. DB/Cache: lag/locks/slow query %, hit ratio.

5. Queues: backlog/lag, fallidos/repetidos.

6. Per-release: comparación de métricas antes/después (ventanas canarias).

7. FinOps: cost per namespace/service, idle/oversized ресурсы.

16) Incidentes, ruido de alerta y escaladas

Deduplicación: agrupación por servicio/causa, supresión de cascadas.
Silencio/mantenimiento: los lanzamientos/migraciones no deben «pintar» todo en rojo.
Runbooks: cada alerta crítica con pasos de diagnóstico y un «botón» de retroceso.
Postmortem: línea de tiempo, qué aprendieron, qué señales agregaron/limpiaron.

17) Seguridad en el monitoreo

RBAC para leer/editar reglas/datasors.
Secretos: tokens exportadores/agentes - a través de Secret Manager.
Aislamiento: métricas de clientes/tenantes - en espacios/leibs separados.
Integridad: la firma de agentes/builds, las confecciones a través de GitOps (merge-ruge).

18) Finanzas y capacidad (FinOps)

Cuotas y presupuestos; alertas para un crecimiento anormal.
Right-sizing: análisis de consultas/límites, eliminación de CPU/RAM, spot-instance para tareas no críticas.
«Coste per request/tenant» como KPI de eficiencia.

19) Anti-patrones

Sólo métricas de infraestructura sin SLIs personalizados.
100 + alertas «sobre todo» → ceguera on-call.
Los logs como única fuente (sin métricas ni treysing).
Dashboards mutables sin versionar/rugir.
Falta de sintética: «todo es verde», pero el frente no está disponible.
No hay ligamento con los lanzamientos: no se puede responder «qué cambió en el momento X».

20) Lista de verificación de implementación (0-60 días)

0-15 días

Identificar SLI/SLO para 3-5 servicios clave.
Habilitar exportadores/agentes básicos, estandarizar registros JSON.
Configurar alertas Tier-1 (availabilidad, 5xx, p95).

16-30 días

Agregue sintética en escenarios críticos.
Habilitar los tracks (OTel) en los servicios de entrada/crítica.
Los dashboards «Per-release» y error-budget burn-rules.

31-60 días

Cubrir el BD/colas/caché con señales avanzadas.
Implementar eBPF/perfilado para servicios de alta CPU.
GitOps para reglas/dashboards/alertas, limpieza regular del ruido.

21) Métricas de madurez

Cobertura SLO de servicios clave ≥ 95%.
MTTA/MTTR (objetivo: min/docenas de minutos).
Proporción de alertas Tier-1 cerradas por acción automática o por eliminación rápida.
Relación de alertas «útiles «/» ruidosas »> 3:1.
Cobertura sintética de todas las rutas «monetarias» = 100%.

22) Aplicaciones: mini plantillas

Prometheus - Disponibilidad por clase de estado

yaml
- record: job:http:availability:ratio_rate5m expr: sum(rate(http_requests_total{status!~"5.."}[5m])) / sum(rate(http_requests_total[5m]))

Grafana - Consejos para canarios


expr: histogram_quantile(0. 95, sum(rate(http_request_duration_seconds_bucket{version=~"stable    canary"}[5m])) by (le,version))

Alertmanager - Servicio y silencio

yaml receivers:
- name: pager slack_configs:
- channel: "#oncall"
send_resolved: true inhibit_rules:
- source_match: { severity: "critical" }
target_match: { severity: "warning" }
equal: ["service"]

23) Conclusión

El monitoreo no es un conjunto de gráficos, sino un sistema operativo SRE: SLI/SLO como contrato de calidad, métricas/tracks/logs como fuentes de verdad, alertas como señal controlada, sintética como «voz de usuario», GitOps como disciplina de cambio. Construya un único bucle desde el host hasta la API, enlazarlo en lanzamientos y revisiones, y la plataforma será predecible, rápida y económica.

Contact

Póngase en contacto

Escríbanos ante cualquier duda o necesidad de soporte.¡Siempre estamos listos para ayudarle!

Iniciar integración

El Email es obligatorio. Telegram o WhatsApp — opcionales.

Su nombre opcional
Email opcional
Asunto opcional
Mensaje opcional
Telegram opcional
@
Si indica Telegram, también le responderemos allí además del Email.
WhatsApp opcional
Formato: +código de país y número (por ejemplo, +34XXXXXXXXX).

Al hacer clic en el botón, usted acepta el tratamiento de sus datos.