Outside-in checks that do not cry wolf
An incident opens when independent regions agree, escalates when nobody answers, and stays quiet during your deploys.
One incident, the way your pager sees it
A single-region failure is a suspect, not an incident. Acknowledge the confirmed one and the escalation steps stop.
- shop.clienta.com failed from Frankfurt: suspect, re-checking
- Confirmed by 2 of 2 regions: incident opened
- Telegram #oncall notified
- api.clienta.com failed from one region only: not confirmed, no alert, kept as a regional blip
ci-nightly-build ping received 3 min agoEscalation Example policy
- nowTelegram #oncall
- +1 minSlack #sre
- +5 minPagerDuty (Agency)
Illustrative mock-up
Three things that matter here
Confirmed before it pages
A failure becomes an incident only when all two regions agree. One flaky route stays a regional blip in the history.
Escalation that follows the rota
Telegram first, Slack and e-mail after a delay, signed webhooks from Pro, PagerDuty on Agency. Acknowledge anywhere to stop the rest.
Heartbeats for CI and cron
One curl at the end of a job. A missed ping or a /fail call opens an incident. Heartbeats start on Starter (20); Agency has 500.
Alerts go where this role already works
E-mail, Discord and Google Chat on every plan; Slack, Telegram, Teams and Mattermost from Starter; webhooks from Pro; Zapier and PagerDuty on Agency. No SMS and no voice calls.
- Slack
- Telegram
- PagerDuty
- Microsoft Teams
- Mattermost
- Discord
- Webhook
A deploy night, start to finish
Illustrative scenario, not a customer story
- The pipeline pauses the affected monitors through the API and rolls out.
- It triggers one check from outside, sees it pass and resumes the monitors.
- One region loses a route for 40 seconds. Nobody is paged: it was never confirmed.
- The nightly job misses its ping. A heartbeat incident opens at once and Telegram carries the last log lines.
One page all night, and it was a real one.
What does an hour of downtime cost you?
A rough, honest number to weigh against the price of a monitor. It runs in your browser and nothing is sent anywhere.
For comparison: Starter costs $7 a month. Revenue is not the whole cost (support time, ads still running, trust), so treat this as a floor.
Flapping is a paging problem, not a monitoring problem
Every on-call rotation has the same story. A single probe location loses a packet to a transit provider for forty seconds, the check fails, the pager goes off, and an engineer who was asleep spends ten minutes confirming that nothing is wrong. After a few of those the team mutes the channel, and the next real outage is found by a customer.
Tenium treats one failed request as a hypothesis. The failing region marks the monitor suspect and asks other regions for an immediate second opinion. The monitor goes down and an incident opens only when all two regions report failure inside the confirmation window, which defaults to 60 seconds. Recovery is confirmed the same way, so a service that bounces between healthy and broken produces one incident with the transitions recorded inside it, not a string of open and close notifications.
Live regions today are Amsterdam and London, so the quorum is 2 of two. Two things follow from that and we would rather state them than let you find out. With a quorum of 2 regions, a failure visible from only one place is treated as local to that place, which is what you want for routing trouble and not what you want if you only serve one country that one probe is closest to. And a monitor you deliberately pin to a single region skips confirmation entirely and alerts on its first failure, which the UI labels clearly. The mechanics are written up in regions and confirmation and the longer essay how we confirm downtime.
Escalation that matches how rotations really work
Escalation policies arrive on Pro ($29). A policy is an ordered list of steps with delays: for example, a Telegram group immediately, an email to the primary after five minutes without acknowledgement, a Telegram message to the secondary after fifteen. Acknowledging from the Telegram button, the email link or the API stops the remaining steps. Recovery messages go to everyone who received the original alert.
On Agency ($59) PagerDuty and Zapier are available as destinations, so the incident can land in the tool that already owns your schedules and overrides. If you already run a PagerDuty rotation, treat Tenium as a source of confirmed external signals feeding it, and keep the Tenium-side escalation as the backup path for when the integration itself is down. The alert body carries the monitor, the error, which regions confirmed, the status code, a response excerpt and the resolved IP per region, so the person paged can tell a DNS problem from an application error before opening a laptop. Details live on the alert escalation and incident management pages.
Heartbeats for cron, CI and batch work
The jobs most likely to fail silently are the ones nobody watches: nightly backups, certificate renewals, queue sweepers, data exports, the scheduled pipeline that nobody has looked at since the migration. A heartbeat monitor inverts the usual direction. Instead of Tenium calling your service, your job calls Tenium, and the monitor goes down if the call does not arrive by its deadline.
- Append a single request to the job:
curl -fsS -m 10 https://ping.tenium.app/h/abc123 > /dev/null - Use the
/startsuffix before the job and the bare URL after to track duration; a job that starts and never finishes is flagged too. - Call
/failfrom your error trap to open an incident immediately, with up to 10 KB of log tail attached. - Set a period plus grace, or a cron expression with a time zone, so a nightly job at 03:00 is not judged on summer-time arithmetic.
Heartbeats start on Starter, with 20 there, 100 on Pro and 500 on Agency. See cron job monitoring and the heartbeat docs for every suffix and payload.
Deploys, maintenance and the API
Planned work should not count against uptime or wake anyone. Recurring or one-off maintenance windows are set in the app, with a time zone, and suppress alerts and exclude the period from reported uptime. For pipeline-driven rollouts the REST API gives you POST /monitors/{id}/pause and /resume, so a deploy job can pause the affected monitors, roll out, trigger POST /monitors/{id}/check to verify from outside and resume. Write calls need a write-scoped key on Pro or Agency; the limits are 120 write requests per minute per key and one on-demand check per monitor every ten seconds. The API overview has the endpoints and curl examples, and maintenance windows covers the scheduled kind.
Be clear on what Tenium is not. It does not collect internal metrics, run synthetic browser journeys or replace your tracing. It checks from outside what a customer would see, at as little as 30 s on Pro and Agency, and tells the right person once the evidence is solid.
Webhooks into your own plumbing
Signed webhooks on Pro send incident.opened, incident.acknowledged and incident.resolved events, plus expiry and response-time events, as JSON with an HMAC-SHA256 signature over the timestamp and body. Verify the signature, reject anything older than five minutes and you can fan events into chat ops, a ticket queue or a runbook automation without trusting the network path. Failed deliveries are retried five times over about half an hour. The payload shapes are in the webhook docs.
DevOps questions
Will a single flaky route page my on-call engineer?
Not by itself. One region failing marks the monitor suspect and triggers re-checks elsewhere, and the incident opens only when all two regions agree within the confirmation window. The lone failure stays in the history as a regional blip.
Can I get paged through PagerDuty?
Yes, on the Agency plan ($59). On Pro ($29) you can use escalation policies with Telegram, Slack and email contacts, plus signed webhooks to forward events to any tool that accepts them.
How do I stop deploys from causing false pages?
Schedule a maintenance window in the app for known work, or pause the relevant monitors through the API before the rollout and resume them after. Windows suppress alerts and exclude the time from uptime figures.
What does a heartbeat check cost me in setup?
One curl at the end of the job. The monitor expects a ping by a deadline you set; if it does not arrive, or the job calls the fail URL, an incident opens. Heartbeats start on the Starter plan (20); Agency includes 500.
Is this a replacement for Prometheus or Datadog?
No. Tenium answers the outside-in question of whether your service is reachable and correct from the internet. Internal metrics, traces and logs stay with the tools built for them.
Try it on one noisy service
Pick the monitor that pages you for nothing and put it behind regional confirmation. Free plan, no card.