Everything you need
to know your jobs ran.
CronBeacon is one HTTP endpoint per monitor. Your job posts a check-in after it runs. We watch the schedule. When a check-in is failed or doesn't arrive in time, we alert you — with the exit context you actually need.
One HTTP call. That's the whole client.
Append a curl to your existing crontab. Your job runs exactly as before — the request just tells CronBeacon what happened, with whatever context you want to keep.
- Works in cron, k8s CronJobs, GitHub Actions, Lambda — anywhere with outbound HTTPS.
- Send
SUCCESSorFAILURE— same incident view, two completely different signals. - Attach arbitrary JSON metadata: duration, record counts, batch IDs, error strings.
curl -X POST https://cronbeacon.dev/api/v1/ingestion/check-in \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d '{ "outcome": "SUCCESS", "metadata": { "duration_ms": 1234, "records_processed": 4821, "batch_id": "batch_20240115_02" } }' → HTTP 201 · { "checkInId": "ci_8f2c…" }
Route alerts to where you'll actually see them.
Email today on every plan. Slack and webhooks are next — we'd rather ship one channel that works than four that mostly do.
- Per-monitor grace periods so a 30-second slip isn't an incident.
- Delayed alerts auto-cancel if the next check-in lands before the email leaves the queue.
- Alert emails carry monitor name, failure type, last successful check-in, and any metadata you sent.
We know when slow ≠ broken.
Set the cron schedule. Set a grace window. CronBeacon only flags the monitor as missing when the check-in is genuinely past its deadline — not when your S3 upload took an extra two minutes.
- Configurable grace period per monitor — generous for slow batch jobs, tight for tick-every-minute health checks.
- One incident per outage, regardless of how many check-ins were missed inside it.
- No false positives on new monitors — the silence detector waits for a baseline.
Plays well with anything that can hit HTTPS.
If your runtime can fire an HTTPS request, it can talk to CronBeacon. We keep ready-to-paste examples for the stacks people ask about most — copy, swap the token, ship.
- Plain
curlworks on any Linux box, container, or CI runner. - No agents, no daemons, no SDK lock-in — the whole client surface is one POST.
- Bring-your-own retry policy — we recommend
--retry 3 -fsSand a||branch on failure.
Recipe pages live in guides — these are the examples we ship docs for, not native plugins.
Debug with context, not guesswork.
Every check-in keeps its outcome, timestamp, and any JSON metadata you attached. When a job fails or goes missing, you can see what it last reported — without SSH-ing into the box.
- See
duration_ms,records_processed, custom fields right in the dashboard. - Compare a healthy run against a failed one side by side, by metadata field.
- Retention by plan: 7 days on Free, 90 days on Pro, 1 year on Unlimited.
How we stack up
A short, honest comparison. We're not trying to be your full APM. We do one thing — tell you when a scheduled job didn't run, and what it last reported.
| Capability | CronBeacon | The 800-lb APM | Healthchecks-style ping |
|---|---|---|---|
| Per-monitor HTTP check-in | Add-on | ||
| Distinguishes Failed vs Missing | Limited | Missing only | |
| JSON metadata attached to each check-in | Logs product, $$$ | Limited | |
| One incident per outage (not per ping) | — | ||
| Free cron syntax tools, no signup | — | — | |
| Bills based on number of monitors | Hosts × seats × ingest |