Los Tres Pilares de la Observabilidad: Métricas, Logs y Trazas
Métricas (Prometheus): valores numéricos agregados a lo largo del tiempo (requests/sec, latencia p99, uso de CPU, conexiones JDBC libres). Logs (Loki): registros textuales enriquecidos con contexto de eventos ocurridos. Trazas Distribuidas (Tempo / Jaeger): el recorrido completo de una petición a través de múltiples microservicios con spans y tiempos de ejecución.
En una línea Métrica alerta en Grafana -> Clic en el TraceID en Tempo -> Abre directamente los logs correlacionados en Loki con el mismo TraceID.
# compose.yaml: Grafana + Loki + Tempo + Prometheus + colector OpenTelemetry
services:
lgtm:
image: grafana/otel-lgtm:latest
ports:
- "3000:3000" # Grafana (admin / admin)
- "4317:4317" # OTLP gRPC
- "4318:4318" # OTLP HTTP: aquí envía la aplicación trazas, métricas y logs
# Con spring-boot-docker-compose en el classpath, Spring Boot 3.4+ arranca este compose
# al ejecutar la aplicación y configura automáticamente los endpoints OTLP.
Cómo funciona por dentro
Las métricas son valores numéricos agregados en el tiempo (peticiones por segundo, latencia p99, uso de memoria). Son baratas de almacenar, ideales para paneles y alertas, y responden «¿algo va mal?». Los logs son eventos discretos con detalle (qué pedido falló y por qué) y responden «¿qué pasó exactamente?». Las trazas siguen una petición a través de todos los servicios y operaciones que toca, con su duración, y responden «¿dónde se va el tiempo o dónde falla?».
Cada pilar por separado se queda corto. La potencia aparece al correlacionarlos con un identificador común, el trace id: una alerta de latencia lleva a una traza lenta, la traza señala el servicio y el tramo culpable, y sus logs explican el motivo.
El stack LGTM de Grafana cubre los tres con herramientas abiertas: Loki para logs, Grafana para visualizar, Tempo para trazas y Mimir o Prometheus para métricas. OpenTelemetry es el estándar para generar y transportar las señales sin atarse a un proveedor.
Se conecta con SREGrafana LGTM StackMTTR (Mean Time To Resolve)