oo-workers ships eight probe types. Every monitor has an interval_seconds and an enabled toggle; the scheduler ticks every few seconds and enqueues whatever is due, and workers process jobs concurrently.
The eight types#
| Type | What it checks |
|---|---|
| HTTP uptime | Is the URL up, with the expected status code. |
| API | Send any HTTP request and assert on the response: status, response time, JSONPath into JSON, headers, or text contents. |
| Browser | Run a full Playwright .spec.ts script: log in, click, navigate, assert. The same code your team writes for end-to-end tests. |
| TCP | Open a socket to host:port and measure connect latency. Optionally send a payload and assert on the response banner (SSH, SMTP, Redis, IMAP). |
| UDP | Send a datagram (optional payload) and optionally await a response within a timeout. Useful for DNS, NTP, and custom UDP services. |
| Database | Postgres, MySQL, or Redis liveness. Connects and confirms the server speaks the protocol. No credentials are stored; it answers "is it up?", not authenticated queries. |
| TLS certificate | TLS handshake to host:port, failing on near-expiry (warnDays, default 30). Opt in to chain-trust verification, hostname or SAN match, and a CN-or-SAN regex assertion. |
| Heartbeat | An inverted ping. Your cron job POSTs to a token URL on each run; oo-workers flips the monitor to OVERDUE when the next ping does not arrive within period + grace. |
How runs work#
The scheduler enqueues due monitors and workers run them concurrently (tunable per type with *_CONCURRENCY env vars). When a monitor's status changes, oo-workers fires alerts to any bound channels. See Alerts, and for probing from more than one location, Multi-region.