CronWarden

Reporting a value

A check-in tells CronWarden the job ran. A value tells it what the job did — rows processed, bytes backed up, records synced — so CronWarden can judge the outcome instead of just the heartbeat.

Sending a value

Add a value to the success check-in, as a query parameter:

curl -fsS "https://cronwarden.com/ping/your-ping-key?value=1487"

or as a top-level field in a JSON POST body:

curl -fsS -X POST https://cronwarden.com/ping/your-ping-key \
  -H 'Content-Type: application/json' \
  -d '{"value": 1487}'

The value must be a finite number. Anything that isn't — text, NaN, an empty parameter — is treated as if no value was sent, so a malformed value never crashes your job.

The checks you can set

A reported value does nothing on its own. It becomes meaningful when you set one or more rules on the monitor:

  • Floor — alert if the value drops below a minimum (e.g. a sync that processed fewer than 100 rows).
  • Ceiling — alert if the value rises above a maximum.
  • Drift — alert if the value strays more than a set percentage from the trailing average of recent runs. This starts applying once the monitor has a handful of runs behind it.

No value is a failure

Once any value check is set on a monitor, a run that succeeds but sends no value is treated as a failure. Missing evidence isn't a pass — if the job was supposed to report a number and didn't, something is wrong. If you don't want this behavior, leave the value checks unset and use the value purely for the charts.

Where the value shows up

The most recent value appears on the monitor's detail page and in the Prometheus export. Set a rule and it feeds the Assertion Failed alert.