SMS, Telegram or Bale? Choosing Alert Channels Without Alert Fatigue
Which downtime alerts should go by SMS and which to Telegram or Bale, how to route by urgency, and how to keep the important alerts from drowning in noise.
Log levels exist so you can turn a firehose of messages into something you can search, filter and alert on. Used well, they let you run production at INFO and still find the one ERROR that matters. Used carelessly, every message is "info" and every log search is an archaeology project.
noc724 checks your websites, servers and APIs around the clock and alerts you by SMS, Telegram or Bale the moment something breaks.
| Level | Use it for | Example |
|---|---|---|
| TRACE | Extremely detailed flow, step by step | Entering function, loop values |
| DEBUG | Information useful while diagnosing | Query parameters, cache hit/miss |
| INFO | Normal, noteworthy events | Server started, order created, job finished |
| WARN | Unexpected but handled; may need attention later | Retry succeeded, disk 85% full, deprecated API used |
| ERROR | An operation failed | Payment request failed, cannot write file |
| FATAL / CRITICAL | The process can't continue | Can't connect to the database at startup |
Names vary slightly between languages and libraries (WARNING vs WARN, CRITICAL vs FATAL), but the order is the same everywhere.
Ask who needs to read the message and when:
A level alone isn't enough. Useful lines carry:
2026-10-18T09:14:03.211Z ERROR payments req=7f3c2a order=58114 msg="gateway timeout" duration_ms=10002Structured (JSON) logs make these fields searchable - see structured logging.
| Environment | Typical level |
|---|---|
| Local development | DEBUG |
| Staging | DEBUG or INFO |
| Production | INFO (WARN for very chatty components) |
Make the level configurable at runtime (an environment variable or config reload) so you can raise detail for one component during an investigation without a redeploy.
Don't page on every ERROR line - one failed request among thousands isn't an incident. Alert on:
Logs tell you why something broke; external uptime monitoring tells you, independently, that users can't get in - even when the application is too broken to log anything.
INFO. Enable DEBUG temporarily, ideally only for the component you are investigating.
Yes, for conditions that predict trouble - retries, slow dependencies, resources running low. If nobody ever looks at warnings, demote them to INFO or turn them into metrics.
It depends on cost and regulation. A common setup keeps detailed logs for 7-30 days and aggregated metrics for much longer.
Written by
The noc724 team
Uptime monitoring engineers
We build and run noc724, an uptime monitoring service that checks websites, servers and APIs from several cities in Iran. These guides come from the problems we and our users run into while keeping services online.
Contact the teamExpert on:Logging
Which downtime alerts should go by SMS and which to Telegram or Bale, how to route by urgency, and how to keep the important alerts from drowning in noise.
Why uptime monitors raise false alarms - network blips, timeouts, rate limits, content changes - and the settings that remove them while keeping real alerts fast.
How to set up a simple on-call rotation and escalation policy so every critical alert is answered, without burning out a small team.