Technical

website monitoring service: an uptime monitor that pages you for the wrong thing is worse than none

website monitoring service: an uptime monitor that pages you for the wrong thing is worse than none

A website monitoring service that pages you for the wrong thing is worse than none. I run a self-hosted uptime checker in my homelab, and the one rule that keeps it useful is simple: alert on real failure only, silence is the default path and never a branch.

Detailed image of a server rack with glowing lights in a modern data center.

The problem with noisy alerts

Most monitoring setups fail because they alert on everything. A service that sends a page for every 500ms latency spike or every DNS hiccup will train you to ignore it. I learned this the hard way with my own alerts. The first version of my uptime checker would notify me on every failed check, even if the failure lasted only a few seconds. I’d wake up to a phone full of alerts, and after a week I stopped looking. That’s the worst outcome: the monitor is running, but you’re not watching it.

This isn’t unique to self-hosted tools. Commercial website monitoring services often default to alerting on every single failed check from every location. They want to show you they’re doing something. But if you’re running a homelab or a small site, that’s noise. You need a service that tells you when something is actually broken, not when a packet got dropped.

Silence is the default

The rule I adopted is simple: silence is the default. If my site is up, I hear nothing. If it’s down for more than a few minutes, I get one alert. That’s it. No reminders, no escalations, no “still down” messages every five minutes. One page, and then I deal with it.

This rule came from actual noisy alerts. I had a check that would fail intermittently because of a flaky network path. Every time it failed, I got a text. After a day, I muted the check. Then I forgot about it. When the site actually went down for real, I didn’t notice for hours. The monitor was still running, but I’d trained myself to ignore it.

So I changed the logic. The uptime checker now only alerts after a check has failed for a sustained period—say, three consecutive failures over five minutes. And it sends exactly one alert. After that, it stays quiet until the service recovers. If it recovers and then fails again, I get another alert. But not before.

That’s the key. A website monitoring service should be a fire alarm, not a smoke detector that goes off when you burn toast. You want it to scream when the house is on fire, not chirp every time you open the oven.

What to look for in a monitoring service

If you’re shopping for a commercial website monitoring service, look for one that lets you configure alerting thresholds. Not all of them do. Some will page you on the first failed check from any location. Others let you set a grace period or require multiple locations to fail before alerting. That’s the feature you want.

I don’t use a commercial service myself. My uptime checker is a small script that hits a few endpoints and sends a message to my phone if something’s down for too long. It’s not fancy, but it follows the rule. I’ve looked at the feature sets of the big players—UptimeRobot, Pingdom, StatusCake—and they all offer the same basic thing: checks from multiple locations, alerting via email, SMS, or push. The difference is in how much control you get over the alerting logic.

Some of them have a “maintenance window” feature that suppresses alerts during planned downtime. That’s useful, but it’s not the same as silence by default. You still have to remember to set the window. A better approach is to make the alerting threshold high enough that transient blips don’t trigger it. Then you don’t need maintenance windows for most things.

There’s a related problem in the homelab world: monitoring the wrong thing. I’ve written before about VM status showing as unknown in Proxmox and how that can be a false alarm if you don’t dig into the actual state. The same principle applies here. A website monitoring service that reports a site as down when it’s actually just slow is worse than useless. It creates work.

Detailed view of Ethernet and VGA ports on a server highlighting connectivity features.

The self-hosted alternative

For a homelab, a self-hosted uptime checker is easy to set up and gives you full control over the alerting logic. I run a simple script that uses curl to check a few URLs and sends a message via ntfy or a Telegram bot if a check fails repeatedly. The script is maybe fifty lines. It’s not a full monitoring platform, but it does exactly what I need.

Here’s the core logic in pseudocode:

for url in $URLS; do
  if ! curl -s --max-time 10 "$url" > /dev/null; then
    failures[$url]=$((failures[$url] + 1))
    if [ ${failures[$url]} -eq 3 ]; then
      send_alert "$url is down"
    fi
  else
    failures[$url]=0
  fi
done

That’s it. Three consecutive failures, one alert. No repeated pages. If the service recovers, the counter resets. If it fails again later, the counter starts over and I’ll get another alert after three more failures. This is the silence-by-default rule in code.

You can extend this with multiple checks, different thresholds per check, or integration with a proper notification system. But the core idea stays the same: don’t tell me about a problem until it’s a real problem.

There’s a temptation to add more features—graphs, dashboards, historical uptime reports. Those are nice, but they’re not the point. The point is to know when something is broken. Everything else is noise. I’ve seen people spend hours setting up a fancy monitoring stack with Grafana and Prometheus, only to ignore the alerts because there are too many of them. A simple script with a strict alerting rule beats a complex system with no rule.

This connects to a broader lesson from my homelab: the simplest tool that does the job is usually the right one. I’ve written about diagnosing Proxmox random reboots and how the order of checks matters more than the number of tools. Same here. The alerting rule matters more than the monitoring software.

When a commercial service makes sense

If you’re running a business or a site that makes money, a commercial website monitoring service is worth paying for. They offer checks from multiple geographic locations, which catches problems that a single self-hosted checker won’t. They also have better notification integrations and uptime SLAs. But you still need to configure them to alert on real failure only. The default settings on most services are too aggressive.

Some services let you set a “sensitivity” level or a “confirmation” period. Use those. Set the threshold high enough that a single blip doesn’t trigger an alert. And disable any “informational” notifications. You don’t need to know that your site was slow for two seconds at 3am. You need to know when it’s down.

I don’t use a commercial service for my homelab because the self-hosted script does what I need. But I’ve evaluated the options, and the pricing models are worth understanding. Most charge per check or per monitor, with a monthly fee. Some have a free tier with limited checks. If you only need to monitor a few sites, the free tier might be enough. If you need checks from many locations or advanced features like SSL certificate monitoring, you’ll pay more.

If you’d rather pay for this

If you want a website monitoring service that handles the alerting logic for you, UptimeRobot is a solid choice. It offers checks from multiple locations, configurable alerting thresholds, and a free tier that covers up to 50 monitors with 5-minute intervals. The paid plans are billed per monitor per month, with discounts for annual billing. At the time of writing, the paid plans start at around $8 per month for 50 monitors with 1-minute intervals. That’s reasonable if you need the extra frequency or locations.

For a homelab, I’d stick with the self-hosted script. It’s free, it’s simple, and it follows the rule that matters: alert on real failure only, silence is the default. If you’re running a business, pay for the commercial service and spend an hour configuring the alerting thresholds. The money is worth it if it saves you from ignoring a real outage because you were trained to ignore the noise.

Leave a comment

Comments are reviewed before they appear. Your email is never published.