Create your first monitor

1

Sign in or sign up

Go to happyuptime.com/sign-up. Email + password, or Google OAuth.

2

Decide what to check

The fastest path is an HTTP check against your homepage or /health endpoint. If your service is internal, pick heartbeat instead.

3

Create the monitor

Click + New monitor in the dashboard sidebar. Pick HTTP, paste your URL, leave defaults (60s interval, 3 regions on free, no assertions). Click Test to confirm the URL is reachable, then Create.

4

Confirm it's running

Within 60 seconds your monitor will receive its first check from each configured region. Refresh the monitor detail page — you should see a green status, response time, and a timing waterfall (DNS / connect / TLS / TTFB / transfer).

5

A monitor without alerts is just a dashboard. Set up at least one channel:

What gets checked

For an HTTP monitor with default settings:

  • TCP connect succeeds
  • TLS handshake succeeds
  • Response status is 2xx (override with expected_status_codes)
  • Response received within 30s (override with timeout_ms)

If the page contains a marketing iframe or a payment widget you want to verify rendered correctly, enable visual regression.

Common gotchas

Three causes most often:

  1. Your firewall blocks Cloudflare Worker IPs. Add *.cloudflare.com egress to your allowlist.
  2. Your site requires a User-Agent that isn't Mozilla/.... Add a custom header.
  3. Your site is geo-blocked from one of the regions. Disable that region or pick a different one.

Increase the confirmation period. Either set confirmation_period_s: 120 (require 2 minutes of consistent down) or remove a flaky region.

Set maintenance_start / maintenance_end (HH:MM) and maintenance_days ([1,3] for Mon/Wed). Checks within the window return unknown, no alerts.

Ask a question... ⌘I