Duck Stats mascot

Stop chasing false DOWN alerts.

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.

How it works

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.

01

Install the agent

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 sh
02

We probe from 4 locations

Phoenix, 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.

Phoenix Buffalo Ukraine Dallas
03

You get alerts only when it matters

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.

Email Discord Pushover ntfy Teams Webhook

What you get

Everything below is on every paid plan. Free is the same core loop with longer intervals and a single probe location.

Monitoring

📡

HTTP, TCP, ping, MySQL, push

Five monitor types cover websites, APIs, databases, raw ports, and self-reporting jobs. Same dashboard, same alert path.

🌎

Multi-location consensus

Probes run in parallel from Phoenix, Buffalo, Ukraine, and Dallas. DOWN requires unanimous failure across every selected location.

🎯

Per-monitor probe selection

Pick which locations check which target. Internal-only API in Phoenix, public DNS from all four — whatever makes sense per monitor.

⏱️

Push monitors for cron jobs

Batch jobs and backups POST a heartbeat on success. Miss the window and the monitor flips DOWN like any other check.

Server health

📊

CPU, RAM, load, disk per partition

The agent pushes every metric the kernel exposes, broken out per mounted filesystem. Track 12-disk NAS boxes without 12 separate monitors.

🧬

Process check (pgrep)

Name a process pattern and the agent confirms it's running every minute. Missing → DOWN, with the last seen timestamp in the alert.

⚙️

Service check (systemctl)

Runs systemctl is-active against any unit you specify. Catches services that crashed without the process pattern changing.

🎚️

Custom thresholds per host

Override CPU, RAM, and disk warn/critical levels per server. A build box at 90% CPU is fine; a database at 90% is not.

Public status pages

🌐

Custom domain support

Point a CNAME at our edge and serve status.yourcompany.com with your branding. TLS handled automatically.

📑

Multiple status pages

Run separate pages for internal infra, customer-facing services, and partner integrations. Each picks its own monitors.

📈

Per-location latency charts

Every monitor shows a 24-hour latency overlay with one line per probe location, color-coded. Spot a single bad region instantly.

🫀

Per-monitor heartbeat history

Click any monitor to see every check from the last 7 days — status, latency, which probe ran it, and the raw response detail.

Alerts & notifications

🔔

Six notification channels

Email, Discord, Pushover, ntfy, Microsoft Teams, and generic webhooks. Mix and match per monitor or per tag.

🧠

Consensus filter

Notifications only fire after every selected probe agrees the target is DOWN. No more 3 a.m. pages for a single backbone hiccup.

🤫

Notification throttling

Per-monitor minimum interval between alerts and an UP-only resend on recovery. Loud failures, quiet flaps.

Operations

📜

One-line agent install

Zero-config curl … | TOKEN=xxx sh. The script self-registers the host, drops a cron entry, and starts pushing.

⏲️

5 to 300 second intervals

Tune check frequency per monitor. Free tier defaults to 5 minutes; Premium goes down to 60 seconds; Enterprise lower still.

🗄️

Long retention by default

7 days of raw heartbeats, 30 days of minutely stats, 1 year of hourly rollups, daily forever. Query any window without surprise pruning.

🛡️

WHOIS, SSL, DNSBL watchers

Domain expiry, cert expiry, and DNS blacklist monitors run on the same engine. Get warned weeks before a quiet outage.

Simple pricing

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.

Free

$0/mo
  • 15 monitors
  • 5-minute check interval
  • Single-location checks
  • Email alerts
  • 2 public status pages
Start free

Starter

$5/mo
  • 100 monitors
  • 1-minute check interval
  • 5 probe locations
  • Discord + email alerts
  • Cancel anytime
Get Starter

Enterprise

Custom
  • Unlimited monitors
  • 20-second check interval
  • All probe locations + custom
  • Priority support, custom SLA
  • Self-hosted deployment
Contact sales

How Duck Stats compares

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 existsYes (10 mon)Yes (50 mon)YesYes (10 mon)No (credit-based)Yes
1-min checks on entry paid planYes ($5)Yes ($7)YesYes ($29)Yes (~$2)Yes
Multi-location consensus (DOWN only if all probes agree)Yes, built-inMulti-location, not consensusMulti-location, not consensusMulti-location, not consensusSingle-location per checkMulti-location, not consensus
Server CPU/RAM/disk agentYes (shell script, no daemon)NoYes (own agent)Via Logtail/separate productNoAdd-on
Push monitors (heartbeat URL)YesYesYesYesNoYes
Public status pages on Free211001
Custom domain on status pages (CNAME + free TLS)Yes, Starter+Paid onlyPaid onlyPaid onlyPaid onlyPaid only
White-label status pages (hide "Powered by")Yes, Premium+NoPaid add-onPaid add-onPaid add-onNo
Crypto payments (BTC, LTC, etc. via Plisio)Yes, all paid tiersNoNoNoNoNo
Entry paid plan price$5/mo$7/mo$5–10/mo$29/mo~$2/mo credit$25/mo Business
SMS alertsNoYes (paid)YesYesNoYes
Phone-call escalationNoNoNoYesNoYes
On-call rotation / incident mgmtNoNoNoYes (full)NoLimited
SSL / domain expiry monitoringVia TCP checksYesYesYesYesYes

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.

Frequently asked questions

Quick answers about how Duck Stats actually works under the hood.

Does Duck Stats require an agent?

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.

How often does it check my services?

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.

What's the difference between Free, Starter, and Premium?

Free gives you 15 monitors, single-location checks at 5-minute intervals, email alerts, and 2 public status pages. Starter ($5/mo) is the entry paid tier: 100 monitors, 2-minute checks, 5 probe locations, Discord + email alerts, custom-domain status pages, 5 status pages. Premium ($19/mo) raises that to 250 monitors, 1-minute checks with all 10 consensus probe locations, Discord/Pushover/ntfy notifications, unlimited public status pages with full white-label (no "Powered by" footer), API access, and crypto payments.

Where are your probe locations?

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.

What happens if one probe fails?

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.

Can I bring my own domain for the status page?

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.

Live status pages

Public dashboards already running on Duck Stats. Click any to see the live consensus + per-location latency.