DigitalOcean droplet monitoring
DigitalOcean already covers droplet monitoring with free resource alerts once you install its metrics agent and Uptime checks at $1 a month each after the first, so an outside monitor earns its place only for Telegram or webhook alerts, sub-minute checks, or a status page.
DigitalOcean is the one big host where the built-in tools are good enough for a lot of people, and this page says so up front. There are two products, and they answer different questions. Monitoring asks whether the droplet is healthy from the inside. Uptime asks whether your site answers from the outside. Most droplet outages need both answered.
Monitoring: graphs and resource alerts
Monitoring is free. Without the agent you get CPU, bandwidth and disk I/O graphs. With the agent you also get memory, disk usage and load average, plus resource alerts on any of them by email or Slack. That is the part that catches the slow outage: a disk filling at 2% a day, or memory creeping up until the OOM killer takes your app. Install it on any droplet that was created without it.
# Install the DigitalOcean metrics agent
curl -sSL https://repos.insights.digitalocean.com/install.sh | sudo bash
# It should say "active (running)"
systemctl status do-agent
# The URL your uptime check will hit, from outside
curl -sS -o /dev/null -w '%{http_code} in %{time_total}s\n' \
https://example.com/healthDigitalOcean uptime checks
Uptime checks hit an HTTP or HTTPS URL, or ping an IPv4 address, every 60 seconds from up to four regions: Asia East, Europe, USA East and USA West. Alerts cover downtime, latency and SSL certificate expiry, by email or Slack, after a period you choose of 2 minutes or more. When one region fails, the check retries from the others before it alerts. The first check on an account is free and each one after it is $1 a month. For one droplet and an inbox you read, that is hard to beat.
Where a DigitalOcean droplet down alert falls short
- Channels: email and Slack only. No Telegram, no webhook to your own handler.
- Interval: fixed at 60 seconds, and the shortest alert period is 2 minutes.
- No public status page for your users. The status page in the docs is a private dashboard per check.
- Same provider: the monitor and the droplet both run on DigitalOcean.
Logdash sends a GET every 5 minutes on the free plan, every minute on Builder at $9 a month and every 15 seconds on Pro at $15. It records the status code and response time and alerts on the first failed check: anything outside 200-399, a refused connection, or no answer within 10 seconds. The free plan also includes one hosted status page that shows the same checks to your users.
- Add the URL Create a service in Logdash and paste the health URL you just tested with curl. The first check runs straight away.
- Connect Telegram Add a Telegram channel once and attach it to the monitor. Keep the DigitalOcean resource alerts for disk and memory, they cover what an HTTP check cannot see.
- Power the droplet off Run sudo poweroff, or stop the app. The next check fails and a Telegram alert lands with the monitor name, the status code and the error, such as a refused connection. Power it back on and a second message says it is up.
Logdash vs DigitalOcean Uptime
| Feature | Logdash | DigitalOcean Uptime |
|---|---|---|
| Price for 5 checks every minute | $9 a month on Builder | $4 a month, first check free |
| Fastest interval | 15 seconds on Pro | 60 seconds, fixed |
| Check types | HTTP checks | HTTP, HTTPS, ICMP ping and SSL expiry |
| Alert channels | Telegram and webhook | Email and Slack |
| Public status page | One hosted page on the free plan | Not offered |
When DigitalOcean Uptime is the better pick
- You have one or two droplets and Slack or email is where you look. At $1 a check a month, with the first one free, that costs less than any paid Logdash plan.
- You need SSL expiry or ping alerts. Logdash has neither.
- You want checks from four regions so one bad network path does not page you.