
Gatus
Health checks and a status page defined in one YAML file
Alternative toAtlassian Statuspage
Gatus checks your endpoints over HTTP, TCP, DNS, ICMP and more, evaluates conditions such as status code, response time or body content, and shows the results on a status page. It is Apache-2.0 licensed and configured entirely in YAML.
Best for when
- you want monitors and a status page described in a version controlled file
- you need checks on response time and content, not only up or down
- you want alerts to many channels without a subscription
Watch out for
- there is no interface to add monitors, every change is a YAML edit
- history is lost on restart unless you configure persistent storage
- a monitor on the same host as your services cannot report that host's outage
Monitoring as configuration
Each endpoint is a few lines of YAML: the URL, how often to check, and conditions such as status equals 200 and response time under 300 milliseconds. Gatus runs the checks, keeps a history, draws the status page and sends alerts to Telegram, Slack, Discord, email, ntfy and many others when a condition fails.
Because the whole setup is a file, it fits in git and gets reviewed like code. It suits people who prefer configuration they can version over clicking through a dashboard, and teams that want a public status page without a subscription.
What running it involves
It is a single Go binary or container with a small footprint. By default it keeps results in memory, so configure SQLite or PostgreSQL storage if you want history to survive a restart. Back up the config file and the database.
A status page is meant to be seen, which may mean exposing it. Publish only the page you need, through a tunnel or reverse proxy, and remember that a public page shows the names of your services. Run it on a different machine from the ones it watches if you want it to notice them going down.