Gjallar es una herramienta de monitorización de código abierto escrita en unas 3.400 líneas de Go que condensa toda la operativa en un único binario estático, un archivo YAML de configuración y una base de datos SQLite. Su autor la creó para vigilar flotas heterogéneas de servicios —endpoints HTTP, bases de datos PostgreSQL y Oracle, Redis, índices de Elasticsearch, latidos ICMP y métricas de Prometheus— y recibir alertas en Telegram, Signal o SMS cuando algo cae o se recupera, todo sin levantar una plataforma distribuida tipo Prometheus/Grafana/Alertmanager.
Una de sus decisiones técnicas más relevantes es compilar sin CGO (CGO_ENABLED=0), gracias a sustitutos en Go puro para las dependencias habituales: pgx para PostgreSQL, go-ora para Oracle (evita instalar el pesado cliente de Oracle), pro-bing para ICMP y modernc.org/sqlite como motor SQLite transpilado a Go. El resultado es un binario de unos 36 MB, portable, que se despliega con un simple scp y sin Docker, gestor de paquetes ni bibliotecas compartidas.
El diseño interno se apoya en un pipeline sin cerrojos: cada monitor corre en su propia goroutine y envía resultados a un canal que consume un único hilo, dueño del estado y de las escrituras en SQLite. Así se evitan mutex y se respeta el modelo de un solo escritor de SQLite. El estado se conserva entre reinicios (las incidencias abiertas en disco se rehidratan al arrancar) y las notificaciones se envían de forma asíncrona para no bloquear el pipeline. La configuración admite recarga en caliente con SIGHUP, expansión de variables de entorno para secretos y validación en seco para CI. Gjallar renuncia expresamente a clustering, agentes, plugins o cuentas de usuario, y delega en systemd y en las URL de shoutrrr lo que ya existe. El proyecto está publicado bajo licencia MIT en github.com/brvier/Gjallar.
