Our status pages could tell your customers something was down. What they couldn't do was say what was going on or when it'd be fixed, which is most of the reason you'd put one up.
And if you wanted to tell people about something our checks can't see, the page carried on underneath you saying all systems operational. A few of you pointed that out. You were right, and it's fixed.
You write the incident now
You can publish an incident from your status page: a title, how bad it is, and then updates as you learn more. Investigating, identified, monitoring, resolved.
It belongs to the page rather than to one monitor, so you can post about things we'd never detect ourselves, like a payment provider having a bad morning. One incident covers as many of your services as you like and still reads as one thing rather than six. If six monitors dropped because a single server died, you can pull those alerts into it so your customers get one story.
While an incident is open the page won't claim everything is fine.
Subscribers get an email on each update rather than only when it's over, and every incident keeps a permanent link, which is what you want when someone asks in support two weeks later.
Slow isn't down
A site taking 14 seconds to answer still passes every check we run, so it sat there in green next to one answering in 90ms while its users had a miserable time.
You can now put a threshold on a monitor and we'll show it amber instead. It goes off either the last check or a rolling p95, and wants a few in a row before it changes anything, so one slow response won't flip your page back and forth.
A slow check still counts as up. That was the bit we were most careful about. Switching this on won't move your uptime number by a decimal, historically or from here, so your SLA means what it meant yesterday. Time spent slow gets reported separately, next to it. Slow alerts are opt-in per contact as well, so nobody starts getting woken up about latency because someone else set a threshold. It's off unless you turn it on.
What the failure looked like
When a check fails we now keep what we saw: the status code, the headers worth keeping, the first few KB of the body, and where the time went. DNS, connecting, the TLS handshake, waiting on your server.
All of that is per location, so instead of "down for four minutes" you can see Cloudflare handing Los Angeles a 522 while Helsinki got a clean 200. A slow handshake looks nothing like a slow server, which is usually the first thing you want to know.
We keep it for 30 days, and we don't store credentials: headers go through an allow-list, and we strip out anything you've set as a request header.
Like last time, most of this came from someone sending us a message. Please keep doing that! 🙌