Monitor types

The eight probe types oo-workers ships: HTTP uptime, API checks with JSONPath assertions, Playwright browser tests, TCP and UDP probes, database liveness, TLS certificate checks, and heartbeats.

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#

TypeWhat it checks
HTTP uptimeIs the URL up, with the expected status code.
APISend any HTTP request and assert on the response: status, response time, JSONPath into JSON, headers, or text contents.
BrowserRun a full Playwright .spec.ts script: log in, click, navigate, assert. The same code your team writes for end-to-end tests.
TCPOpen a socket to host:port and measure connect latency. Optionally send a payload and assert on the response banner (SSH, SMTP, Redis, IMAP).
UDPSend a datagram (optional payload) and optionally await a response within a timeout. Useful for DNS, NTP, and custom UDP services.
DatabasePostgres, 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 certificateTLS 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.
HeartbeatAn 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.

Related comparisons

Picking between the tools mentioned here? Side-by-side breakdowns below.

Swap out part of your stack

Looking for a different fit? Start here.

Was this page helpful?