HEARTBEAT · CI/CD · UPTIME

Three monitor types. One alert engine. Zero blind spots.

LastPing catches the failures that never send an error: the cron that ran but didn't finish, the CI pipeline that hung at the last step, the endpoint that started returning 200 but serving garbage. Your job pings in; if it goes silent, LastPing opens an incident and pages you — before your users notice. Free and fully hosted, first alert in under two minutes.

Monitor types

What LastPing watches — and how

Each monitor type uses the same durable detection engine and alert pipeline. Pick the one that matches your signal.

01 · Heartbeat / cron

Dead-man's-switch for scheduled jobs

Your cron job, backup script, or data pipeline calls a LastPing URL when it finishes. LastPing expects that call on a schedule. If the window passes with no ping, it's not a network error you'll see in logs — it's silence. LastPing detects silence and opens an incident.

How it works

  • Add one curl to the end of your job — no library, any language
  • Set the expected period (e.g. every 1 h) and a grace window
  • Transitions: uplatedown on durable database deadlines, not in-memory timers
  • A restart or redeploy never misses a due check
  • On recovery: incident closes, recovery alert fires automatically
# end of your cron job
curl -fsS https://ping.lastping.dev/<id>

What it catches

  • Job ran but crashed before completing
  • Cron expression drifted or was removed
  • Scheduler stopped or container was evicted
  • Job took so long it overlapped the next window
  • Silent Python except: pass swallowed the error
02 · CI/CD signals

Pipeline visibility via signed webhooks

LastPing receives a signed webhook when a GitHub Actions workflow, GitLab CI pipeline, or Jenkins job starts and when it finishes. You get an alert on failure, on silence (job started but never reported back), and on recovery — with a deep-link to the exact run.

How it works

  • One webhook URL per monitor — register it in your CI provider in under a minute
  • Payloads are HMAC-signed; LastPing verifies before processing
  • Detects: explicit failure, job started but never completed (silence), and consecutive-failure streaks
  • Alert body includes a deep-link to the CI run — one click to the log
  • Zero YAML config on the LastPing side

Supported providers

  • GitHub Actions
  • GitLab CI / GitLab.com
  • Jenkins (webhook plugin)
  • Any CI system that can POST a signed JSON payload

What it catches

  • Failed deploy that left prod in a broken state
  • Pipeline that started, hung, and never reported back
  • Silently cancelled run after an infra hiccup
03 · HTTP / uptime

LastPing probes your URL on a schedule

Point LastPing at any public URL. Our prober hits it on your chosen interval, checks the HTTP status code, measures response latency, and optionally scans the body for a keyword. Go down, go slow, or start serving wrong content — you hear about it immediately.

How it works

  • Give LastPing a URL — no agent to install on your server
  • Choose probe interval (seconds to minutes)
  • Check: status code, latency threshold, and/or keyword presence in body
  • SSRF-guarded: probes never reach private IP ranges or cloud-metadata endpoints
  • Same detection engine as heartbeat: uplatedown

What it catches

  • Service completely down (non-2xx or timeout)
  • Latency spike above threshold
  • Response body missing expected keyword (content drift)
  • SSL cert expired or TLS handshake failure
  • DNS failure or routing black hole

Alert pipeline

Route the right signal to the right channel

Five delivery channels. A routing matrix to decide what goes where. Custom message templates. Flap damping so you only get paged when it matters.

Delivery channels

Email
Confirmed opt-in. Default channel — fires on the very first check, no config needed.
Slack
Incoming webhook. Rich message with monitor name, status, and deep-link to the incident.
Discord
Discord webhook. Same rich payload as Slack, coloured by incident severity.
Telegram
Bot message to any chat or group. Instant push with no polling overhead.
Webhook (outbound)
HMAC-signed JSON POST to your URL. SSRF-guarded. Pipe into PagerDuty, Opsgenie, or any custom handler.

Routing matrix

Channel
Down
Recover
Fail
Every run
email
slack
telegram
webhook

Toggle each cell per-monitor. Full flexibility — one check can page Telegram on down, email on recovery, and webhook on everything.

Custom message templates

Write your own alert body using template variables: {check_name}, {status}, {run_url}. Inline variables with a live preview; per event type, so your down alert can read differently from your recovery notice.

Flap damping + rate caps

If a check goes down and recovers within a short window, the alert is held and cancelled on recovery — a single blip does not page you. Per-channel rate caps suppress duplicate notifications for the same incident within a minimum interval.


Status pages

Public status pages — no extra service needed

Share a live status page with your users. Backed by the same monitors that already power your alerts — no duplicate configuration.

Shareable public URL

Each project gets a public status URL. Share it with customers, put it in your docs, link it from your app. No separate hosting. No additional cost.

Embeddable badge

Drop a live-updating status badge into any README, docs page, or landing page. One line of HTML — the badge reflects real-time status from your monitors.

all systems operational

Choose which monitors to show

Not every internal monitor belongs on a public page. Pick which checks are visible on the status page per-project. Internal cron jobs can stay private; the API uptime check can be public.

Live — no polling required

Status pages reflect real monitor state in real time. When an incident opens, the page updates automatically. Your users see the same state you do.


The console

Terminal-native Slate UI — everything in one place

Overview, Monitors, Incidents feed with MTTR, and Analytics over CI run data. Dense, readable, dark — built for engineers who live in terminals.

▦ overview · prod
▦ incidents · last 7d
▦ monitors · all
▦ analytics · ci runs · 30d

Illustrative. Your console shows your real checks, incidents, and run data.


FREE FOR INDIVIDUALS · FULLY HOSTED

First alert in under two minutes.

Add one curl to your cron job. LastPing handles the rest — detection, incidents, alerts — free for individuals, no setup required. Follow the project on GitHub for updates and to file issues.