Documentation
Everything you need to monitor your cron jobs and scheduled tasks.
Quick Start
Get started with MissedBeat in under 5 minutes. Monitor your first cron job with just a few simple steps.
1. Create Your Account
Sign up for a free account. No credit card required for the free tier which includes 2 monitors.
Sign Up Free →2. Create a Monitor
In your dashboard, click "Create Monitor" and configure your job settings:
3. Get Your Ping URL
After creating a monitor, you'll receive a unique HTTPS ping URL:
https://missedbeat.dev/ping/abc123def4564. Add to Your Cron Job
Update your cron job to ping MissedBeat when it completes successfully. The && operator ensures the ping only happens if your script succeeds.
0 2 * * * /path/to/backup.sh && curl -m 10 https://missedbeat.dev/ping/abc123def456Integration Examples
MissedBeat works with any scheduled task that can make an HTTP request. Here are examples for popular platforms and languages.
Bash Script
#!/bin/bash
# Your backup script
/usr/bin/backup.sh
# Ping MissedBeat on success
curl -m 10 --retry 3 https://missedbeat.dev/ping/YOUR_PING_IDPython
import requests
def run_job():
# Your job logic here
process_data()
# Ping MissedBeat on success
requests.get("https://missedbeat.dev/ping/YOUR_PING_ID", timeout=10)Node.js
const https = require('https');
async function runJob() {
// Your job logic here
await processData();
// Ping MissedBeat on success
https.get('https://missedbeat.dev/ping/YOUR_PING_ID');
}GitHub Actions
name: Daily Backup
on:
schedule:
- cron: '0 2 * * *'
jobs:
backup:
runs-on: ubuntu-latest
steps:
- name: Run backup
run: ./backup.sh
- name: Ping MissedBeat
run: curl -m 10 https://missedbeat.dev/ping/YOUR_PING_IDDocker / Kubernetes CronJob
apiVersion: batch/v1
kind: CronJob
metadata:
name: backup-job
spec:
schedule: "0 2 * * *"
jobTemplate:
spec:
template:
spec:
containers:
- name: backup
image: backup:latest
command:
- /bin/sh
- -c
- |
/app/backup.sh && \
curl -m 10 https://missedbeat.dev/ping/YOUR_PING_IDAlert Configuration
Configure how you want to be notified when your monitors detect failures.
Email Alerts
Available on all plans. Alerts are sent to your account email when a monitor misses a ping. You can add additional email addresses in your account settings.
Slack Integration
Available on Starter plan and above. Configure Slack webhooks in your monitor settings:
- 1.Create an incoming webhook in your Slack workspace
- 2.Copy the webhook URL
- 3.Paste it into your monitor's alert settings
Discord Integration
Available on Starter plan and above. Create a Discord webhook and add it to your monitor settings.
Webhook Alerts
Available on Pro plan and above. Send alerts to any HTTP endpoint for custom integrations with PagerDuty, Opsgenie, or your own systems.
Webhook Payload Example:
{
"monitor_id": "abc123",
"monitor_name": "Daily Backup",
"status": "down",
"last_ping": "2026-03-20T02: 00: 15Z",
"expected_ping": "2026-03-21T02: 00: 00Z",
"message": "Monitor has not checked in for 25 hours"
}API Reference
Simple HTTP endpoints to ping your monitors. No authentication required for pinging.
/ping/:monitorIdSend a ping to confirm your job ran successfully.
Parameters:
monitorId- Your unique monitor identifierExample:
curl https://missedbeat.dev/ping/abc123def456/ping/:monitorIdSend a ping with optional metadata (log output, error messages, etc.).
Example:
curl -X POST https://missedbeat.dev/ping/abc123def456 \
-H "Content-Type: application/json" \
-d '{"status": "success", "duration": 42}'Best Practices
Only Ping on Success
Use && to ensure the ping only happens if your script succeeds:
0 2 * * * /path/to/job.sh && curl https://missedbeat.dev/ping/YOUR_IDSet Appropriate Grace Periods
Add a grace period to account for normal variations in job runtime. For example, if your job usually takes 5-10 minutes, set a 15-minute grace period to avoid false alarms.
Use Timeouts
Add timeouts to prevent your ping from hanging if MissedBeat is slow to respond:
curl -m 10 --retry 3 https://missedbeat.dev/ping/YOUR_IDMonitor Critical Jobs
Focus on monitoring jobs where silent failures could cause data loss or service degradation:
- •Database backups
- •Data synchronization
- •SSL certificate renewals
- •Report generation
Troubleshooting
Monitor shows "Down" but job is running
Check 1: Verify the ping URL is correct in your cron job
Check 2: Ensure your job is actually completing successfully (check logs)
Check 3: Verify network connectivity from your server to missedbeat.dev
Check 4: Increase the grace period if your job runtime varies
Not receiving alert emails
Check 1: Verify your email address is correct in account settings
Check 2: Check spam/junk folder
Check 3: Add noreply@missedbeat.dev to your contacts
Ping returns error
404 Not Found: Monitor ID is incorrect or monitor was deleted
429 Too Many Requests: You're pinging too frequently (rate limit)
500 Server Error: Temporary issue - retry with backoff