Duck Stats probes your services from 4 global locations and only flags a real outage when every probe agrees. Free for personal use, premium for businesses.
Three pieces. One shell script on your server, four probe locations on ours, and one alert path that only fires when something is actually broken.
One curl line drops a POSIX shell script on any Linux box. No daemon, no Go binary, no systemd unit — runs from cron every 60 seconds and pushes CPU, RAM, disk, and load.
curl https://stats.duckingstats.com/agent.sh | TOKEN=xxx shPhoenix, Buffalo, Ukraine, and Dallas all hit the same target on the same schedule. A monitor only flips DOWN when every location agrees — one bad backbone route never pages you.
Six notification channels, one consensus filter. Alerts route to the channels you pick, throttled per monitor, with the failing probe and latency in the body — no 3 a.m. pages for a single backbone blip.
Everything below is on every paid plan. Free is the same core loop with longer intervals and a single probe location.
Five monitor types cover websites, APIs, databases, raw ports, and self-reporting jobs. Same dashboard, same alert path.
Probes run in parallel from Phoenix, Buffalo, Ukraine, and Dallas. DOWN requires unanimous failure across every selected location.
Pick which locations check which target. Internal-only API in Phoenix, public DNS from all four — whatever makes sense per monitor.
Batch jobs and backups POST a heartbeat on success. Miss the window and the monitor flips DOWN like any other check.
The agent pushes every metric the kernel exposes, broken out per mounted filesystem. Track 12-disk NAS boxes without 12 separate monitors.
Name a process pattern and the agent confirms it's running every minute. Missing → DOWN, with the last seen timestamp in the alert.
Runs systemctl is-active against any unit you specify. Catches services that crashed without the process pattern changing.
Override CPU, RAM, and disk warn/critical levels per server. A build box at 90% CPU is fine; a database at 90% is not.
Point a CNAME at our edge and serve status.yourcompany.com with your branding. TLS handled automatically.
Run separate pages for internal infra, customer-facing services, and partner integrations. Each picks its own monitors.
Every monitor shows a 24-hour latency overlay with one line per probe location, color-coded. Spot a single bad region instantly.
Click any monitor to see every check from the last 7 days — status, latency, which probe ran it, and the raw response detail.
Email, Discord, Pushover, ntfy, Microsoft Teams, and generic webhooks. Mix and match per monitor or per tag.
Notifications only fire after every selected probe agrees the target is DOWN. No more 3 a.m. pages for a single backbone hiccup.
Per-monitor minimum interval between alerts and an UP-only resend on recovery. Loud failures, quiet flaps.
Zero-config curl … | TOKEN=xxx sh. The script self-registers the host, drops a cron entry, and starts pushing.
Tune check frequency per monitor. Free tier defaults to 5 minutes; Premium goes down to 60 seconds; Enterprise lower still.
7 days of raw heartbeats, 30 days of minutely stats, 1 year of hourly rollups, daily forever. Query any window without surprise pruning.
Domain expiry, cert expiry, and DNS blacklist monitors run on the same engine. Get warned weeks before a quiet outage.
Pick a plan, upgrade or downgrade any time. Existing monitors never get touched when you change tiers. Paid plans are month-to-month, billed by Stripe — cancel anytime from the customer portal.
Honest table — we're a small, opinionated service. We don't pretend to match the feature surface of UptimeRobot, Better Stack, or StatusCake. What we do well: multi-location consensus, server-health agent, and fair month-to-month pricing.
| Feature | Duck Stats | UptimeRobot | HetrixTools | Better Stack | Updown.io | StatusCake |
|---|---|---|---|---|---|---|
| Free tier exists | Yes (10 mon) | Yes (50 mon) | Yes | Yes (10 mon) | No (credit-based) | Yes |
| 1-min checks on entry paid plan | Yes ($5) | Yes ($7) | Yes | Yes ($29) | Yes (~$2) | Yes |
| Multi-location consensus (DOWN only if all probes agree) | Yes, built-in | Multi-location, not consensus | Multi-location, not consensus | Multi-location, not consensus | Single-location per check | Multi-location, not consensus |
| Server CPU/RAM/disk agent | Yes (shell script, no daemon) | No | Yes (own agent) | Via Logtail/separate product | No | Add-on |
| Push monitors (heartbeat URL) | Yes | Yes | Yes | Yes | No | Yes |
| Public status pages on Free | 2 | 1 | 1 | 0 | 0 | 1 |
| Custom domain on status pages (CNAME + free TLS) | Yes, Starter+ | Paid only | Paid only | Paid only | Paid only | Paid only |
| White-label status pages (hide "Powered by") | Yes, Premium+ | No | Paid add-on | Paid add-on | Paid add-on | No |
| Crypto payments (BTC, LTC, etc. via Plisio) | Yes, all paid tiers | No | No | No | No | No |
| Entry paid plan price | $5/mo | $7/mo | $5–10/mo | $29/mo | ~$2/mo credit | $25/mo Business |
| SMS alerts | No | Yes (paid) | Yes | Yes | No | Yes |
| Phone-call escalation | No | No | No | Yes | No | Yes |
| On-call rotation / incident mgmt | No | No | No | Yes (full) | No | Limited |
| SSL / domain expiry monitoring | Via TCP checks | Yes | Yes | Yes | Yes | Yes |
Last reviewed June 2026 against each provider's public pricing page. Plans change — check theirs before deciding. If you need PagerDuty-style on-call rotations or SMS escalation, Better Stack or StatusCake will serve you better. If you want simple uptime + multi-location consensus + server health at $5/mo, Duck Stats is the cheapest option that does all three.
Quick answers about how Duck Stats actually works under the hood.
No agent is required for HTTP, TCP, ping, MySQL, or push monitors — those run entirely from our probe locations against your public endpoints. The optional server-health agent is a tiny POSIX shell script you drop on a box only when you want CPU, RAM, disk, and load-average tracking pushed every minute.
The Free tier polls every 5 minutes from a single location. Premium drops that to 1 minute with multi-location consensus, and Enterprise goes as low as 20 seconds. You can also configure longer intervals per monitor — CDN and low-priority checks usually sit at 5 minutes regardless of plan.
Free gives you 10 monitors, single-location checks at 5-minute intervals, email alerts, and 2 public status pages. Starter ($5/mo) is the entry paid tier: 20 monitors, 1-minute checks, 2 probe locations, Discord + email alerts, custom-domain status pages. Premium ($19/mo) raises that to 250 monitors, 1-minute checks with all 4-location consensus probes, Discord/Pushover/ntfy notifications, unlimited public status pages with full white-label (no "Powered by" footer), and API access.
We run probes in Phoenix (US Southwest), Buffalo (US Northeast), Dallas (US Central), and Ukraine (EU East). Each location is on a separate network with different upstream transit providers, so a single backbone outage can't take all four probes offline at once.
Nothing user-facing. A monitor only flips to DOWN when every probe location agrees the target is unreachable. If three probes see a 200 response and one sees a timeout, the monitor stays UP and the dissenting probe is logged for diagnostics — that's the consensus rule, and it's why you stop getting paged for one bad route across the public internet.
Yes. Public status pages support custom domains via CNAME — point status.yourdomain.com at our gateway and we'll terminate TLS for you with a free certificate. You can also customize branding, choose which monitors appear, and group them under headings on the same page.
Public dashboards already running on Duck Stats. Click any to see the live consensus + per-location latency.
Sales, support, or just say hi. We usually reply within a business day.