One Go binary, one YAML file, one SQLite database: I wrote my own monitoring tool
One Go binary, one YAML file, one SQLite database: I wrote my monitoring tool
Frustrated with heavyweight monitoring platforms, a developer built Gjallar, a KISS monitoring service in Go. It's a single static binary (no CGO) that checks HTTP, PostgreSQL, Oracle, Redis, Elasticsearch, and more, with alerts via Telegram, SMS, or Signal. The lock-free pipeline uses a single consumer goroutine, and state survives restarts. Configuration is a single YAML file with hot reload, env var expansion, and a dry-run flag. It deliberately avoids clustering, agents, and plugins, keeping everything simple and understandable.
A tool whose whole state fits in one SQLite file and whose whole behaviour fits in one YAML file is a tool you still understand at 3 a.m., eighteen months after you wrote it.
- nzoschke
Single Go binary + SQLite database all the way.
I've been doing this architecture on single tenant VMs for like 6+ years now and it has so many advantages for deployments, security and scaling.
Pretty much every new tool and agent computer I set up uses this pattern. I've blogged about it and created a template repo.
https://housecat.com/blog/the-hugs-stack-hypermedia-unix-go-...
- JensRantil
Nice! But you made a mistake of using smallcaps-only on the repository. MacOSX file systems will complain and all sorts of weirdness can happen.
- aster0id
Recently I vibe coded a couple of scripts invoked by cron to do the same thing for a few services running on a single node for me. Works beautifully.