
Montar un homelab desde cero: observabilidad - Homelab (05/06)
En los cuatro primeros posts montamos la infraestructura (visión general), la red (WireGuard, VyOS, BGP y DNS), el despliegue (Kubernetes y GitOps) y la seguridad y operaciones. Falta la pieza que hace que todo eso sea operable de verdad: ver qué está pasando.
Un sistema que no se puede ver no se puede operar. Sin métricas no sabes si va justo de recursos. Sin logs no sabes por qué falló. Sin trazas no sabes dónde se fue el tiempo en una petición lenta. Y cuando además parte del sistema son agentes de IA que gastan dinero por token, la observabilidad deja de ser un lujo para ser una necesidad económica.
Este post cuenta cómo está montada la observabilidad del homelab: un hub central en pizarro y tres señales —métricas, logs y trazas— más una cuarta específica de IA.
El hub: toda la telemetría a pizarro
La regla de la casa es simple: toda la telemetría converge en pizarro, el clúster de plataforma. Ahí corre el stack completo:
- Prometheus — métricas (kube-prometheus-stack)
- Grafana — dashboards y exploración
- Loki — logs, con 30 días de retención
- Tempo — trazas distribuidas, con 15 días
- Alertmanager — el cerebro de las alertas
Los clústeres y hosts no guardan su telemetría: la reenvían. El Prometheus local de cortes retiene solo 7 días y hace remote-write a pizarro. Los logs viajan con Promtail y un collector OTel. Y los routers VyOS mandan su syslog por Vector. Las interfaces de administración solo son accesibles desde la tailnet — la observabilidad también se defiende.
Métricas y sondas
Prometheus hace scrape de los exporters de todo el stack: nodos, pods, PostgreSQL, Redis, Traefik, el gateway de IA y los routers —los VyOS exportan métricas de FRR, su demonio de BGP, así que una sesión BGP caída se ve al momento—.
Encima de las métricas, las sondas blackbox comprueban lo que ve el mundo exterior: cada 30 segundos se sondean los endpoints públicos y Alertmanager dispara si un endpoint cae, si responde con errores 5xx o si un certificado está a punto de expirar. Es la diferencia entre enterarte por Grafana o por un usuario.
Logs: llegan solos
Ningún servicio envía sus logs a mano. Los pods escriben a stdout, Promtail los recoge y los reenvía a Loki; los routers hacen lo mismo por syslog. Contra Loki puedo preguntar «todos los errores del gateway en la última hora» o «los logs de este pod concreto antes de morir» sin entrar en ningún servidor.
Trazas y la parte de IA
Las trazas viajan por OTel (OpenTelemetry) a Tempo y, para la parte de IA, a Langfuse autoalojado. Cada ejecución de un agente deja una traza con etiquetas de tenant y de agente — un solo proyecto Langfuse compartido, aislado por tags—. El runtime de agentes y el gateway LiteLLM anidan sus partes en la misma traza, así se ve de un vistazo qué tardó el retrieval, qué tardó el modelo y qué costó.
Y para el gasto en modelos hay un dashboard dedicado en Grafana alimentado por las métricas del gateway: spend por modelo y por agente, latencia, tiempo al primer token y errores. Observar el coste con la misma seriedad que la disponibilidad.
Alertas que no despiertan a nadie por ruido
Alertmanager en pizarro centraliza las reglas: endpoints públicos caídos, 5xx, certificados, BGP, recursos. La filosofía es pocas alertas y accionables — una alerta que no requiere acción se convierte en ruido, y el ruido mata al canal.
Cierre
La observabilidad es lo que convierte un homelab en algo que puedes operar con confianza los 365 días. Con todo convergiendo en pizarro hay un único sitio donde mirar, y con la IA medida en tokens y céntimos no hay sorpresas en la factura.
El siguiente post cubre la otra cara de operar: backups y restauración — qué se respalda, cómo, y qué pasa el día que hace falta de verdad.
Anterior: Post 4 - Seguridad y operaciones