Observabilidad
Capacidad de entender el estado interno de un sistema a partir de sus outputs externos: logs, métricas y traces, permitiendo diagnosticar problemas sin acceso directo al sistema.
¿Qué es?
Observabilidad es la capacidad de entender qué está pasando dentro de un sistema basándose en los datos que produce. A diferencia del monitoreo (que verifica condiciones conocidas), la observabilidad permite investigar problemas desconocidos.
Los tres pilares
Logs
Registros textuales de eventos:
- Structured logging (JSON) para búsqueda eficiente
- Niveles: DEBUG, INFO, WARN, ERROR
- Correlación con trace IDs
Métricas
Mediciones numéricas agregadas en el tiempo:
- Counters: valores que solo incrementan
- Gauges: valores que suben y bajan
- Histograms: distribución de valores
Traces
Seguimiento de requests a través de servicios distribuidos:
- Span: unidad de trabajo
- Trace: conjunto de spans relacionados
- Context propagation: pasar trace ID entre servicios
OpenTelemetry
Estándar CNCF que unifica la instrumentación de logs, métricas y traces con SDKs para todos los lenguajes principales.
Herramientas
| Herramienta | Tipo |
|---|---|
| Grafana | Dashboards |
| Prometheus | Métricas |
| Jaeger/Tempo | Traces |
| Loki | Logs |
| Datadog | All-in-one |
| AWS CloudWatch | AWS native |
¿Por qué importa?
La observabilidad es lo que permite entender el comportamiento de un sistema en producción sin predecir de antemano qué preguntas necesitarás responder. A diferencia del monitoreo tradicional, que verifica condiciones conocidas, la observabilidad permite investigar lo desconocido.
Referencias
- OpenTelemetry — Estándar de observabilidad.
- Observability Engineering — Charity Majors et al.
- OpenTelemetry Documentation — OpenTelemetry, 2024. Documentación completa del estándar.