- Zero credentials. Alertee never holds a database password, and never opens a connection to you.
- Works from a private network. Your job only needs outbound HTTPS. No bastion, no IP allow-list, no VPC peering.
- Dead-man switch included. If nothing is pushed inside the staleness window, the check fails on its next scheduled run — so silence is an alert, not a gap.
Creating one
Set a staleness window (how long the check tolerates silence, default 60 minutes) and a condition on the pushed value. Alertee mints an ingest URL when the check is saved and shows it to you — the token in that URL is the only credential, so treat it like a secret.greater_or_equal 100 is healthy at 100 rows and alerts at 99. See
Conditions.
Pushing a value
Two body shapes are accepted. Send one or the other, never both.A single number
Named rows (a grid)
One row per dimension — store, region, tenant, feed. Eachname is a cell,
evaluated against your per-cell condition. Up to 500 rows per push, and a name
may appear only once in a batch.
In a cron job
Run your own query, inside your own network, and push us the number:How a push is evaluated
Each push is evaluated immediately — you don’t wait for the next scheduled run:- The values are stored as the check’s latest batch.
- The condition is applied — single-value against
value, grid pername. - A run and result are recorded, so the value appears on the check’s chart and history like any other check.
- An incident is opened or resolved, and alerts route through the check’s alert group, honouring its grace period.
verdict is healthy, alerting, or error. alertee push prints it for you.
Because grace-period state is shared with the scheduled path, a check pushed
every minute alerts once per incident, not once per push.
Staleness (the dead-man switch)
The check’s own interval is what makes silence detectable. On each scheduled run Alertee reads the latest batch and compares its age tostaleness_mins:
- Latest value is inside the window → the condition is evaluated as normal.
- Latest value is older than the window → the check fails with “No data received in the last N minutes”.
- Nothing ever pushed → the check fails with “No data received yet” until the first push arrives.
staleness_mins later never rotates the ingest URL, so a retune won’t
break jobs already pushing.
Retention
Pushed samples are kept for 30 days and pruned daily. Only the most recent batch is ever evaluated. The durable record is the check’s run history, which follows normal check-result retention — so a value’s chart and incident trail outlive the raw sample.Limits
Everywhere else
Available from the app (check type “Push a number”), the CLI (--type push, plus the alertee push command), and the
MCP server (create_check with check_type: "push", which returns
the ingest URL and an example curl).