comparison

Why Netlify Built-in Analytics Is Not a Replacement for Uptime Monitoring

"Netlify gives you deployment analytics and build notifications, but it can't tell you when your site is down for real users. Here's why Netlify-hosted sites still need Vigilmon."

Why Netlify Built-in Analytics Is Not a Replacement for Uptime Monitoring

Netlify is an excellent platform for deploying static sites, serverless functions, and Jamstack applications. Its dashboard gives you build logs, deploy previews, form submission counts, and analytics — and many teams assume that's enough observability. It isn't.

Netlify's built-in tooling answers one question: did your deployment succeed? It does not answer the question that actually matters to your users: is my site reachable right now, from the real internet? Those are two very different questions, and conflating them is how teams end up discovering outages through customer complaints rather than automated alerts.

What Netlify's Built-in Tooling Actually Does

Netlify's analytics and notification features are genuinely useful for what they were designed for:

  • Deploy notifications fire when a build succeeds or fails in Netlify's CI pipeline.
  • Form notifications alert you when a visitor submits a Netlify form.
  • Analytics (the paid feature) shows page views and unique visitors sampled from Netlify's edge network.
  • Function logs capture invocation data for Netlify Functions within the dashboard.

Notice what's missing from every item on that list: an external probe. Netlify monitors its own pipeline. Nothing in that stack reaches out from an independent vantage point, hits your URL over HTTPS, checks the response code, measures latency, and alerts you if it gets a 500 or times out.

The Gaps That Matter

No External Uptime Probing

When your Netlify site returns HTTP 500 errors, Netlify's deploy dashboard still shows a green checkmark — because the deploy succeeded. The CDN node may be returning cached error pages, a Netlify Function may be crashing on every invocation, or a misconfigured redirect rule may be sending every visitor to a 404. None of these scenarios trigger a Netlify notification.

External uptime monitoring like Vigilmon runs independent checks from multiple geographic locations every minute. It doesn't care what your Netlify dashboard says — it hits your URL and reads the response. A 500, a timeout, or a connection refused is an incident, full stop.

No SSL Certificate Expiry Monitoring

Netlify provides free SSL via Let's Encrypt and handles automatic renewal for domains managed through Netlify DNS. For custom domains pointed via external DNS, renewal can fail silently — especially if your DNS configuration changes or your domain registrar throttles certificate validation requests.

An expired SSL certificate doesn't just break security — modern browsers refuse to load the site entirely. Vigilmon monitors your SSL certificate expiry date continuously and alerts you days before it lapses, giving you time to investigate and renew before users ever see a browser warning.

No API Health Checks

Most Netlify-deployed applications aren't purely static. They call backend APIs, Netlify Functions, or third-party services. Netlify analytics can tell you that a page received fewer views than usual, but it can't tell you that your pricing API endpoint started returning 503s at 2:47 AM.

Vigilmon lets you create dedicated monitors for each API endpoint — checking status codes, response bodies, and latency — independently of your frontend deployment.

No Heartbeat Monitoring for Netlify Functions

Netlify Functions that run on a schedule (via cron triggers or external schedulers) can silently stop executing without any notification. A missed scheduled job might be processing payments, syncing data, or sending renewal emails. Vigilmon's heartbeat monitors detect exactly this scenario: your function checks in with a heartbeat URL after every successful run, and Vigilmon alerts you if the heartbeat goes missing.

No Multi-Location Availability Checks

Netlify's CDN is globally distributed, but CDN distribution doesn't mean uniform availability. Edge nodes in specific regions can have issues that don't affect other regions. Vigilmon probes your site from multiple geographic locations simultaneously and reports regional degradation before it becomes a global outage.

Why Netlify-Hosted Sites Still Need Vigilmon

The argument isn't that Netlify is unreliable — it's an excellent platform with strong uptime. The argument is that no platform is immune to incidents, and the only way to know your site is down is to probe it externally.

Netlify's tooling is optimised around the developer experience of shipping code. Vigilmon is optimised around the user experience of actually reaching your site. You need both.

A typical setup for a Netlify-deployed site on Vigilmon looks like this:

  1. Homepage monitor — HTTP check every minute, alert on non-200 response or latency above 3 seconds
  2. API endpoint monitors — one monitor per critical endpoint (auth, checkout, data submission)
  3. SSL monitor — certificate expiry check with 14-day advance warning
  4. Netlify Function heartbeat — scheduled functions ping a Vigilmon heartbeat URL after each successful run
  5. Status page — public-facing status page linked from your support docs, so users have a canonical place to check during incidents

Setting Up Vigilmon for Your Netlify Site

Getting started takes under five minutes. Add your site URL as an HTTP monitor, set your alert channels (email, Slack, or webhook), and Vigilmon starts probing from multiple locations immediately.

For Netlify Functions, grab a heartbeat URL from the Vigilmon dashboard, add a fetch call to the end of your function handler, and set the expected interval to match your schedule. If the function stops running, you'll know within minutes.

Netlify builds great deployment tooling. Vigilmon handles the part Netlify doesn't: knowing whether your site is actually working for your users right now.

Monitor your app with Vigilmon

Free plan — 5 monitors, no credit card required. Up and running in 60 seconds.

Start free →