Skip to content

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

TypeChecks
httpHTTP(S) request; status, headers, body and response time
keywordHTTP request whose body must contain (or not contain) a keyword
tcpA TCP connection to host:port can be opened
icmpPing round-trip and packet loss
dnsRecord values and response code for a name
tlsCertificate validity and days until expiry
heartbeatYour 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 Business
  • timeout: per-check timeout
  • regions: where to check from, public regions or your private locations; choosing regions needs Team and Business
  • quorum: how many regions must agree; defaults to a majority, a custom quorum needs Business
  • fail_threshold / recovery_threshold: consecutive results per region, default 2
  • depends_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.

Condition examples
[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.10

Heartbeat 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.

crontab
0 3 * * *  /usr/local/bin/backup.sh && curl -fsS -m 10 https://heimdall.warewave.tech/hb/hb_7f3c9a2e41