Skip to content

Veglia 0.1.0

Latest

Choose a tag to compare

@pardel pardel released this 27 Sep 15:01
d2a5415

The first tagged release of Veglia, a small Rails app that sits on a Mac at home, asks the internet once a minute whether it's still there, and keeps an honest record of the answer.

What's in it

  • Three-tier checks every minute: a ping to the gateway, a timed DNS lookup, and three independent HTTP endpoints at a quorum of two, so a red light says which thing broke.
  • Honest uptime: minutes Veglia didn't observe are recorded as gaps and classified using the kernel's boot time, as either a machine reboot or Veglia itself not running. Uptime is never shown without the coverage beside it.
  • A dashboard with uptime and coverage for the last 24 hours, 7 days and 30 days, a minute-by-minute heatmap, and a list of recent interruptions.
  • Starts at boot: it installs as a single launchd LaunchDaemon, so it runs even when nobody's logged in.
  • 90 days of history: per-minute checks are kept for 90 days, with each day rolled into a summary before it's pruned.
  • Demo data: bin/rails demo:seed fills it with eight days covering every state and outage kind, and refuses to run in production.

No Docker, no database server, no external service and no monitoring gems: every probe uses the Ruby standard library.

Requirements

macOS and Ruby 4.0.6. On Linux it boots and the HTTP and DNS checks work, but the gateway check and reboot detection don't.

Getting started

git clone https://github.com/pardel/veglia
cd veglia && bin/setup
bin/rails demo:seed    # optional: a week that went wrong
bin/dev                # http://localhost:3000

To install it for real, read deploy/install.sh and the README's Installing section first. Keep it on your own LAN.

MIT licensed.