Uptime Dashboard
This dashboard tracks uptime for various VPS and cloud providers. I have a server hosted on each provider, and each server sends a HTTP request to every other server every five seconds, and records the response. This page collates the data from all of the servers:
Provider | Uptime | Since |
---|---|---|
DigitalOcean | 99.992824% | 2021-12-23 |
Vultr | 99.99103% | 2021-12-23 |
AWS | 99.995155% | 2021-12-24 |
FAQ
Why did you do this?
A friend of mine was dubious when I said that 99.99% uptime was easy to get by just putting your thing on a server and having it run. Her experience was that her EC2 instances got less than 99.99% uptime, whereas my experiences with other providers had been significantly better. I'd looked for this sort of data in the past and hadn't found it, so I figured I should just go and collect some of my own.What instances are you using?
- DigitalOcean: $5/month droplet in NYC3
- Vultr: $5/month server in New Jersey
- AWS: t2.micro in us-east-1, using an Elastic IP
How is the uptime calculated?
Right now, it's the number of successful requests divided by the number of unsuccessful requests. In the future, I'd like to split it off into a "minimum uptime" and "maximum uptime", to accurately capture the case where a server is available, but only to a subset of the other servers. For now, though, the average uptime should do.What are the juicy technical details?
All of the servers are running the default Debian install for each provider, and are running a custom server written in Rust (with hyper) that does two things: Responds to any HTTP request with a body of "ok
", and sends a HTTP request to every other server (directly via IPv4 address, so that DNS problems don't get counted as downtime) every five seconds (with a 2.5 second timeout per request) and writes the result to a SQLite database, which is then replicated to the dashboard server via Litestream. The dashboard server periodically generates this page from those databases.
Do you have even more data I can look at?
Sure thing:DO | VLTR | AWS | |
---|---|---|---|
DO | 99.988612% | 99.997024% | |
VLTR | 99.989714% | 99.993286% | |
AWS | 99.995934% | 99.993448% |
The row is the server doing the checking, and the column is the server being checked.