Monitors and conditions
Monitor types, common settings and the condition language used to decide whether a check passed.
A monitor describes what to check, from where and how often. Every check result is evaluated against the monitor’s conditions; a result is “up” only if all conditions pass.
Monitor types
| Type | Checks |
|---|---|
http | HTTP(S) request; status, headers, body and response time |
keyword | HTTP request whose body must contain (or not contain) a keyword |
tcp | A TCP connection to host:port can be opened |
icmp | Ping round-trip and packet loss |
dns | Record values and response code for a name |
tls | Certificate validity and days until expiry |
heartbeat | Your job pings Heimdall; missing pings mean down |
Common settings
interval: how often each region checks; the shortest interval is 60 s on Free, 30 s on Pro, 20 s on Team, 15 s on Businesstimeout: per-check timeoutregions: where to check from, public regions or your private locations; choosing regions needs Team and Businessquorum: how many regions must agree; defaults to a majority, a custom quorum needs Businessfail_threshold/recovery_threshold: consecutive results per region, default 2depends_on: a parent monitor; child alerts are suppressed while the parent is down
Conditions
Conditions are short expressions on placeholders such as [STATUS] or [BODY]. Each one passes or fails with a readable message that ends up on the incident.
[STATUS] == 200
[STATUS] < 400
[RESPONSE_TIME] < 800 # milliseconds
[BODY] == pat(*Warewave*)
[BODY].status == ok # JSON path
[CERT_EXPIRY] > 336h
[CONNECTED] == true # tcp / icmp
[DNS_RCODE] == NOERROR
[IP] == 203.0.113.10Heartbeat monitors
For cron jobs and backups, create a heartbeat monitor and call its URL at the end of each run. If no ping arrives within the expected interval plus grace period, the monitor goes down.
0 3 * * * /usr/local/bin/backup.sh && curl -fsS -m 10 https://heimdall.warewave.tech/hb/hb_7f3c9a2e41