Cron job monitoring with context, not just status.
Most tools tell you if your job ran. PingRudy tells you if it ran too long, processed zero records, or got stuck, before your users notice.
“It didn't error out, it just sat there for hours consuming resources until someone noticed manually.”
Your job ran. That doesn't mean it worked.
These are the failures that slip through every other monitoring tool.
The Zombie Job
Your backup script ran for 4 hours instead of 4 minutes. No error was thrown. The server ran out of memory. Nobody knew until it crashed.
The Silent Success
Your job pinged success. It also processed 0 records and backed up 0 bytes. Everything looked green. Nothing actually happened.
The Context Black Box
Your job failed. Your alert says "job failed." Now you SSH in, dig through logs, and lose 20 minutes reconstructing what happened.
The Race Condition
The previous run hadn't finished when the next one started. Now two jobs are writing to the same database table at the same time.
Context-aware monitoring
We don't just check if your job ran. We check if it actually did anything.
Duration thresholds
Set a max run time. If your job takes 4 hours instead of 4 minutes, you get an alert, not a server crash.
Payload validation
Send records_processed, bytes_written, or any metric with your ping. Alert when the value is zero or out of range.
Log context on failure
Include a message in your ping payload. Failure alerts arrive with context. No SSH, no log archaeology.
Overlap detection
Ping /start and /end around your job. Get an instant alert when two instances run at the same time.
Duration deviation alerts
PingRudy learns your job's normal run time. Alert when it finishes too fast (processed nothing) or too slow (stuck).
One line to get started
Works from any shell, cron, or CI environment. No SDK required.
# Simple heartbeat curl -fsS https://pingrudy.com/ping/my-backup-job
How it works
Set up in under two minutes. No agent to install, no SDK required.
Create a monitor
Give your job a name and set the expected schedule, duration window, and alert channels.
Add one line
Send a curl ping (with optional JSON context) at the end of your script. Works in any language or platform.
Get alerted with context
When a job is late, hangs, or processes zero records, you get an alert that tells you exactly what happened. No log diving required.
How we compare
Most tools only check if a job ran. PingRudy checks if it actually worked.
| Feature | PingRudy | Healthchecks.io | Cronitor | Dead Man's Snitch |
|---|---|---|---|---|
| Heartbeat monitoring | ||||
| Duration limits | ||||
| JSON payload validation | ||||
| Log context in alert | ||||
| Overlap detection | ||||
| Free tier | 1 monitor | 20 monitors | 5 monitors | 1 monitor |
| Starting paid price | $9/mo | $20/mo | $2/monitor | $5/mo |
Simple, transparent pricing
First monitor is free forever. Upgrade when you need more.
Solo
$9
/mo
• 10 monitors
• Email + Slack alerts
• 30-day log retention
• Duration thresholds
• Payload validation
Frequently asked questions
Everything you need to know before you connect your first job.
Silent failures happen when a cron job runs without error but produces no useful output: no records processed, no files written, no emails sent. PingRudy catches these by letting you include a JSON payload with each ping (e.g. records_processed, bytes_written). If the value is 0 or outside your expected range, PingRudy alerts you before your users notice.
A zombie cron job is a job that started but never finished. It's still running (consuming memory or a DB connection) while the scheduler launches a new instance. PingRudy's overlap detection catches this: ping /start before your job begins and /end when it finishes. If a new /start arrives before the previous /end, you get an immediate alert.
Yes. Healthchecks.io is great for basic heartbeat monitoring (did the job run at all?), but it doesn't support duration limits, JSON payload validation, or log context in alerts. PingRudy is built for teams that need to know not just that a job ran, but that it did something meaningful within an expected time window.
Set a max_duration threshold on your monitor. When you ping /start, PingRudy starts a timer. If /end doesn't arrive within your threshold (e.g. 5 minutes for a job that normally takes 30 seconds), you receive a "job hanging" alert with a timestamp. No SSH needed..
Yes. Send a JSON body with your ping: { "status": "fail", "message": "DB connection refused", "records_processed": 0 }. PingRudy includes this context directly in your alert (email, Slack, PagerDuty), so you know why the job failed without digging through server logs.
Yes, PingRudy works anywhere you can run a curl command. That includes GitHub Actions steps, Railway cron services, Fly.io scheduled machines, Heroku Scheduler, AWS Lambda, Kubernetes CronJobs, and any other platform or language. No agent or SDK required.
Stop finding out too late
Join developers who monitor cron jobs the right way. First monitor free. No credit card required.