HTTP monitors
An HTTP monitor checks that a URL returns a successful response. Overwatch considers any response a sign that the endpoint is reachable — it does not currently match on specific status codes. The monitor tracks latency on every check and computes uptime over a rolling 90-day window.Config fields
The full URL to check, including scheme. For example,
https://api.example.com/health.How often to run the check, in seconds. Minimum is 300 seconds (5 minutes) on Starter, 60 seconds (1 minute) on Pro.
Status values
| Status | Meaning |
|---|---|
up | The endpoint responded within normal latency. |
degraded | The endpoint responded, but latency is significantly above the 30-day moving average. |
down | The endpoint did not respond or returned an error. |
Create an HTTP monitor
TCP monitors
A TCP monitor attempts to establish a TCP connection to a host and port. If the connection succeeds, the monitor isup. If it times out or is refused, the monitor goes down. TCP monitors apply the same degraded-latency logic as HTTP monitors.
Config fields
The hostname or IP address to connect to. For example,
db.example.com.The TCP port to connect to. For example,
5432 for PostgreSQL.How often to run the check, in seconds.
Status values
TCP monitors share the same status set as HTTP monitors:up, degraded, and down.
Create a TCP monitor
The degraded status
Thedegraded status applies only when a check succeeds — the endpoint is reachable, but response time is abnormally high. Overwatch compares each check’s latency against a 30-day moving average for that monitor. A significant deviation triggers the degraded status.
degraded is distinct from down and is tracked separately in the status history. This lets you distinguish between outright failures and performance regressions without generating false-positive down alerts.
Updating a monitor
UsePATCH /api/v1/monitors/:id to update a monitor’s name, config, or enabled state. You only need to include the fields you want to change.
- Change interval
- Pause a monitor
- Re-enable a monitor
Pausing all monitors
To pause every monitor in your organization at once — for example, during a planned maintenance window — send aPOST to the pause-all endpoint:
PATCH /api/v1/monitors/:id with "enabled": true, or resume them from the dashboard.
Getting check results
Retrieve the history of individual check results for a monitor:limit query parameter to control page size and cursor to paginate through older results.