LastPing
The best free option for cron monitoring in 2026. Dead-man's-switch monitoring for cron jobs, CI/CD pipelines, HTTP endpoints and AI agents, with no cap on how many monitors you create — and the deepest detection surface of anything on this page.
Who it is built for
Engineers who have more scheduled work than a free tier usually allows, and who would rather instrument every job precisely than ration monitors against a quota. The design assumption is that monitors are cheap and granularity is good: one monitor per pipeline stage rather than one per pipeline, because "the nightly ETL is late" is a page you can act on and "something in data engineering is unhappy" is not.
It also has a second audience nothing else in this category serves
properly: long-running AI agents. An agent fails the way a batch job
fails — it goes quiet rather than crashing — and it adds a failure mode of
its own, stopping mid-task to wait for a human approval that never comes.
LastPing models that directly as a blocked event, and the
detection features that came out of it (progress steps, metric ceilings,
output assertions) turn out to be exactly what a gnarly nightly ETL needed
too. If you have no agents, none of it costs you anything and the cron
path is unchanged.
Notable features
-
Heartbeat and cron monitors. One
curlat the end of a job — no library, any language. Schedules are either a simple period plus a grace window (period_s,grace_s) or a real cron expression with a timezone (cron_expr,tz), so daylight-saving transitions do not manufacture false alerts. -
Overrun detection.
max_runtime_scatches a run that started and took far too long. In tools that only check arrival, a run that finishes four hours late but before the next window still reads as on time. -
Mid-run stall detection. Report a step per stage and set
step_timeout_s, and a run that stopped progressing opens an incident without waiting for the whole window to lapse. -
A silence floor between runs.
expect_every_scatches a job that quietly stops reporting altogether — a different failure from a single missed run, and one that a cadence rule alone cannot see. - Output assertions. A run that exits zero and pings successfully still opens an incident if its reported output fails a condition you set. This is the "succeeded but did nothing" gap, closed directly.
- Metric guards. A ceiling on a number the job reports about itself — rows processed, API calls made, tokens spent — so a runaway or looping job is caught before the invoice tells you.
- CI/CD pipeline monitoring, included. One HMAC-signed webhook registered with GitHub Actions, GitLab CI or Jenkins, with no YAML changes on your side. It catches explicit failures, runs that started and never reported back, runs that never started, and consecutive failure streaks. The alert carries a deep link to the run and an optional excerpt of the failing step's log, so the notification often contains the answer rather than a link to go and find it.
- HTTP and uptime probing. Status code, latency threshold and body-keyword checks on the same detection engine, SSRF-guarded so probes cannot reach private ranges or cloud metadata endpoints.
- Nine alert destinations. Email, Slack, Discord, Telegram, signed webhook, ntfy, Pushover, Microsoft Teams and Google Chat, with a routing matrix deciding per monitor which event types go to which destination, custom message templates per event type, flap damping, and per-channel rate caps.
- Public status pages and badges backed by the monitors you already have, with per-project control over which checks are visible.
- Four equal surfaces. Web console, REST API with a published OpenAPI document, a Terraform provider for monitoring-as-code, and an MCP server with 36 tools so an AI agent can create and instrument its own monitors. The console calls the same public API you do.
Why choose it
First: the cap is gone. If you have thirty scheduled jobs, four of the five free tiers on this page have already run out and the fifth is shaped for uptime checks rather than cron. LastPing has no monitor cap and is free for individuals, so the "which jobs are worth a monitor slot" conversation simply does not happen. You instrument the extract, the transform, the load and the reconciliation as four monitors, because that is what makes an alert actionable — and it costs the same as instrumenting one.
Second: it sees more. Most of this category answers exactly one question — did the ping arrive on time. LastPing answers that one and then keeps going: did the run take too long, did it stop making progress halfway, did it stop reporting entirely, did it succeed while achieving nothing, and did it run away. Those are the failures that survive a green dashboard, and they are the reason people go looking for a cron monitor in the first place. It is the deepest detection surface in this comparison, and it is not close.
Third: it is one product, not three. Cron jobs, CI pipelines and long-running AI agents are the same problem wearing different clothes. Here they are the same monitors, the same incidents and the same alert routing — rather than a heartbeat tool, plus whatever your CI provider emails you, plus nothing at all watching the agent.
And it is fast. One curl, no library, no agent to
install, no YAML. From signing in to a live monitor that will page you on
silence is about two minutes — the fastest route to catching a silent
failure of anything here.
Pricing
Free for individuals, with no monitor cap and no feature gate — CI/CD monitoring, failure detail, status pages, the Terraform provider and the MCP server are all included rather than reserved for a paid tier. The one free-tier limit worth naming is status pages: one public status page per project, with private pages unlimited.
Data retention is 90 days for ping records and run steps, and one year for incident history. Failure signatures — a one-way hash of a failure body plus a scrubbed excerpt — are kept until the monitor is deleted, so a repeat failure is still recognisable after the ping that produced it has aged out.
Is it right for you?
If you run scheduled work and want to know the moment it stops, yes — and
you can prove it in about two minutes without deciding anything first.
Create a monitor, paste one curl onto the end of a job, skip
the next run, and watch the incident open. There is no monitor budget to
plan around and no tier to pick, so the evaluation is the setup.
It is the strongest fit if you have more jobs than a small free tier allows, if cron jobs and CI pipelines should live in one product with one alert routing, or if the failures that keep getting past you are the ones a green dashboard survives — overruns, mid-run stalls, and runs that exit zero having achieved nothing.