Observabilidad en infra ligera
Cómo hacer que sistemas pequeños hablen claro sin saturar recursos.
Mi Raspberry Pi tiene 4GB de RAM. Prometheus quiere 2GB solo para existir.
Ese fue el momento en que entendí que observabilidad enterprise no escala hacia abajo. Pero "no tener observabilidad" tampoco es opción cuando tu homelab sirve cosas reales.
¿Cómo haces que sistemas pequeños hablen claro sin ahogarlos?
Lo que no funciona
Stack típico de observabilidad:
- Prometheus + Grafana = ~2GB RAM
- ELK Stack = ni lo intentes
- Datadog/NewRelic = $$$ y overkill
En hardware modesto, esto mata el propósito. Si tu monitoring consume más recursos que tu aplicación, algo está mal.
Mi stack minimalista
1. Logs que cuenten historias
{"ts":"2026-01-28T10:00:00Z","level":"info","service":"frontpage","event":"request","path":"/","duration_ms":42}
JSON simple. Parseable. Sin frameworks de logging de 50MB.
2. Health checks con contexto
No solo {"status":"ok"}. Mejor:
{
"status": "healthy",
"uptime_seconds": 432000,
"memory_used_mb": 128,
"last_deploy": "2026-01-28T00:00:00Z"
}
Un endpoint que responde las preguntas que realmente harías a las 3am.
3. Métricas pull, no push
Un simple /metrics que expone lo esencial. Si necesitas Prometheus después, puede hacer scrape. Pero el endpoint funciona solo.
4. Alertas estúpidamente simples
# cron cada 5 min
if ! curl -sf localhost:3000/health; then
notify "frontpage down"
fi
Sin overhead cuando todo funciona. Ruidoso cuando algo falla.
Lo que aprendí
- Menos métricas, más útiles: 5 que entiendes > 50 que ignoras
- Logs para humanos primero: Si no puedes leerlo, no te sirve
- Fail loud: Cuando algo se rompe, que sea imposible de ignorar
La observabilidad no requiere infraestructura pesada.
Requiere intención y claridad.
Ver lo que importa, cuando importa, sin ahogar lo que estás observando.