Uptime Monitoring
Know it's down. Bring it back.
Monitors for your sites, ports and scheduled jobs that confirm an outage before they alert you, and put your server's newest backup and Recover now in the alert.
Monitoring
4 of 30 monitors · checked every minute
Shop homepage is down: 503 Service Unavailable
Since 14:02 UTC, confirmed by 3 checks over 40 s. shop-1's newest backup is 3 hours old.
Shop homepage
https://shop.example.com/
Checkout API
https://api.example.com/health
Postgres port
db.example.com:5432
Nightly dump
Heartbeat · every day
shop.example.com's certificate expires in 41 days status.vpssnaps.com/example
Three things worth watching
Your site, the ports behind it, and the jobs that are supposed to run when nobody is looking.
Web pages. Up means a status code you accept and, if you choose, a word that must appear on the page, or must not (“Add to cart”, or “Database error”). The certificate is watched too.
Ports. A database, SSH, a mail server: anything that should accept a connection. On a server's page, Monitor this server adds its SSH port, and its site if its recovery plan names one.
Scheduled jobs. Each gets a URL to call when it finishes. If the call doesn't come within the job's period and the grace you allow, it is down: the cron job that silently stopped is the outage nobody else reports.
0 3 * * * /usr/local/bin/backup.sh && \
curl -fsS -m 10 --retry 3 https://vpssnaps.com/api/heartbeat/Qm9wYWd1…🔴 Shop homepage is down: 503 Service Unavailable.
https://shop.example.com/, down since 2026-09-29 14:02 UTC,
confirmed by 3 checks over 40 s.
shop-1's newest backup: shop-db at 2026-09-29 11:00 UTC (3 hours old).
Recover now builds a replacement from it: https://vpssnaps.com/app/servers/…An outage is confirmed, not guessed
A monitor that cries wolf gets switched off by the person it wakes. So nothing is sent until the checker is sure, and it is sure of its own side first.
- Step 1
Check
Every minute, or every five on Starter. A page must answer with a status code you accept, and with the word you asked for, if you asked for one. A port must open. A job must call in on time.
- Step 2
Confirm
One failure alerts nobody. It is checked again 20 seconds later, and again, and only the third failure in a row counts as an outage, dated from the first.
- Step 3
Rule ourselves out
Before a failure counts, the checker makes sure it can reach the internet itself. If many sites fail at once, the fault is ours, and every alert is held until it clears.
- Step 4
Tell you once
One message to your email, Slack, Teams, Google Chat or Discord, or a webhook on Agency. Another when it has passed two checks in a row, saying how long it was down.
The alert comes with the way back
A monitor on a server VPS Snaps backs up knows what the other monitors don't: how old its newest backup is, and whether there is a plan to rebuild it.
Link a monitor to a server and its outage alert names the server's newest backups and how old they are. If the server has a recovery plan, the alert and the monitor's page carry Recover now, which builds a replacement on your own DigitalOcean, Hetzner, Vultr, Linode, AWS EC2, AWS Lightsail, Azure or Google Compute Engine account from those backups.
On Pro and Agency, automatic failover can move the traffic too, by the server's IP or by your DNS on Cloudflare. It keeps its own checks from inside your account, so a monitor never moves traffic by itself.
A status page your customers can read
Publish the monitors you choose at status.vpssnaps.com, under names you choose, with 90 days of uptime bars and the updates you post during an outage.
- Visitors see “Website” and “API”, never your addresses, ports or error messages. Response times only if you switch them on.
- Post updates on an outage as you work it, and notices ahead of planned maintenance.
- No analytics or advertising scripts of ours on the page: its visitors are your customers.
- Each page is kept for 30 seconds between readings, so the rush of visitors during an outage doesn't slow it down.
- On Agency, on your own domain too: add one CNAME, and status.yourcompany.com is live with its own certificate, usually within minutes, with “Powered by VPS Snaps” removable.
On every paid plan
Monitors, status pages and how long their history is kept, by plan. The free plan has no monitoring.
| Plan | Monitors | Checked | Status pages | History | Your own domain |
|---|---|---|---|---|---|
| Free | Not included | ||||
| Starter | 10 | Every 5 minutes | 1 | 30 days | — |
| Standard | 30 | Every minute | 3 | 90 days | — |
| Pro | 100 | Every minute | 10 | 1 year | — |
| Agency | 300 | Every minute | 50 | 1 year | Yes |
Every monitor type counts toward the number. See the plans
Four things to know before you rely on it
Where it stops, written down now rather than found out during an outage.
One place checks from
Checks come from our server in New York, at 165.227.255.101; allow that address through a firewall that blocks strangers. A network fault between there and your server can look like an outage, which is what the confirmation and the hold on mass failures are for, but a second location is not there yet.
No text messages or phone calls yet
Alerts go to email and to the chat channels you connect. If you need to be woken at 3am, route the Slack or webhook alert to a tool that calls you.
What it does not check yet
Nothing faster than once a minute. No pages behind a login or custom headers, no ping, no DNS record or domain-expiry checks. Certificates, yes: every monitored https page warns you 14 and 3 days before its certificate expires.
Status page updates are yours to write
The page shows each service's state and its 90 days of uptime on its own. What visitors read during an outage is what you post, and there are no email subscriptions to a status page yet.
Setting up monitors and status pages, step by step, is in the uptime monitoring guide and the status pages guide.
The rest of the way back
Knowing is the first minute of an outage. These cover the rest.
Recovery servers and failover
Build a replacement on your own cloud from the newest backups, keep one warm, and on Pro and Agency move traffic to it automatically.
Read moreDNS backups
The records your status page's domain and your site depend on, kept in your storage and restored record by record.
Read moreSwitching providers
When the outage is the host itself, move a WordPress, Laravel, Craft or Ghost site to a new server, checked on both sides.
Read morePowerful features to give you peace of mind
Rest easy knowing your data and your reputation are safe.
- Bring your own storage
- Backups land in your own S3-compatible bucket — Backblaze B2, Wasabi, Cloudflare R2, or plain S3 — or in your own Google Drive. You hold the keys and the data.
- Snapshots stay with your provider
- Provider snapshots are created through the provider's own API and never leave your account. We store the snapshot ID, not the image.
- Eight providers, one dashboard
- DigitalOcean, Hetzner, Vultr, Linode, AWS EC2, AWS Lightsail, Google Compute Engine and Microsoft Azure — scheduled and reviewed from the same place.
- A replacement server on demand
- Recover now builds a new server on your own DigitalOcean, Hetzner, Vultr, Linode, AWS EC2, AWS Lightsail, Azure or Google Compute Engine account, from its snapshot or from its backups, software included.
- Failover on any cloud
- When a server stops answering, its traffic moves to the recovery server: by reserved or floating IP where your cloud has one, or by your DNS on Cloudflare, which works on every cloud.
- Know it's down, with the way back
- Uptime monitors for sites, ports and scheduled jobs confirm an outage before alerting, name the server's newest backup, and publish a status page. On paid plans.
- Your DNS zones, backed up
- Every record in a Cloudflare zone, kept in your own storage as a BIND file too. A restore previews what differs and writes back only that.
- Schedules that fit your traffic
- Hourly, daily, weekly, monthly, or a fixed interval in minutes — anchored to your timezone, so a 02:00 job stays at 02:00 across a DST change.
- Retention that prunes itself
- Set how many days to keep. Older snapshots and archives are cleaned up after each successful run, so storage bills stay flat.
- Every run on record
- Status, duration, size and trigger, with each step it took in order and its warnings and errors kept in place — so a failure tells you which step broke.
- Checksummed on upload
- Every archive is hashed as it streams to your bucket and the checksum is stored with the run, so you can verify what landed.
- Run on demand
- Trigger any job by hand before a migration or a risky deploy, without touching its schedule or its retention window.
- Alerts on five channels
- Email plus Slack, Microsoft Teams, Google Chat, and Discord — on success, on failure, and on a job that missed its schedule entirely.
- Encrypted credentials
- SSH keys, database passwords, and storage secrets are sealed with AES-256-GCM before they touch the database.
- Team access with roles
- Invite your team into a shared workspace as owner, admin, or member, so backups outlive whoever set them up.
Watch your first site in a minute.
Add a URL, a port or a job's ping URL, choose where alerts go, and the first check runs within half a minute.
No credit card required. Cancel anytime.