Docs/Monitors

Monitors

Five protocols, one incident pipeline. Pick the type that matches what you're checking; everything else (intervals, regions, alerts) is the same across types.

TypeWatches
HTTP / HTTPSStatus code, response body, headers, latency
TCPConnect succeeds on host:port
UDPSend a payload, expect a response
SSLTLS certificate validity and days-to-expiry
DNSRecord value matches expected IPs / strings

Common settings

Every monitor has these regardless of type.

  • Interval — how often to run the check. Defaults to 60s. Minimum is plan-dependent (see Plans). Lighthouse monitors can go as low as 5s.
  • Timeout — how long a single attempt may run before being marked failed. Defaults to 30s.
  • Regions — one or more public probes; each region runs its own schedule. See Regions. Lighthouse monitors run from your agent and ignore this.
  • Pause — Lighthouse monitors can be paused via the agent config flag. Public monitors are always running once created.

Failure semantics

A single failed check opens an incident. A single successful check resolves it. There's no "N consecutive failures" threshold for public monitors. Lighthouse agents support a per-agent flap-protection threshold that requires N consecutive same-state results before a transition.

Recovery fires its own notification; downtime is recorded against the 24h / 7d / 30d uptime metrics for the monitor.

Uptime

Each monitor displays three rolling-window uptime percentages: 24h, 7d, 30d. They're computed from resolved-incident downtime within each window — not from raw check results — and recalculate when an incident resolves rather than on every check, so they don't flicker as data arrives.

The status page also renders a 90-day daily timeline (one bar per day) sourced from a separate daily aggregation. See Status page for the details.

Paused monitors are excluded from uptime calculations — pausing a monitor freezes its numbers until you unpause.

HTTP / HTTPS

The most common monitor. Watches a URL and asserts on the response.

FieldDefaultNotes
URLhttps://... or http://...
MethodGETGET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS
Expected status code200Single value; ranges aren't supported
Keyword checknoneSubstring that must appear (or not appear, via the toggle) in the response body
Request headersnoneSee Request headers
Expected response headersnoneSee Expected response headers
Request bodynoneUsed with POST / PUT / PATCH
Skip TLS verifyoffDisable cert validation; useful for staging
Timeout30sPer attempt

The check follows redirects and asserts on the final response. Both request and expected response headers apply across the redirect chain.

Failure causes you'll see: status mismatch, keyword mismatch, header mismatch, timeout, TLS handshake error, DNS resolution failure, connection refused.

Request headers

Send custom headers on every check. Useful for monitoring authed endpoints (Authorization: Bearer ...), private API surfaces (X-Api-Key), or asserting on tenant-specific behavior (X-Tenant-Id).

LimitValue
Max headers20
Max value length4 KB
Reserved (cannot be set)Host, Content-Length, Connection, Transfer-Encoding

Header names are case-insensitive — Host, HOST and host are all rejected.

Expected response headers

Assert on headers in the response. Each entry has a key and a match mode:

ModePass condition
presentThe header is set, value ignored
exactThe header is set and its value equals yours
containsThe header is set and its value contains your substring

Same per-monitor caps as request headers (20 max, 4KB per value). A single mismatch fails the check with a clear message naming the header.

TCP

Opens a TCP connection and closes it. Use for databases, brokers, custom services that don't speak HTTP.

FieldDefaultNotes
Host:portdb.internal:5432, redis.svc:6379
Timeout30sConnect timeout

The check passes if the TCP handshake completes. It does not send any payload or read a banner.

UDP

Sends a payload, optionally waits for a response.

FieldDefaultNotes
HostHostname or IP
PortUDP port
Send payloadBytes to send (typically a protocol-specific probe)
Expected responsenoneIf set, the response must equal this exactly
Timeout30sTotal round-trip

Useful for: DNS resolvers (with a crafted query), game servers, NTP, custom UDP services.

SSL

Watches TLS certificate health on any HTTPS endpoint.

FieldDefaultNotes
URLhttps://example.com — the domain is extracted
Days warning14Open an incident this many days before expiry
Timeout30sTLS handshake timeout

The monitor fails on: certificate expired, hostname mismatch, broken chain, or fewer than days_warning days remaining.

DNS

Resolves a record and (optionally) asserts on the values returned.

FieldDefaultNotes
HostnameThe name to resolve
Record typeAA, AAAA, CNAME, MX, TXT, NS
Expected valuesnoneOne or more strings; all must appear in the answer
Timeout30sResolution timeout

DNS monitors run from a single location regardless of the regions you select — comparing DNS results across regions is a separate feature on the roadmap.

Plan-gated types

Free includes HTTP, TCP and UDP monitors. SSL and DNS unlock on Pro. See Plans & limits for the full matrix.