One alert per incident, and it shows the failing clause
Assert confirms the failure in the other regions first. Then it opens one incident, sends it where you asked, and closes it when the assertion passes again.
The machine speaks plainly
An alert states the assertion, the expected value, the received value, the regions that agreed and the time. It carries no apologies, no severity adjectives and no exclamation marks.
- The failing clause, quoted exactly as you wrote it.
- Expected against received, so the diff is in the message.
- The regions that agreed, and the ones that did not.
- A link to the incident timeline and the raw response.
expected true · got false
confirmed in 4 of 6 regions · 22s
GET /v1/accounts/:id · 200 · 242ms
passing in 6 of 6 regions
open for 4m 32s
Where your team already is
Connect as many channels per monitor as you need. The free plan sends email; every paid plan sends the rest.
Slack
A message to any channel, carrying the assertion, the expected value, the received value and the regions that agreed.
Discord
The same payload through a Discord webhook, in a server your team already watches.
PagerDuty
Triggers an incident against your existing service and resolves it when the assertion passes again.
Microsoft Teams
A card in the channel, with a link straight to the incident timeline.
One message when the incident opens, one when it closes.
Webhooks
A JSON POST to any URL, with the full check result in the body.
Assert pages you once
Consensus first
A failure re-runs in the other regions before Assert sends anything. A single unlucky probe never pages anyone.
One incident, one alert
Repeated failures attach to the open incident. Assert does not send the same page every thirty seconds.
Resolves itself
When the assertion passes again in every region, the incident closes itself and Assert posts the resolution to the same channels.
Routed per monitor
Send the payment API to on-call and the marketing site to a channel. Each monitor carries its own routing.
Different endpoints, different urgency
On-call rotas
The endpoints that wake people up go to PagerDuty. Everything else goes to a channel nobody has to watch.
Shared channels
Give support the same alert engineering gets, so the first question is not "is it us?"
Custom pipelines
POST the check result into your own incident tooling and let it decide who gets woken.