SaviourOps

Uptime

A wall of green, and the one slash that isn't.

Synthetic checks across seven protocols, plus heartbeats for the jobs that should have reported in. The uptime record is the hero, and a degraded check is amber — not an outage.

Demo APIupHTTP
Up · 100% (24h) · checked 12s ago · every 60shttps://api.demo.com
Uptime record99.62%1 incident24h7d30d
30 days agoNow
Uptime (SLA)24h100%7d99.94%30d99.62%
Response time105 msp95 111ms
SSL certificateValid · renews in 38d
Checksevery 60s · timeout 30sOpens an incident after 1 confirmed failure

Check types

Seven of them, each configured for what that protocol actually needs rather than a generic URL field.

HTTP
Method, request body, expected status codes, an expected-body-contains assertion, redirect following, SSL verification, and basic or bearer auth.
TCP
Connection-level check for anything that is not speaking HTTP.
Ping
ICMP reachability.
DNS
Resolution check with the record type you care about.
gRPC
Health check against a gRPC endpoint.
SSL certificate
Expiry monitoring, so a certificate running out is caught weeks before it takes the service down.
Heartbeat
The inverse check — a cron job or worker that should have called in and did not.

What counts as down

The distinction most uptime tools get wrong. Slow is not the same as failed, and treating them the same is how a monitoring tool loses your trust.

One confirmed failure
An incident opens after a confirmed failure, not after a single slow response.
Retries before failing
A configurable retry count and retry interval, so a transient blip has to actually persist.
Degraded threshold
A separate response-time threshold. Cross it and the check is amber in the record — still up, visibly slower, and nobody is paged.
Timeout
Set per monitor, independently of the check interval.

The record

SLA windows people actually report on, not a one-hour figure nobody has ever been asked for.

24h, 7d and 30d
Computed server-side and colour-coded by threshold, so a number that breaches reads as breached.
Response time
Average and p95 across the window, alongside the record rather than on a separate page.
Incident detail
What the check actually saw at the moment it failed — not a generic outage banner.
SSL expiry
Days remaining, shown against the monitor it belongs to.

Operating them

Test before saving
Run a check once, immediately, and see the result before committing the monitor.
Pause and resume
Take a monitor out of rotation during planned work without deleting its history.
Per-monitor channels
Attach specific alert channels to specific monitors, rather than one global destination.
Public status pages
The same monitors drive a public status page on your own domain, with maintenance windows and manual overrides.

Find out how much of your paging was noise.

Connect one cluster and watch a week of alerts sort themselves into the handful that actually mattered.