The check tells you which layer broke.

Most monitors tell you that something failed. Perstat's checks are built to tell you what: which layer, which IP family, which region saw it first. 12 check types, assertions down to regex, and an agent you install with one line.

12 check types, not 3

Everyone asks about HTTP, TCP, and DNS first. The full list a monitor can run today:

An http monitor carries TLS, security-header, and DNS-hygiene subchecks inline, so one monitor covers what used to take four. Redirects are followed up to 5 hops, and every hop is validated against SSRF targets before it is fetched. The check-type reference explains each type on its own page.

Results you can actually debug with

Paged for confirmed failures, not probe hiccups

An incident opens when a quorum of regions confirms the failure, and its start time is the quorum confirmation, to the second: the same boundary your SLA record uses later. Sub-quorum divergences (one region drifting, one IP family failing, one node disagreeing) land on a watchlist, a per-layer signal you read on your own schedule instead of at 3 a.m. The full paging rule, and why it lets on-call sleep, is on the SRE page; how the record holds up is on the leadership page.

The host agent respects your machine

One line installs it, from the distribution point, for Linux (x86_64, aarch64) and macOS (universal binary). On Linux it runs as a hardened systemd unit. It updates itself with ed25519-signed releases verified before swap (no root helper, fail-closed), and uninstalls cleanly, deregistering from the cockpit. It reports availability, CPU, memory, disk, and named services. It never collects command lines, environment variables, or usernames.

The API question, answered honestly

You configure monitors in the web app today, and in the native iOS app currently in TestFlight. There is no public API with scoped keys yet, and we would rather tell you that before you sign up than after. The API surface is documented in an OpenAPI document, the architecture is API-first internally, and a public, documented API with scoped keys is the stated next step. When it lands, it shows up on the changelog, dated.

Try it against something real

Ten monitors at 300-second intervals, 0 EUR, no time limit. Point one at your API, one at your domain’s DNS, one ssl_cert at the certificate you forgot about. The record it keeps is the argument for the rest.

Start monitoring free. Or take the tour, no signup. Or see pricing, every number on the page.