UptimeProject
Back to blog

90 days of independent uptime data: 44 services, 426 lost minutes

12 November 2026 UptimeProject
announcement data reliability

UptimeProject measures cloud providers, CDNs, DNS resolvers, package registries and AI APIs from the outside. Five probes on separate networks run the same checks a user would, most of them every minute, and a minute counts as up only when a strict majority of probes succeed. Nothing here is self-reported by a provider, and no provider pays for placement. The rules are on the methodology page.

The leaderboard has now run long enough to say something. This post covers the 44 services measured continuously for the 90 days to 12 November 2026.

Most services lost nothing

Each service was measured for roughly 129,000 minutes. Our own coverage gaps, minutes where fewer than three probes could vote, came to at most 7 per service, so the figures below are not flattered by missing data.

Bar chart of minutes lost per service over 90 days. Linode 210, GitLab 76, GitHub 53, Quad9 29, GCP Compute Engine us-central1 19, GCP Compute Engine europe-west1 15, Docker Hub 11, Mistral AI 5, Postmark 2, and 1 each for Anthropic, AWS CloudFront, Backblaze B2, Cohere, OVHcloud and xAI. GitHub's bar is almost entirely degraded minutes; Quad9's is entirely down minutes.

The twenty-nine services at zero are tied, and they will stay tied until one of them has a bad day. Ninety days is enough to find the services that fail. It is not enough to rank the ones that don’t.

Two ways to lose time

Linode lost 210 minutes. GitHub lost 53. The way they lost those minutes has almost nothing in common.

Linode lost 172 of its 210 minutes in two long outages, and both were on the calendar. On 19 August, from 04:23 to 05:29 UTC, every probe failed for 66 consecutive minutes, inside a maintenance window Linode had announced six weeks earlier: API and Cloud Manager offline from 04:00 to 05:30 UTC. The same maintenance came round on 28 October and cost 106 minutes between 03:55 and 05:44 UTC, overrunning its window at both ends; October 2026 in data has the detail. Most of the rest came on 7 September, when six short incidents landed between 10:19 and 12:00 UTC.

GitHub was almost never down. Only 3 of its 53 minutes were down minutes; the other 50 were degraded, meaning some probes reached it and others did not. Its incident log has 14 entries in the window, none longer than 6 minutes, and 13 of them never got past degraded. Four of the 14 fell on the morning of 8 November, between 10:49 and 11:47 UTC.

A degraded minute is a partial failure: whether a request worked depended on where it came from. A status page, or a monitor running from one location, has two options for a morning like GitHub’s 8 November: call it an outage, or miss it. The per-probe vote is what lets it show up as what it was.

The ranking puts them on the same board. It does not say that one lost its time to two announced windows on its API, and the other to a scattering of brief partial failures. What 99.99% uptime actually buys you argues that a monthly percentage hides exactly this difference. Here it is in measured data.

The other two

What this does not measure

These are outside-in observations of public endpoints. They say whether a service answered the same request from five places. They do not see your workload, your region’s control plane, or an internal incident that never reaches the public surface. A probe hosted on the measured provider’s own network does not vote on it.

The endpoint chosen for each check matters more than it looks. An audit of our own registry found services that could not have recorded an outage at all, which is written up in The endpoint you monitor decides the outage you can detect.

Using the data

New posts and methodology changes go out by newsletter and RSS.

If a service you depend on is missing, or a figure here looks wrong, open an issue on GitHub or write to .

New posts and methodology changes, by email. Subscribe