Docs/Features

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

  1. Go to Dashboard → Monitors and click New Monitor.
  2. Select type Cron.
  3. Configure the monitor:
    • Interval — how often your job runs (e.g. 60 minutes).
    • 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. 5 minutes).
  4. 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 -fsS so 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_period minutes.
  • Fail signal received — alert fires immediately.
  • Recovery — when the next successful ping arrives, the incident closes and a recovery alert is sent.