omega·checks

Documentation

Everything a check can express, in one page.

Probe types

TypeWhat it doesDefault timeout
httpGET or POST, follows redirects unless disabled5s
tcpConnect only, measures handshake time3s
tlsHandshake plus certificate inspection5s
dnsResolves a name, optionally asserts the answer2s

Expectations

A check passes when every expectation holds. An empty expect block means "any response at all counts as up", which is rarely what you want.

expect:
  status: 200            # exact code, or a range like 2xx
  body_contains: "ok"    # substring, case sensitive
  header:
    content-type: application/json
  max_latency: 800ms     # fail if slower, even on 200

Intervals and flapping

State changes only after threshold consecutive results agree. The default is 2, which removes most single-packet noise without adding a meaningful delay to real outages.

interval: 60s
timeout: 5s
threshold: 2
regions: [eu-central, eu-west]

Notifications

Webhook payload

{
  "check": "api-health",
  "from": "up",
  "to": "down",
  "at": "2026-02-14T09:31:02Z",
  "reason": "status 503, expected 200",
  "latency_ms": 1841
}

Certificate warnings

For tls and https probes the certificate is inspected on every run. A warning fires once per day inside the window, and the check itself only fails when the certificate is actually invalid — not when it is merely close to expiry.

tls:
  warn_before: 21d
  require_chain: true

Limits

Response bodies are read up to 256 KiB and discarded after matching. Redirect chains stop at 10 hops. A single check may target one host; use separate checks for separate hosts so their history stays separate.