Desplegar es solo la mitad del trabajo; la otra mitad es saber qué está pasando una vez que el sistema está vivo. Cuando algo va lento o falla a las 3 de la mañana, la diferencia entre adivinar y saber se llama observabilidad. Este proyecto construye ese sistema nervioso atacando sus tres pilares: métricas, logs y trazas.
Pilar 1 — Métricas con Prometheus
El núcleo del proyecto. Prometheus recolecta métricas por scraping y las guarda como series temporales que luego se consultan con PromQL:
- Setup base en Docker, consultando uso de CPU y memoria.
- Conceptos clave de su modelo: exporters, recording rules y alert rules.
- Instrumentación de aplicación: una API en FastAPI que, mediante el cliente de Prometheus para Python, exporta sus propias métricas. Aquí se cierra el círculo: no solo monitorizas la infraestructura, sino el comportamiento real de tu código.
Pilar 2 — Logs con Loki
El “Prometheus de los logs”. Se analiza cómo Loki agrega y centraliza los registros de los servicios, encajando en el mismo ecosistema y filosofía de etiquetas, para pasar de tener logs dispersos por contenedores a un punto único donde buscar.
Pilar 3 — Trazas con Jaeger
Cuando una petición atraviesa varios servicios, ¿dónde se va el tiempo? El trazado distribuido lo responde. Con Jaeger y los principios de OpenTracing se trabaja la anatomía de una traza:
Trace
└─ Span (operación) → tags, scope, duración
└─ Span hijo …
Spans, scopes y tags permiten seguir una petición de punta a punta y localizar el cuello de botella exacto.
Cómo encaja todo
El stack se orquesta con Docker Compose, que levanta los servicios de observabilidad junto a la aplicación instrumentada y los conecta en una sola red. El resultado es una plataforma unificada: en un mismo entorno conviven la app, sus métricas, sus logs y sus trazas.
Lo que me llevé
- Interiorizar los tres pilares y entender que se complementan: las métricas te dicen que algo va mal, las trazas dónde y los logs por qué.
- Pasar de monitorizar “la máquina” a instrumentar la aplicación y medir lo que de verdad importa al negocio.
- El modelo de Prometheus —scraping, series temporales, alertas— como base de casi cualquier monitorización moderna.
- Leer una traza distribuida para diagnosticar latencia en sistemas con muchas piezas.