Umami is a lightweight, privacy-focused analytics platform that you can self-host on a VPS, Docker, Vercel, or Railway. It replaces Google Analytics without the privacy trade-offs — but because every website you instrument depends on Umami's tracking script loading correctly, a silent Umami outage means your analytics data goes dark across all your properties at once. If the /script.js tracking endpoint fails, no pageview events reach your Umami instance. If the dashboard goes down, your team can't see traffic. If the SSL certificate expires, browsers block the tracking script entirely. Vigilmon gives you external visibility into Umami's health endpoint, web dashboard, tracking script, and SSL certificate so you catch these failures before they silently corrupt days of analytics data.
What You'll Build
- A monitor on Umami's
/api/heartbeathealth endpoint - An HTTP monitor for the Umami web dashboard
- A monitor for the
/script.jstracking script endpoint - SSL certificate monitoring for your Umami domain
- An alerting setup that distinguishes backend failures from tracking script delivery failures
Prerequisites
- A running Umami instance with a public domain (Docker, VPS, Vercel, or Railway)
- HTTPS configured (e.g.,
https://analytics.example.com) - A free account at vigilmon.online
Step 1: Verify Umami's Health Endpoint
Umami exposes a dedicated health check at /api/heartbeat:
curl https://analytics.example.com/api/heartbeat
A healthy Umami instance returns HTTP 200 with a plain-text or minimal JSON body indicating the server is alive. This endpoint is unauthenticated and requires no session token — it confirms the Node.js server is running and accepting requests.
Step 2: Create a Vigilmon HTTP Monitor for the Health Endpoint
- Log in to Vigilmon → Add Monitor → HTTP.
- URL:
https://analytics.example.com/api/heartbeat. - Check interval: 60 seconds.
- Response timeout: 10 seconds.
- Expected status:
200. - Label:
Umami Health API. - Click Save.
This monitor catches:
- Node.js process crashes or restarts
- Database connectivity failures (Umami stores all event data in PostgreSQL or MySQL)
- Environment variable misconfigurations after redeploys
- Memory exhaustion causing the server to become unresponsive
On Vercel or Railway, the heartbeat endpoint also catches cold-start timeouts and function invocation limits — useful signals when Umami is deployed serverlessly.
Step 3: Monitor the Umami Web Dashboard
The health endpoint confirms the API server is alive, but the dashboard involves the Next.js frontend renderer and the session-based authentication layer. Monitor it separately:
- Add Monitor → HTTP.
- URL:
https://analytics.example.com. - Check interval: 60 seconds.
- Expected status:
200. - Keyword:
Umami. - Label:
Umami Dashboard. - Click Save.
This monitor catches reverse proxy misconfiguration, CDN routing failures, and Next.js rendering errors that wouldn't affect the /api/heartbeat response but would prevent your team from viewing analytics.
Step 4: Monitor the Tracking Script Endpoint
This is the most business-critical monitor for an analytics platform. The tracking script at /script.js (or /umami.js in older versions) is embedded in every website you track. If it fails to load, visitors' browsers silently skip event collection — you lose data in real time with no server-side error to observe.
- Add Monitor → HTTP.
- URL:
https://analytics.example.com/script.js. - Check interval: 60 seconds.
- Response timeout: 10 seconds.
- Expected status:
200. - Keyword:
umami(appears in the script contents). - Label:
Umami Tracking Script. - Click Save.
Why this matters: When your dashboard appears healthy but the tracking script returns 404 or 500, you lose analytics data across every instrumented site without any visible error. Vigilmon's external check catches this before you notice the missing data hours later.
Step 5: Monitor SSL Certificates
Because the Umami tracking script is loaded by external browsers on your users' sites, SSL certificate validity is especially important:
- An expired Umami SSL certificate causes all modern browsers to block the tracking script load (mixed content / certificate errors), silently stopping data collection
- HTTPS is required for the tracking script to fire on HTTPS sites
- Add Monitor → SSL Certificate.
- Domain:
analytics.example.com. - Alert when expiry is within: 30 days.
- Alert again: 14 days, 7 days, 3 days, 1 day.
- Click Save.
If Umami is deployed on Vercel or Railway, SSL is managed by the platform — but you should still monitor it, since custom domain SSL provisioning can fail during domain transfers or DNS changes.
Step 6: Configure Alerting
In Vigilmon under Settings → Notifications, configure your alert channels:
| Monitor | Trigger | Action |
|---|---|---|
| /api/heartbeat | Non-200 | Check Node.js process; inspect database connection; review deploy logs |
| Web Dashboard | Non-200 or keyword missing | Check reverse proxy config; inspect Next.js logs |
| /script.js | Non-200 or keyword missing | Check static file serving; verify Umami version compatibility |
| SSL certificate | < 30 days to expiry | Renew certificate; check ACME/Let's Encrypt renewal logs |
Alert after: 2 consecutive failures for all monitors — transient network blips occasionally affect tracking script delivery from external monitoring nodes.
Common Umami Failure Modes and What Vigilmon Catches
| Scenario | Vigilmon monitor |
|---|---|
| Node.js process crash | /api/heartbeat unreachable; alert within 60 s |
| Database (Postgres/MySQL) down | Health check returns non-200; all event writes fail silently |
| Tracking script 404 after upgrade | /script.js monitor fires; analytics data stops on all tracked sites |
| Reverse proxy misconfiguration | Dashboard and script monitors fire; API heartbeat may still pass |
| SSL certificate expires | SSL monitor alerts at 30-day threshold; browsers block script load |
| Vercel/Railway cold start timeout | Heartbeat returns 504; sporadic data loss during traffic spikes |
| DNS misconfiguration | All HTTP and SSL monitors fire simultaneously |
| Memory exhaustion on VPS | Health check becomes slow or times out; dashboard requests hang |
Analytics data is one of those resources that seems low-urgency until someone asks "why did traffic drop 40% last Tuesday?" — and the answer is that Umami was down and nobody noticed. Vigilmon watches Umami's health endpoint, dashboard, tracking script, and SSL certificate so you know within a minute when analytics collection stops, rather than discovering a data gap days later.
Start monitoring Umami in under 5 minutes — register free at vigilmon.online.