
Observabilidad real contra monitoreo pasivo: dashboards de Grafana que sirven en guardia
⚡ Puntos clave (TL;DR)
- Monitoreo vs. Observabilidad: El monitoreo pasivo mide la máquina (CPU, memoria); la observabilidad mide la experiencia del usuario y responde si el cliente puede o no realizar transacciones.
- Metodologías claras: Distingue entre Señales Doradas (Google SRE: Latencia, Tráfico, Errores, Saturación), RED (Rate, Errors, Duration para microservicios) y USE (nodo/hardware).
- Alertas por Burn Rate: Utiliza ventanas largas y cortas para evitar alertas falsas y falsos apagados tardíos durante incidentes graves.
- Precisión en PromQL: Aplica siempre
rate()antes de agrupar consum()y evita consultar rangos de 30 días de golpe usando reglas de grabación. - Generación Automática: Usa herramientas como Sloth, Pyrra o Grafana SLO en lugar de escribir manualmente decenas de reglas de alertas sujetas a desincronizaciones.

El problema de la mayoría de las organizaciones no es que falten métricas. Es que sobran.
Un turno de guardia típico tiene el dashboard de Grafana pareciendo la cabina de un avión: cuarenta gráficas de CPU, memoria y disco, todas moviéndose, ninguna respondiendo la única pregunta que importa a las 3 de la mañana. ¿El usuario puede comprar o no puede comprar? Eso es monitoreo pasivo. Mide la máquina y confía en que la máquina represente al usuario. Casi nunca lo hace.
Deja de mirar la CPU
CPU al 90% no es un problema. A veces es un proceso batch bien optimizado exprimiendo el hardware que ya pagaste. Lo que sí es un problema es que el 5% de los checkouts tarde más de dos segundos, y eso no aparece en ninguna gráfica de sistema.
Aquí conviene ordenar el vocabulario, porque circula mezclado y las tres cosas tienen autor:
- Las cuatro señales doradas: Son del capítulo 6 del libro de SRE de Google: latencia, tráfico, errores y saturación. Esa cuarta es la que se cae de casi todas las listas que se citan por ahí. Saturación es "cuán lleno está tu servicio", enfatizando el recurso más restringido.
- RED: Creado por Tom Wilkie en 2015 (Rate, Errors, Duration). Es deliberadamente distinto para microservicios sin estado, eliminando saturación.
- USE: Creado por Brendan Gregg en 2012 (Utilization, Saturation, Errors) para medir el nodo o hardware, no el servicio.
SLI, SLO, SLA, y el error budget
Las definiciones del capítulo 4 del libro de SRE sin adornos: El SLI es la medida cuantitativa. El SLO es el objetivo sobre esa medida. El SLA es el contrato con consecuencias. Si no hay consecuencia explícita ante un fallo, es simplemente un SLO.
"El 99.9% de los logins se completa en menos de 500 ms" es un SLO. "El sistema debe ser rápido" es una aspiración con formato de requisito.
De ahí sale el error budget. Si tu objetivo es 99.9%, tienes un presupuesto de error del 0.1% sobre la ventana. Ese presupuesto es tuyo. Gástalo, para eso está.
Las tablas de burn rate, con los números correctos
La tabla 5-8 del SRE Workbook, para un SLO del 99.9% sobre 30 días, tiene tres filas fundamentales:
| Severidad | Ventana larga | Ventana corta | Burn rate | Presupuesto consumido |
|---|---|---|---|---|
| Page | 1 hora | 5 minutos | 14.4 | 2% |
| Page | 6 horas | 30 minutos | 6 | 5% |
| Ticket | 3 días | 6 horas | 1 | 10% |
PromQL que no miente
Umbrales estáticos tipo cpu > 80% alertan sobre causas posibles, no sobre daño real. Antes de las consultas, tres reglas de oro sobre rate():
- Los reinicios de contador sí se manejan: Prometheus ajusta automáticamente las rupturas de monotonía.
- Peligro con gauges: Usar
rate()sobre un gauge genera datos erróneos. Usa solo contadores. - Primero rate, después agregación: Siempre ejecuta
sum(rate(x[5m]))y no al revés.
No consultes 30 días de golpe
Lo correcto es grabar una ventana corta y promediarla sobre el periodo mediante reglas de grabación:
sum_over_time(job:slo_errors_per_request:ratio_rate5m{job="api"}[30d])
/
count_over_time(job:slo_errors_per_request:ratio_rate5m{job="api"}[30d])
No escribas esto a mano
Existen excelentes opciones para automatizar este proceso sin mantener cientos de líneas de reglas PromQL a mano:
- Sloth: Open source, genera reglas de grabación y alertas multiventana desde especificaciones YAML.
- Pyrra: Soporta cuatro tipos de SLOs, incluyendo histogramas nativos.
- Grafana SLO: Integración en Grafana Cloud gestionable por Terraform.
Sobre la carga de guardia
Según el libro de SRE de Google, un incidente cuesta en promedio 6 horas contando remediación y postmortem, derivando en un máximo sostenible de 2 incidentes por turno de 12 horas.
🎥 Video explicativo
Profundiza sobre conceptos clave de observabilidad, métricas y dashboards efectivos a continuación:

