Cron jobs · backups · GitHub Actions · reports

Know when your events stop firing

Register expected events, POST a heartbeat when they succeed, and get email, Slack, Discord, Telegram, or a GitHub Issue if a window is missed — before users notice. Optional JSON becomes last values and charts.

No credit card · 3 free monitors · First alert in minutes

nightly-backup.sh
# After your job succeeds
curl -fsS -X POST https://gonewatch.com/api/heartbeat/YOUR_TOKEN \
  -H "Content-Type: application/json" \
  -d '{"duration_ms":184320,"bytes":2147483648,"tables":42}'

No agent. No SDK. Optional JSON for charts.

Fits the stack you already have

Alerts

  • Email
  • Slack
  • Discord
  • Telegram
  • GitHub IssuesTicket
  • LinearTicket

Jobs

  • GitHub
  • cURL
  • Node.js
  • Python

See it in action

A missed heartbeat becomes an overdue window, then a Down alert — before your users notice anything broke.

What happens when a job slips

Production DB backup

Daily at 8:00 PM · Eastern

Up

Last heartbeat · 2 minutes ago

Up → Overdue → Down → Alert

Email, Slack, Discord, or Telegram — GitHub Issues on paid plans

Your dashboard at a glance

gonewatch.com/dashboard

Monitors

Track heartbeats from cron jobs, backups, and pipelines.

New monitor
4 monitors1 down1 overdue2 up
  • Production DB backup

    No pings yet·Daily at 8:00 PM · Eastern

  • Weekly revenue report

    45 minutes ago·Mon at 9:00 AM · Eastern

  • Stripe subscription sync

    3 minutes ago·Every 15 minutes

  • Search index rebuild

    6 hours ago·Daily at 3:00 AM · UTC

Questions before you sign up? Read the FAQ

New · payload charts

Send a number. See a chart.

The same POST can include JSON — duration, size, row counts, or your own keys. Gonewatch keeps top-level scalars and turns them into last values, sparklines, and expandable history. Nested objects and logs are dropped. The ping still counts.

  • duration_ms formats as time · 184320 → 3m 4s
  • bytes formats as size · 2147483648 → 2 GB
  • Empty body still counts. JSON is optional.
Payload docs →
gonewatch.com/dashboard/monitors

nightly-backup

Last payload · optional JSON on the same POST

duration_ms
3m 4s
bytes
2 GB
tables
42

duration_ms

3m 4s

bytes

2 GB

Simple heartbeats

POST when your job finishes. One URL per monitor — no agent required.

Fixed time of day or rolling interval

Daily at 8 PM, weekly on Monday, or every N minutes — plus a grace window after each expected window.

Email, Slack, Discord, Telegram, GitHub

Chat alerts on Down and recovery on every plan. GitHub Issues and Linear tickets open on Down and close on recovery — Basic and Pro.

Optional JSON charts

Send scalars with the ping. Last values and sparklines on every plan — not log storage.

How it works

From zero to your first alert in minutes.

  1. 1Create a monitor — fixed time of day or rolling interval
  2. 2Copy the heartbeat URL into your script, cron, or GitHub Action
  3. 3POST when the event completes — optional JSON for charts
  4. 4Get email, Slack, Discord, Telegram — or a GitHub Issue — if the heartbeat stops arriving

Questions before you sign up

The objections that usually come up before the first monitor.

Do I need a credit card to start?

No. The Free plan includes monitors, email alerts, and status history with no credit card required. Upgrade from your dashboard when you need more capacity.

How do heartbeats work?

After your job succeeds, POST to your monitor's unique URL. Gonewatch records the ping and expects the next one on your schedule — at a fixed time of day or on a rolling interval — with a grace window after each expected window. No agent or SDK is required — a curl in your script is enough.

Can I send data with a heartbeat?

Yes. Include JSON with a heartbeat — duration, counts, or other fields — and Gonewatch stores top-level scalars. You'll see last values, charts, and expandable history on the monitor. Nested objects, arrays, and oversized payloads are dropped; the ping still counts. See the payload docs for limits.

How fast will I be alerted?

Within a few minutes after your grace period ends without a heartbeat — typically under three minutes. Gonewatch checks monitors continuously, marks the monitor Down at that threshold, and sends your alert email. You are not waiting on your job's next scheduled run to find out.

What if my job runs late but still succeeds?

As long as a heartbeat arrives before the grace window ends after the expected time or interval, the monitor stays healthy. Tune grace period to match how late your jobs can run without being a problem.

Billing and plan details live on the pricing FAQ.

Stop finding out from users

Silent cron failures are expensive. Gonewatch tells you when expected work didn't happen.

Get started free

No credit card · 3 free monitors · Cancel anytime