Uptime monitoring checks that an HTTP or HTTPS endpoint is reachable and returning the status code you expect. It's the most common monitor type and usually the first one people add. This page describes exactly what the uptime checker does today.

What the checker does

For every uptime monitor, Observare periodically sends a GET request to the URL you configured and records:

  • The HTTP status code it received
  • The total response time in milliseconds
  • Whether the request succeeded (status code matches what you expected)
  • If it failed, the category and message of the failure

Observare identifies itself with the user-agent string Observare/1.0 (https://observare.io) so you can allowlist it in your WAF or analytics if needed.

Redirects are followed automatically (up to the default Node fetch limit). The checker only issues GET — other HTTP methods, custom headers, and request bodies are not supported.

An uptime monitor detail page showing the response time chart and recent check history

Creating a monitor

Go to Monitors → Uptime → Add monitor and fill in:

  • Name — a human-friendly label, 1–100 characters.
  • URL — the full URL you want to check, up to 2048 characters. Must be a valid URL.
  • Check interval — how often Observare should probe. 5, 10, or 15 minutes.
  • Expected status code — the exact status code Observare should consider a pass. Defaults to 200. Any other response (including 301, 302, 204, or a 5xx) counts as a failure unless you change this value.
  • Timeout — how long to wait for a response before giving up. 5–120 seconds, default 30.
  • Alert channels — pick which of your configured alert channels should be notified when this monitor fails.

Save and Observare will start checking the monitor on the schedule. The first check runs within a minute or two.

Note: the status-code check is a strict equality match, not a range. If your endpoint returns 204 No Content, set the expected status to 204 — leaving it at the default 200 will treat every check as a failure.

How a failure is confirmed

Observare doesn't fire an alert the first time a check fails. When the first failure happens, it schedules a second check 30 seconds later against the same URL. Only if that second check also fails does the monitor get marked down and an alert go out.

This catches the single biggest source of false positives: a transient network hiccup between the Observare checker and your server. If the retry passes, nothing is alerted and the monitor stays in an up state.

Failure categories

When a check fails, Observare categorises the failure so you know what kind of problem it is:

Error type When it fires
timeout The request didn't complete within the configured timeout
dns_failure DNS lookup for the hostname failed (e.g. ENOTFOUND)
connection_refused The server refused the TCP connection (ECONNREFUSED)
ssl_error TLS handshake failed — expired cert, bad chain, or other cert errors
unexpected_status The server responded but with a status code that doesn't match the expected value

The exact category and the raw error message are shown on the monitor's check history and included in the outgoing alert so you can start debugging without opening anything else.

Incidents and recovery

When a failure is confirmed, Observare opens an incident for the monitor: a record of when it started being down, when it recovered, and the total downtime in seconds.

  • The monitor's status flips to down.
  • A Monitor Down alert is sent to every alert channel you've assigned.
  • The monitor continues to be checked on its normal interval; subsequent failures while already down do not trigger more alerts.
  • When the next successful check lands, the incident is resolved, downtime is calculated, and a Monitor Recovered alert is sent with the total duration.

Flapping detection

If a monitor opens two or more incidents within a 30-minute window, Observare marks the latest incident as flapping and sends a Flapping alert instead of another plain Down alert. This is your signal that something isn't a clean outage — the service is bouncing up and down, and the root cause is usually different from "the server is just down".

Flapping alerts replace the standard down alert for that specific incident so the channels aren't hammered repeatedly during a noisy period.

Pausing a monitor

If you're deploying or running maintenance and don't want alerts, open the monitor and click Pause. A paused monitor stops being checked entirely — no requests go out, no checks recorded, no alerts fired. Click Resume to bring it back.

Heads up: pausing is not "muted but still checking" — a paused monitor has no data for the pause window. If you want to see the downtime in the history afterwards, let the monitor keep running and ignore the alert instead.

Response times and history

Every check records its response time in milliseconds. These are kept for 90 days and then automatically deleted to keep the database from growing unbounded. The monitor detail page shows the recent history as a chart plus the raw check log.

There's no response-time alerting yet — Observare doesn't fire a warning just because a response got slow. Only hard failures (timeout, DNS, connection refused, SSL error, wrong status) trigger alerts today.

Account limits

Each account can have up to 30 uptime monitors. If you try to add a 31st, the dashboard will refuse until you delete one. The 30-monitor cap applies per type — so you can run 30 uptime monitors and 30 SSL monitors and 30 port monitors and 30 cron heartbeats on the same account, up to 120 monitors in total.

Common issues

  • Every check fails with unexpected_status — your endpoint is probably returning something other than the status code you set. Check the raw check log for the actual code and update the monitor.
  • DNS failures from behind Cloudflare or similar — Observare resolves DNS at the source of the check. If your DNS is misconfigured or intermittent, you'll see dns_failure errors even though the site works in a browser that has cached DNS.
  • SSL errors on an otherwise healthy site — the leaf cert might be fine but the intermediate chain isn't being served. Pair with an SSL monitor to catch this before it blocks uptime checks.
  • Aggressive WAF or rate limiter — allowlist the Observare/1.0 user-agent or contact support for the current checker IPs.

What's next