Vercel uptime monitoring
Vercel does not request your production domain from outside on any plan, so uptime monitoring on Vercel means a health route that cannot be cached plus an external monitor that calls it every few minutes and alerts you when it stops answering 200.
What Vercel gives you
Vercel sees every request that reaches it. Observability shows function errors and latency per route, and on Pro with Observability Plus you can add alert rules for error anomalies and usage anomalies, measured over 5-minute windows and sent by email, Slack or webhook. Failed deploys get a notification too. Hobby has no alert rules at all.
All of it is measured from the inside, on traffic that already arrived. An anomaly needs a baseline and a minimum amount of activity before it fires, and Vercel sets those thresholds for you. A side project at 3am has neither. If the domain stops resolving, the database credentials expire, or the one route that matters starts returning 500 to the four people using it, nothing at Vercel requests your site on a schedule and notices.
Vercel SLA and uptime guarantee
Vercel publishes a 99.99% uptime SLA for Enterprise customers. Hobby and Pro have no contractual uptime guarantee. 99.99% allows about 4 minutes 23 seconds of downtime a month. Below it, the credit is 10% of the monthly fee down to 99.1%, 25% from 99% to 95%, and 50% under 95%, capped at half the bill and claimed within 30 days with a record of when the downtime happened. The SLA covers the platform serving your content, not the API or the CLI. An SLA is a refund policy. It does not tell you anything is down.
A health route Vercel cannot cache
import { neon } from '@neondatabase/serverless';
const sql = neon(process.env.DATABASE_URL!);
// Run on every request, never from the build or the CDN.
export const dynamic = 'force-dynamic';
export async function GET() {
const headers = { 'Cache-Control': 'no-store' };
try {
await sql`select 1`;
return Response.json({ ok: true }, { headers });
} catch {
return Response.json({ ok: false, error: 'db' }, { status: 503, headers });
}
}force-dynamic keeps the route out of the build output and no-store keeps it out of the CDN, so every check reaches a function and the database. Request it twice with curl -sI and the x-vercel-cache header should never read HIT. A cached 200 is a monitor that stays green through the whole outage.
Point the monitor at your production domain, not a generated deployment URL like my-app-abc123.vercel.app. Standard Protection puts those behind Vercel Authentication, so a monitor aimed there checks the login wall instead of your app.
Three steps to an alert
- Add the URL Create a service in Logdash and give its monitor https://yourapp.com/api/health. Five services fit in the free plan, and every check records the status code and the response time.
- Pick the interval Every 5 minutes on the free plan, every minute on Builder, every 15 seconds on Pro. Any status outside 200 to 399, or no answer within 10 seconds, counts as down.
- Break it on purpose Change the password inside DATABASE_URL in the project settings and redeploy. The route returns 503, the next check flips the monitor to down, and a Telegram alert lands with the monitor name, the status code and the error. Put the password back and a second message tells you it is up.
Vercel uptime monitoring with Uptime Kuma
Uptime Kuma cannot run on Vercel. It is a long-running Node process that keeps its SQLite database in a persistent data directory, and Vercel functions start per request with no disk that survives. Kuma for a Vercel app means a VPS or a container somewhere else, which is a second machine to update and keep alive.
Logdash vs Vercel built-in alerts
| Feature | Logdash | Vercel alerts |
|---|---|---|
| Requests your domain from outside | A GET every 5 minutes, 1 minute or 15 seconds by plan | No, measures traffic that already arrived |
| Notices a dead app with no traffic | Yes, the check is the traffic | No baseline, so no anomaly |
| Coverage across routes | One monitored URL per service | Every route, 5xx by default, 4xx optional |
| Plan needed | Free plan, five services | Pro with Observability Plus |
| Alert channels | Telegram and webhook | Email, Slack and webhook |
| Setup | A URL and a Telegram chat | A rule in team settings |
When Vercel alerts is the better pick
- You are already on Pro with Observability Plus and your traffic is steady. Anomaly rules watch every route, a monitor watches one URL.
- Your team lives in Slack or email. Logdash sends Telegram messages and webhooks, nothing else.
- You want the alert to arrive with the logs around it. Vercel Agent Investigation, in beta, summarises them for you.