Skip to content

Recipes

Worked examples — multi-region login monitor, heartbeat-backed cron, custom-domain status page, Telegram P1 routing, PagerDuty webhook.

Monitor a login flow from three regions, alert only on a majority

Section titled “Monitor a login flow from three regions, alert only on a majority”
  1. Monitors → + New monitor → HTTP, URL = your login page, method POST with form body, expected 200, 302.
  2. Enable regions iad, fra, sin. Region rule = majority.
  3. Alerts → + New rule, scope = this monitor, trigger = Status becomes down for 3 consecutive checks, channel = your Slack.

A single-region blip won’t page you. Two regions failing in agreement will.

”Don’t page me for the first 5 minutes”

Section titled “”Don’t page me for the first 5 minutes””

Set the monitor interval to 60s and the rule trigger to for 5 consecutive checks. Five consecutive minute-checks = a five-minute warning before the page lands.

Operator side:

  1. Status pages → + New page, slug customer-acme.
  2. Custom domain → Add status.acme.com. Copy the TXT record value.

Customer side:

  1. Customer publishes _pulse-challenge.status.acme.com IN TXT "<value>" in their DNS.

Operator side:

  1. Verify in Pulse. Traefik issues a cert via HTTP-01 on the next request to https://status.acme.com.
  1. Create the Telegram channel (per Notification channels → Telegram).
  2. Create a rule with Severity = P1, scope = all monitors, condition = status_is down for 3, channel = Telegram only.

Other severities go to other channels (e.g. Slack for P2/P3, email for P4/P5).

  1. Monitors → + New monitor → Heartbeat. Name “Nightly DB backup”. Interval 1h (or whatever your job runs at), tolerance 30m.
  2. Copy the heartbeat token.
  3. In your backup script:
Terminal window
set -euo pipefail
pg_dumpall | gzip > /var/backups/db-$(date -u +%F).sql.gz
curl -fsS "$PULSE_BASE/api/v1/heartbeat/$BACKUP_TOKEN"

If the script fails before the curl, the monitor goes red within tolerance and your alert rule fires.

PagerDuty’s Events API v2 accepts arbitrary JSON via webhook. Create a Pulse webhook channel, paste the PagerDuty integration URL, and add a transform layer if you want the bodies to match PD’s schema exactly. Most installs find PD’s permissive schema accepts Pulse’s body unmodified for P1/P2 routing.