Monitoring & alerting · 2026

Stop sending every alert to Slack.
The 4-channel routing matrix I built after 18 months of being paged at the wrong time.

Most founders pick one alert channel and pipe everything there. After a year of running Slack, Telegram, Discord and email in parallel — and roughly 4,000 alerts — here is the severity-and-audience routing matrix that actually works, plus the 30-line router that enforces it. None of it is platform-specific.

The right alert, on the right channel.

Belmo classifies your production anomalies by severity and pushes the urgent ones straight to a Telegram bot — included on every plan, even the free one.

No credit card required 1 service free forever Telegram, email & Slack alerts Severity-based routing built in
Frequently asked

Quick answers

Why shouldn't I send P0 alerts to Slack?

Slack's mobile notifications respect your phone's Do Not Disturb, so a 3am alert in Slack will not ring your phone unless you configured a high-priority keyword. P0 means "wake one human up", and after hours Slack is no better than email. Route P0 and P1 to a Telegram bot DM that bypasses DND, and keep Slack for next-morning team triage.

Which channel should each alert go to?

Tag every alert with a severity (P0–P3) and an audience (me, team, community). P0/P1 go to a Telegram bot DM, P2 anomalies go to Slack or a private Discord, P3 noise goes to a daily email digest, and P3 deploy/build/signup events go to Discord or Slack. Once you answer "does it need to wake me up" and "who is it for", the channel picks itself.

How do I stop alert fatigue from a single channel?

Demote ruthlessly — if it is not actionable within an hour, it goes to a daily email digest, not your pager. Then add a 30-minute dedup window: hash the message, store the hash in Redis or a sent_alerts table, and skip duplicates seen in the last 30 minutes. Long enough to suppress a failing cron, short enough that a real incident still re-pings if it persists.

Do I need PagerDuty for a small team?

Below roughly five engineers with an on-call rotation, no. A Telegram bot DM that bypasses Do Not Disturb is the cheapest pager you can build — one curl call, no SaaS bill, lands on your lock screen with a sound. At five engineers with a real rotation, PagerDuty pays for itself within a quarter.

How much code does alert routing actually take?

About 30 lines. Most founders assume alert routing is a project; it is a function. You call sendAlert({ severity, audience, message }) everywhere, and a tiny router maps P0/P1 to Telegram, P2 to Slack or Telegram by audience, and P3 to Discord or an email-digest table. The discipline that pays off most is tagging severity and audience at the source.