navaalStatus

How we check whether a service is down

Every five minutes, from Sydney, Virginia and Frankfurt, we try the real thing: open the store, add to cart, reach checkout. Not a ping. Not the vendor's status page.

Every number on this page was read from our own rows at .

97

services checked

every five minutes, from three countries

86,100

checks in the last 24 hours

one region trying one service once

4/4

canaries reading correctly

our own four services with known answers

0%

we couldn't check

shown in grey, never as broken

What a check is

How a check works: three regions try the real thing every five minutes and the results decide one stateSydneyevery 5 minutesVirginiaevery 5 minutesFrankfurtevery 5 minutesThe real action, step by step1Open the store or service2Open a product3Add it to the cart4Reach checkout5Load the payment scriptEach step records: result, milliseconds, HTTP statusOne statefrom all three regionsWorkingor Slow · Partly brokenBroken · Couldn't checkThe page you readNot a ping. Not the vendor's status page. One retry 20 seconds later before any step counts as failed.
Three checkers, one in Sydney, one in Virginia and one in Frankfurt, each run the same steps against the same service every five minutes. Each step records what it got back, how long it took and the HTTP status. The three regions' results then decide one state.

A check is the action, not a signal that the host is up. For a service we can transact with we open the store, open a product, add it to the cart and go to the checkout; for the rest we load the hosts a store loads. Every step is tried twice before it is believed, twenty seconds apart.

Nothing here reads a vendor's status page to decide anything. We read those too, and print them beside our own answer, labelled as theirs.

A step that answers but answers slowly is recorded as slow, with the milliseconds. A step that refuses our robot is recorded as refused. Those are different facts and the pages keep them apart.

Three kinds of check, and what each is allowed to claim

We buy on our own account 2 services

We add a product to the cart on our own store, or call the API with our own key.

The 2 we check this way

We use their demo 1 services

We load a product page on a store they publish as a demo.

The 1 we check this way

A tier is a promise about what the check can support, not a rating of the company. A page never prints a sentence its own steps did not earn: if a step behind a credential did not run, the page prints the smaller sentence instead.

How three answers become one state

The state rule: what three regions' results add up toSydney · Virginia · FrankfurtWorkingAll three regions succeeded.SlowNo failures, but at least one region was over three times its own usual time.Partly brokenExactly one region failed, after its retry.BrokenTwo or more regions failed in the same five-minute window.Couldn't checkFewer than two regions could get an answer. Our problem, shown as ours.Broken closes only after two clean windows in a row, so a flickering service is one incident, not ten.
Two regions failing in the same window is Broken. One failing with the others working is partly broken. Fewer than two regions with a usable result is couldn't check. Otherwise, if any region is slow the state is slow, and if none is, it is working.

Broken opens on the first window that qualifies, because an outage must not wait five minutes to be published. It closes only after two clean windows, and so does slow: a service that dips back under the bar for one window has not recovered, and a page that flickers is worth less than one that is a window late.

One failure is never an outage. Every step is retried twenty seconds later, and a window's reading is the median of its attempts, so a single slow or failed try that succeeds on the retry does not move the page.

How we check ourselves

Four of the services on this network are ours, built so that we know the right answer in advance. They are the only check that can prove the rule still means what it says.

Canary (working)

must read Working

reads Working

Canary (broken)

must read Broken

reads Broken

Canary (slow)

must read Working but slow

reads Working but slow

Canary (blocked)

must read Couldn't check

reads Couldn't check

A canary reading anything other than its known answer raises an alarm to the founder within ten minutes and marks the day red in our own public log, whatever the rest of the network says. No page can earn its way out of noindex on a day a canary was wrong.

What we can't check, and say so

This network checks the services an online store depends on. It does not check your store. If a service here is working and your store is not, the fault is in your setup — your theme, an app, your domain — and that is a different check: Bilby walks your own store and shows you the screen where it stopped.

WooCommerce is not on this list and cannot be. It runs on your own hosting, so there is no shared service to check: the thing that breaks is your site, your plugins or your host. Our two WooCommerce runbooks say so and cite WooCommerce's own documentation rather than pretending we reproduced it.

No service is refusing our checks at the moment. When one does, its page says they blocked our check in grey — never that it is broken.

Three services have no page at all, because no check we could build on them would have been worth publishing:

Questions people ask

Why not just read the vendor's status page?
Because that is the vendor's word about the vendor. A status page is written by the company it describes, usually after somebody has decided what to say; a checkout either takes a card or it does not. We show their line beside ours on every page, labelled as theirs, and ours is what we saw when we tried it.
Is this the same as Downdetector?
No. Downdetector counts people reporting a problem, which tells you how many noticed. We perform the action ourselves and publish the result with the region and the time, which tells you whether it worked from three countries ten minutes ago.
What does "couldn't check" mean?
That we could not get an answer: their site refused our robot, or our own checker was silent. It is our failure to look, not their failure to work, so it is shown in grey and never as the service being broken. The page says which of the two it was.
How fast does a page update when something breaks?
A failure from two regions in one five-minute window turns the page red inside that window. The page itself is never more than two minutes behind the checks, and it prints the time of the checks the answer rests on rather than the time you loaded it.
Can I get the data?
Yes. Every service has a CSV of every incident on its history page, stating the range it covers, and each page carries the same answer as JSON. There is no key and no account.
navaal.aiAll servicesHow we checkBilby