Skip to content
SP StackPractices
intermediate

Guía de Logging, Monitoreo y Observabilidad

Guía para construir sistemas observables con logging estructurado, métricas y tracing distribuido.

Resumen

La observabilidad es la capacidad de entender el estado interno de un sistema examinando sus salidas. Los tres pilares — logs, métricas y traces — proveen diferentes perspectivas sobre el comportamiento del sistema.

Los Tres Pilares

PilarPreguntaGranularidadRetención
Logs¿Qué pasó?Alta (eventos individuales)Días a semanas
Métricas¿Cómo está la tendencia?Baja (agregada)Meses a años
Traces¿Dónde se fue el tiempo?Media (caminos de requests)Días a semanas

Logging Estructurado

Reemplaza texto libre por JSON parseable por máquinas.

Formato

{
  "timestamp": "2026-06-11T14:32:01Z",
  "level": "ERROR",
  "message": "Pago fallido",
  "service": "billing-api",
  "trace_id": "abc123",
  "user_id": "user_456",
  "amount": 99.99,
  "error": "Tarjeta rechazada",
  "duration_ms": 245
}

Niveles de Log

NivelCaso de UsoEjemplo
DEBUGDetalle de desarrolloValores de variables, iteraciones de loops
INFOOperaciones normalesRequest completado, job iniciado
WARNInesperado pero manejadoReintento realizado, API deprecada usada
ERROROperación fallidaRequest fallido, excepción atrapada
FATALIndisponibilidad del sistemaConexión a base de datos perdida

Métricas

Las métricas son puntos numéricos recolectados a lo largo del tiempo.

Tipos de Métricas

TipoDescripciónEjemplo
CounterSolo aumentaRequests servidos, errores ocurridos
GaugePuede subir o bajarTamaño actual de cola, uso de memoria
HistogramDistribución de valoresDuración de request, tamaño de payload
SummaryPercentiles calculadosLatencia p95, latencia p99

Tracing Distribuido

Los traces siguen un request a través de múltiples servicios.

Trace ID: abc123
├── Service A: 5ms  (HTTP request recibido)
├── Service B: 12ms (Auth check)
├── Service C: 45ms (Database query)
│   ├── Adquirir conexión: 2ms
│   ├── Ejecución de query: 30ms
│   └── Mapeo de resultados: 13ms
└── Service D: 8ms  (Formato de respuesta)

Alerting

Alertar sobre síntomas, no causas.

Niveles de Severidad de Alertas

SeveridadTiempo de RespuestaEjemplo
CríticoInmediatoServicio caído, riesgo de pérdida de datos
WarningDentro de 1 horaTasa de error elevada, alta latencia
InfoPróximo día hábilCapacidad cercana al límite

Buenas Prácticas

  • Usar correlation IDs: Pasa trace_id a través de cada llamada de servicio
  • Loguear en boundaries: Entrada/salida de requests, jobs y transacciones
  • Evitar loguear datos sensibles: No passwords, tokens o PII
  • Establecer SLOs y error budgets: Define qué significa “bueno” y mide contra eso
  • La alert fatigue es real: Pagear solo para issues accionables y críticos

Errores Comunes

  • Loguear todo a nivel INFO
  • Métricas sin labels (sin dimensiones para cortar)
  • Alertar sobre uso de CPU en vez de síntomas orientados a usuarios
  • Almacenar logs indefinidamente sin política de retención