técnica
etapa: operate
2 min de lectura
Observabilidad: métricas, logs y traces
El monitoreo te dice que algo está mal; la observabilidad te permite preguntar por qué. Tres señales, unas pocas métricas de oro y alertas sobre síntomas cubren la mayoría de las necesidades.
Prometheus + GrafanaOpenTelemetryLoki / ElasticsearchTempo / JaegerAlertmanagerSentry
Las tres señales
- Métricas: números a lo largo del tiempo (tasa de solicitudes, tasa de errores, latencia, CPU). Baratas de almacenar e ideales para dashboards y alertas.
- Logs: registros de eventos con timestamp. Detalle rico para depurar; usa logs estructurados (JSON) con un id de solicitud.
- Traces: el camino de una solicitud a través de los servicios, con el tiempo gastado en cada uno. La herramienta para "¿dónde está lento?"
- Conéctalos: un trace id en los logs y un enlace desde un pico de métrica a traces de ejemplo convierten tres herramientas en una sola investigación.
Qué medir
Las cuatro sirven para casi cualquier servicio: latencia, tráfico, errores y saturación. Para solicitudes orientadas al usuario, sigue tasa, errores y duración (el método RED); para recursos, sigue utilización, saturación y errores (el método USE).
# tasa de errores en 5 minutos
sum(rate(http_requests_total{status=~"5.."}[5m]))
/ sum(rate(http_requests_total[5m]))
# latencia en el percentil 95
histogram_quantile(0.95, sum by (le) (rate(http_request_duration_seconds_bucket[5m])))Alertas en las que la gente confía
- Alerta sobre síntomas que sienten los usuarios (errores, latencia, disponibilidad), no sobre cada causa (la CPU de un pod).
- Toda alerta necesita un dueño, una severidad y un enlace al runbook que diga qué revisar primero.
- Haz page solo por lo que necesita a una persona ahora; manda el resto a una cola de tickets.
- La fatiga de alertas es un problema de confiabilidad: borra o corrige las alertas ruidosas.
- Alerta por la tasa de consumo (burn rate) del en lugar de umbrales crudos (ver el tema de SRE).
groups:
- name: api
rules:
- alert: HighErrorRatio
expr: |
sum(rate(http_requests_total{job="api",status=~"5.."}[5m]))
/ sum(rate(http_requests_total{job="api"}[5m])) > 0.02
for: 10m
labels: { severity: page }
annotations:
summary: "Tasa de errores de la API por encima de 2% durante 10 minutos"
runbook: "https://wiki.example.com/runbooks/api-errors"Hábitos
- Instrumenta con un estándar (OpenTelemetry) en lugar de una biblioteca específica de un proveedor.
- Controla la cardinalidad: un label con valores ilimitados (id de usuario) puede tumbar un sistema de métricas.
- No registres secretos ni datos personales en los logs.
- Revisa los dashboards después de cada incidente: ¿qué lo habría mostrado antes?
conexiones en el mapa
- Fundamentos de Kuberneteses observado porObservabilidad: métricas, logs y traces
- Observabilidad: métricas, logs y tracesalimenta los SLOs deConfiabilidad: SLOs, error budgets e incidentes
actualizado el 14/10/2026 · fuentes para profundizar · reportar un error
en otros dominios
- Telemetría de borde y de aplicaciónsecopsla misma disciplina de telemetría, de plataforma y de seguridad
Estudia antes
Desbloquea
pon a prueba lo que entendiste
Cargando preguntas…