RUN THE CHECKS FROM YOUR OWN MACHINES. VIGIL SUPPLIES THE SOFTWARE, NOT HOSTED LOCATIONS. NO REGIONS, NO RELAY, NO VPS, NO SLA.

Remote probes and quorum

A probe is a small headless Docker container you run on a machine you already own. It connects outbound over HTTPS to your own Vigil controller, asks for work, runs the checks it is given, and reports what it measured. Assign a monitor to two or three of them and require agreement before an incident opens.

Vigil hosts nothing. There is no Vigil region, no relay, no managed probe and nothing to subscribe to. If you have no machine in Asia, Vigil cannot give you a probe in Asia. That is a different product shape from every hosted monitoring service, and it cuts both ways: you get vantage points a vendor will never sell you, and you get none at all until you put one somewhere.

Why bother

A single-vantage monitor cannot tell "the target is down" from "the path between my one server and the target is down". That is the false positive every operator has been paged by, and the reason they eventually stop trusting the alerts.

With three probes and a majority rule, one broken route is reported as degraded, the probe that disagreed is named, and nobody is woken up. All three agreeing is an outage, and it opens exactly one incident.

MACHINES YOU OWN YOUR CONTROLLER YOUR TARGETS probe eu-west probe us-east probe office-lan Vigil api.yours.example your VPS your VPS your office box quorum: 2 of 3 one verdict one incident outbound 443 nothing inbound dashed: each probe dials the target itself
Every box in this diagram is hardware you pay for. There is no fourth box, and no line leaves your estate.

The rules you choose

Mode Meaning
any one probe reporting down is enough
majority more than half of the assigned probes
all every assigned probe
K-of-N exactly the number you type

Plus a minimum number of probes that must have answered before any conclusion is drawn at all.

A probe that did not answer is never counted as a failure. Not in any mode, at any threshold. If fewer probes answer than the minimum, the round reports "no conclusion" and the monitor goes to unknown, which opens no incident, sends no alert and starts no recovery action. A fleet on a laptop that closed must never look like the internet going down, and that is the single behavior the whole feature is arranged around.

What each outcome looks like

The counts, the threshold and the sentence explaining them are the values stored when the round settled, printed rather than recomputed for display. The reason an operator opens that page at all is "why did this page me, or why did it not", so the arithmetic that produced the verdict sits on the same screen as the verdict.

All four outcomes are in the demo, on their own monitors, with the policy that produced them on the same page. These are real pages from the running product, not drawings of it.

The round said Monitor reads Incident Open it
3 of 3 up, threshold 2 of 3 up none Healthy
3 of 3 down, threshold 2 of 3 down one, at the transition Confirmed outage
1 of 3 down, threshold 2 of 3 degraded none opens; an open one resolves Partial regional failure
1 of 3 answered, minimum 2 unknown none, and no alert Insufficient quorum

The third row is the one worth opening. One vantage point lost its route, the other two answered, and nobody was woken up. The fourth is the one implementations get wrong: the target was healthy the whole time and two agents had stopped, so the round refuses to draw a conclusion rather than reporting an outage.

Two speeds, and they are not comparable

One installation runs checks two ways, and the numbers belong to different planes.

Where the check runs Fastest interval What you get
On the controller (default) 500 ms, HTTP, JSON query and TCP Cadence. One process, no network in the middle.
Dispatched to remote probes 20 s and no faster Agreement between machines in different places.

The twenty seconds is a floor, not a default, and the code refuses to save a probe-executed monitor below it. A round has to be opened, leased to each probe, polled for, measured, reported and settled, and under twenty seconds it cannot finish inside its own cadence.

Half-second cadence is a rate. Multi-vantage agreement is a capability. Neither number belongs in the other's sentence, and one install can do both on different monitors.

Installing one

Create the probe in the app, copy the command it gives you, run it. The token in it is single use and expires in an hour; the agent trades it for a long-lived credential and stores that on a volume.

docker run -d --name vigil-probe --restart unless-stopped \
  -v vigil-probe-state:/var/lib/vigil-probe \
  -e VIGIL_CONTROLLER_URL=https://vigil.example.com \
  -e VIGIL_PROBE_ENROLLMENT_TOKEN=vgpe_... \
  your-registry/vigil-probe:1.14.0

Nothing inbound. The agent opens no listening socket, so there is no port to forward and no NAT to traverse. It works from an office LAN, a home connection or a laptop with no network change at all. On the probe's side you allow outbound 443 to your controller, and that is the whole firewall change.

What it costs to store

Probe data is the largest thing Vigil writes, so it is bounded by two retention windows you control: the raw per-probe rows for 14 days and the round with its decision for 90. A round where every probe agreed the target was up is dropped early, because the observation it produced is already recorded where uptime and reports read from.

Measured on one machine, a twenty-monitor installation on a 60 second interval with three probes reaches about 0.95 GB and stops there. The formula, the measurement and the caveats are in the repository you buy, not only in this sentence.

See a quorum decide before you buy anything

Three labeled probes, one monitor and one target, on the machine in front of you, in one command:

./scripts/probe-demo.sh up

./scripts/probe-demo.sh outage      # target down    -> 3 of 3 agree, one incident
./scripts/probe-demo.sh partition   # one route cut  -> degraded, nobody paged
./scripts/probe-demo.sh silence     # two go quiet   -> no conclusion, no incident
./scripts/probe-demo.sh restore     # back to green

Three agents on one machine are not three locations. They share a kernel, a NIC, a resolver and a default route. The demo shows the machinery, and it shows nothing about whether a target is reachable from anywhere else. Every state it produces is recorded, if you would rather read it than run it.

The Probes page listing three enrolled agents, each with a name, a location, an agent version, a last-seen time and a credential hint.
A probe is a row with a name, a location somebody typed, a version and a credential. The note under the list says what the health badge is for: quorum is decided from the answers that arrive, so an offline probe is never counted as a failed check.

What this is not

The full operator manual, including reverse-proxy requirements, rotation, revocation, rollback, capacity and troubleshooting, ships in the repository as docs/REMOTE-PROBES.md. How this compares to hosted services is on the comparison page, where every competitor cell cites the vendor's own documentation and the date it was read.

Buy it, or ask first

One payment, the full source, every future version, and any number of probes on any number of machines. If you have nowhere to put a second probe, this feature buys you nothing today and you should not pay for it.

01 PAY BY CARD → 02 REPO INVITE IN SECONDS → 03 docker compose up ON YOUR OWN SERVER, LIVE IN ABOUT 10 MINUTES