Sub-60s is a different problem. Most of us running cheap personal stuff or small SaaS where 2 minutes is fine and false positives cost sleep. I ran an ISP, trust me, the 3am pages for a route flap you can't fix anyway are what kill you.
I wrote a better uptime robot
The graph insight is correct but incomplete. Internet paths are not independent. If you put 3 checkers in ASes that all peer at LINX and LINX has issues, your consensus fails together. Geographic spread matters less than topological spread.
Telegram bot added, PR sent. Lou1 check when you have time, no rush.
Matrix support would be nice but honestly webhook covers it, I just point n8n at it and do whatever. This is how I get SMS for free through my provider's email-to-sms gateway.
5 dollar box. Hetzner. I remember when monitoring meant a second machine pinging the first and both were in your own rack. Now we rent someone else's computer to watch our other rented computer. Progress.
Thank you lou I try with docker now
I have 12 client website in my rack, very small, can sqlite handle this you think?
@ana_mad: 12 sites checked every 30s from 3 locations = 12 * 3 * 120 = 4320 checks/hour. SQLite will do that sleeping. The table is just timestamp, location, status, response_ms. No sweat.
This is basically what we built internally at $old_job but with more locations and proper quorum. We used etcd for consensus which was overkill. SQLite + simple math is smarter.
Does it handle IPv6 only targets
@yuki18: Not yet. Python requests defaults to whatever the system prefers. Issue #4, someone mentioned using pycares for explicit control. I don't have v6-only hosts to test against so it's slow going.