quickstart
From zero to a monitor that pages you when production goes down, in three steps and about two minutes.
1. create an account
Sign up with an email + password, or use GitHub or Google
OAuth. pngr automatically creates a default organization for you on
signup — you can rename it later from /settings/general, or create
additional orgs from the org switcher in the sidebar.
Free accounts get five monitors and one organization with three members. No credit card.
2. add your first monitor
From the dashboard, click + new monitor (top right) or hit n on
the /monitors page. Fill in:
- name — anything human-readable. Shows up in alerts.
- url — the endpoint pngr should hit. Full URL, scheme and all.
- interval — how often to check. Defaults to 60 seconds, which is also the minimum; presets go up to 1h.
- conditions — at least one. New monitors seed
status_code: 200-299and a generouslatencyfail threshold. Addlatencywarn tiers for an SLO budget,body_containsfor a string match, orcert_expiryfor certificate-expiry warnings. See check conditions for the full set.
Click save and the monitor starts checking on the next scheduler tick (within ~10s).
$ pngr monitor create \
--name "api · staging" \
--url https://api.staging.example.com/health \
--interval 60s \
--status 200-299 \
--latency-max 800ms
3. wire an alert
A monitor that fails silently isn't worth much. Add a notification channel and a rule.
Channel — /channels → + new channel. Pick Slack / Teams /
Telegram / Email / Webhook / SMS, paste the webhook URL or address, run
send test ping to confirm delivery. Per-provider setup is in set up
notifications.
Rule — /rules → + new rule. Pick the monitor, choose
on failure, set:
- failure threshold — how many consecutive failed checks before the rule fires. Default 1 = fire on first failure. Bump to 2–3 if the monitor is flapping.
- channel — the one you just created.
- renotify minutes — resend every N minutes while the monitor stays down. 0 disables.
Save. Next time the monitor fails the threshold, the channel gets a notification within the next check interval.
Multi-tier escalation? Add a second tier with a different channel (say, pager-style PagerDuty after 10 minutes vs Slack on the first failure). Each tier fires after its delay if the monitor is still down. See alerting & escalation.
what's next
- concepts → monitors — the data model behind what you just built.
- the pngr cli —
pngrruns everything the UI does, from the terminal or CI. - stack as code — declare monitors, channels, and rules in one YAML file instead of clicking through forms.