Cron Monitors
Verify that your scheduled jobs and background tasks actually run on time.
2 min read
How it works
Unlike other monitor types, cron monitors do not make outbound requests. Instead, your background job pings SignalDocks after it completes. If SignalDocks doesn't receive a ping within the expected window, an alert fires.
This catches silent failures — jobs that don't error out but simply never run.
Setup
- Go to Dashboard → Monitors and click New Monitor.
- Select type Cron.
- Configure the monitor:
- Interval — how often your job runs (e.g.
60minutes). - Cron expression (optional) — e.g.
0 5 * * *for more accurate "Next expected" display. - Grace period — minutes after the deadline before an alert fires (e.g.
5minutes).
- Interval — how often your job runs (e.g.
- Click Create. You'll see a Ping URL on the monitor detail page.
Pinging from your job
Add the ping call at the end of your job script — after the work completes successfully.
Bash / cURL
# Simple success ping (most common)
curl -fsS "https://signaldocks.com/api/ping/{KEY}"
# With start signal — lets SignalDocks measure job duration
curl -fsS -X POST "https://signaldocks.com/api/ping/{KEY}/start"
# ... your job runs ...
curl -fsS "https://signaldocks.com/api/ping/{KEY}"
# Explicit failure signal
curl -fsS -X POST "https://signaldocks.com/api/ping/{KEY}/fail"
Tip: Use
curl -fsSso curl exits non-zero on HTTP errors but doesn't output progress to stdout.
Node.js
// At the end of your job
await fetch('https://signaldocks.com/api/ping/{KEY}').catch(() => {})
Python
import requests
# At the end of your job
try:
requests.get('https://signaldocks.com/api/ping/{KEY}', timeout=5)
except Exception:
pass # Don't let a ping failure break your job
GitHub Actions
- name: Run my job
run: ./my-job.sh
- name: Ping SignalDocks
if: success()
run: curl -fsS "https://signaldocks.com/api/ping/{KEY}"
Ping endpoints
| Endpoint | Method | Meaning |
|---|---|---|
/api/ping/{KEY} |
GET or POST | Job completed successfully |
/api/ping/{KEY}/start |
POST | Job started (optional) |
/api/ping/{KEY}/fail |
POST | Job failed explicitly |
All endpoints return 200 OK on success. Replace {KEY} with the ping key shown on your monitor detail page.
Alert behavior
- No ping received — alert fires after
interval + grace_periodminutes. - Fail signal received — alert fires immediately.
- Recovery — when the next successful ping arrives, the incident closes and a recovery alert is sent.