Also, is anyone else getting the bitter taste of AI writing from this page?
Nah. Jim is just a decent writer (and historically has been fairly suspicious of AI)
Skip to the last 2 paragraphs
Which is to say that the significance of downtime depends on the user. Talking about nines only makes sense internally when you are evaluating your infrastructure and operations. It doesn't tell you squat about impact to your customer.
root@vixen:/fountain/crystals #
*** FINAL System shutdown message from dblrabbit@ ***
System going down IMMEDIATELY
System shutdown time has arrived
root@vixen:/fountain/crystals # uptime
3:05PM up 1931 days, 18:13, 0 users, load averages: 1.01, 1.03, 1.41
root@cookie:/srv/users/dblrabbit # uptime
3:07PM up 1931 days, 16:59, 1 user, load averages: 1.76, 1.17, 1.06
root@cookie:/srv/users/dblrabbit # poweroff
Shutdown NOW!
poweroff: [pid 47177]> GitHub Actions: 12 hours affected in the last 30 days (98.31% uptime).
This is trying to shine the most favorable possible light onto a deteriorating situation. It doesn't take away from the fact that most businesses have measurable missed revenue in downtime. Customers that shop somewhere else, ads that were never severed, leads that grew a little colder. 12 hours of downed GitHub results in millions of dollars of lost developer productivity that was externalized by Microsoft to other companies.
We shouldn't be trying to spin downtime as "just a few hours a month." Those hours cost real dollars.
Is trying to spin anything. It’s making easier to see the impact over the last 30 days. I agree with the article
Not all hours are created equal when it comes to downtime and my intuition is that most of these 12 landed within my working hours.
In terms of impact that then might mean they were down for 7.5% of the time I needed them, or had business hours uptime of 92.5% which is… both not very good and very disruptive.
On the other hand, downtime at 4AM would be much less impactful even if it happened every day and added up to more overall downtime.
Keep the percentages, and regardless of that - GitHub fix your uptime
Some measure quite detailled but some just don't summarize the downtime from all providers up and below their own platforms.
For example we had a 6 9 (99.9999%) requirement from a customer for any given 3-6 month period. If we violated that, we owed them their money back (baring the outage wasn’t caused by us - I.e our cloud provider shit the bed).
That’s something like 7.5 seconds. For a contract over $1.5M. Am I the only one who thinks that’s outrageous expectations?
If you agree to those terms knowing it's unrealistic, you're agreeing to give away your service for free.
Well, someone on the business side of the house is free to negotiate. Whether engineering learns about the contract before sales has inked a 6-nines availability guarantee varies wildly by the company
These companies are happy that you don't know the difference between 99%, 99.9%, and 99.99% and that you think they all sound pretty good.
One vendor in particular we deal with has a powerful feature which we use to a large extent. Unfortunately, that particular feature is all too often not working. The servers are up and the rest of the platform is working, but we need that feature, so if it's down, it doesn't help much that the rest of the platform is up.
If you do something 100 times a day against a four-nines service, you can reasonably expect that everything will succeed.
If you do something 10,000 times a day against a two-nines service, you can expect to hit a substantial number of errors during that day, or even have long periods where your work cannot happen at all.
People aren't frustrated with Github because Github has 98% uptime or whatever the specific number is. They're frustrated because it regularly interferes with their ability to work. The 98% number is just a concise way to say it.
Also, 0.1% downtime in the form of a 45-minute outage per month is very different from 0.1% of requests failing in brief bursts. You often see downtime reported as "increased error rates" which is so vague as to be meaningless.
Google's "windowed user-uptime" attempts to deal with this a bit better, by exposing different views of the data instead of trying to condense uptime into a single number: https://www.usenix.org/system/files/nsdi20-paper-hauer.pdf
$ python3
Python 3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import math
>>> def nines(num):
... return -math.log10(1-num)
...
>>> nines(.9)
1.0
>>> nines(.99)
1.9999999999999996
>>> nines(.999)
2.9999999999999996
(Modulo floating point issues of course.)Which then smoothly covers the entire space:
>>> nines(.9321)
1.1681302257194985
>>> nines(.2)
0.09691001300805639
But good luck getting that standardized.The suggested format is equally unhelpful.
You can get 12 hours of downtime by being down once for 12 hours, or 144 times for 5 minutes. The user experience is VERY different in those two cases.
Ultimately the graphs are the most useful format.
They're also completely irrelevant, you as a customer of a service that is down can lose the same amount of money in a 5 minutes outage or 30 days outage, if you were only relying on this service for one operation that took 1 second and had to happen during the time where the outage happened.
Depending on the service in question, no amount of downtime is acceptable, however unrealistic this is.
runjake•24m ago