Weekly
See which Droplets are running hot each week
A Monday email with average CPU, memory and disk use for every Droplet, with anything above your limit flagged.
- Runs
- Weekly
- Apps
- DigitalOcean
- AI
- Not needed
- Access
- droplet:read, monitoring:read
Send this to your assistant
Create a ClickRuntime automation: every Monday at 8am, email me last week's average CPU, memory and disk use for each DigitalOcean Droplet and flag any above 80%.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
The first sign that a Droplet is undersized is usually a customer complaining about a slow page. The CPU may have been pinned at 95 percent for days, or the disk may have crept to 98 percent from log files, but nobody was looking at graphs for each of eleven servers. DigitalOcean records the metrics, yet reading them one Droplet at a time is a chore people skip.
Each week the automation lists your Droplets, pulls seven days of CPU, memory and disk metrics for each, and marks any that ran hot above the thresholds you set. You receive one email with a row per Droplet, named so you can find it in the control panel, and the troublemakers called out at the top.
It is aimed at small teams without dedicated monitoring, and at freelancers looking after several client servers.
What you get out of it
Full disks found before they crash
A disk that is slowly filling shows up as a rising percentage in the weekly table. That gives you days to clean logs or attach a volume, instead of a midnight outage that turns into a slow, stressful restore.
Right-sizing based on evidence
Droplets that sit at 5 percent CPU all week are candidates for a cheaper plan, while ones at 90 percent need more. The report gives you the data to act on either way, and the savings can be real when you run a dozen servers.
Misbehaving servers become obvious
When one Droplet is consistently hotter than similar ones, it points at a runaway cron job, a missing cache or a misbehaving app. A weekly comparison makes the odd one out easy to see and turns a slow mystery into a to-do.
Monitoring without installing a stack
There is no Prometheus or Grafana to run and patch. You get a useful picture of server health from the data DigitalOcean already collects, which keeps the effort low for a team that has no time for a monitoring project.
Evidence for upgrade requests
Engineers asking for a bigger plan can attach a week of numbers, so budget owners can approve with confidence instead of guessing. The conversation moves from opinion to measurement, which usually shortens it.
How it works
What happens, step by step
Every Monday ClickRuntime lists your DigitalOcean Droplets.
It works out each one's average CPU, memory and disk use over the past week.
Droplets above the limit you set are marked as high.
The report arrives in your inbox with one line per Droplet.
Before it runs live
- Connect DigitalOcean
What you get
Build your own
Need it to work differently?
Your own rules
Conditions, thresholds, filters and exceptions, written the way you'd explain them to a colleague.
Any number of apps
One automation can read from one app and update several others. Over 248 apps are ready, and anything with an API works too.
AI where it helps
Summaries, classification, extraction and drafts use ClickRuntime's built-in AI, with no extra key.
On a schedule or on each event
Runs as often as every 5 minutes, or the moment an app sends an event, and keeps track of what it already handled.
Changes you can ask for
- Run it at a different time, more or less often, or only on weekdays
- Add an AI step, for example to summarize, sort or draft a reply
- Add another app, for example also send it to Slack
- Combine it with other DigitalOcean steps into one automation
Under the hood
The code that runs this automation
import time
from clickruntime import on_trigger, credentials, http, notify
DO = "https://api.digitalocean.com/v2"
def do(method, path, **kwargs):
resp = http.request(method, f"{DO}{path}", headers={"Authorization": f"Bearer {credentials.secret('DIGITALOCEAN_TOKEN')}"}, **kwargs)
resp.raise_for_status()
return resp.json() if resp.content else {}
def series(metric, host, **extra):
end = int(time.time())
result = do("GET", f"/monitoring/metrics/droplet/{metric}", params={"host_id": host, "start": end - 7 * 86400, "end": end, **extra})
return [[float(v) for _, v in r["values"]] for r in result["data"]["result"]]
def avg(xs):
return sum(xs) / len(xs) if xs else 0
@on_trigger
def run(event):
lines = []
for d in do("GET", "/droplets", params={"per_page": 200})["droplets"]:
host = d["id"]
idle = sum(s[-1] - s[0] for s in series("cpu", host, mode="idle"))
cpu = max(0.0, 100 * (1 - idle / (7 * 86400 * d["vcpus"])))
mem = 100 * (1 - avg(series("memory_available", host)[0]) / avg(series("memory_total", host)[0]))
disk = 100 * (1 - avg(series("filesystem_free", host)[0]) / avg(series("filesystem_size", host)[0]))
flag = " (HIGH)" if max(cpu, mem, disk) > 80 else ""
lines.append(f"{d['name']}{flag}: CPU {cpu:.0f}%, memory {mem:.0f}%, disk {disk:.0f}%")
notify.email_me("Droplet resources last week", "\n".join(lines))
return {"droplets": len(lines)}FAQ
Common questions
Do Droplets need the monitoring agent installed?
What counts as running hot?
Will it cover Droplets across all my teams or projects?
What permissions does it need?
Does it need AI?
How many runs does it use?
Can I change how it works?
Related
You might also like
Snapshot your Droplets every night
Each Droplet gets a fresh snapshot overnight, snapshots older than your retention window are cleared, and you get an email listing what happened.
See how it worksGet your DigitalOcean spend by email each morning
A short email each day with your month-to-date usage and an estimate of yesterday's spend.
See how it worksGet warned when your bill goes over budget
One message the first time this month's usage passes the amount you set, and no repeats until next month.
See how it worksKeep exploring
Set up “See which Droplets are running hot each week” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.