Weekly DigitalOcean waste audit into Linear tickets
Every Monday, find idle Droplets, unused volumes, and old snapshots in DigitalOcean, file each fix as a Linear ticket, and recap the total savings in Slack.
Every Monday at 8am, audit my DigitalOcean account for wasted spend, turn each meaningful finding into a Linear ticket, and post a short recap to Slack. Before you start, read these settings from the top of this prompt so they stay easy to change: the idle CPU threshold (default: Droplets sitting consistently under 20% CPU, and treat under 30% average memory as a secondary signal of an oversized Droplet), the Linear team to file tickets in (default team: Infrastructure), and the Slack channel for the recap (default: #infra-costs). Skip any resource whose name or tags include do-not-touch.
First, call List All Droplets to inventory every Droplet with its size, region, and monthly price. For each Droplet that is not tagged do-not-touch, call Retrieve Droplet Metrics to pull roughly the last 14 days of CPU, plus memory where available. Flag Droplets that sit consistently under the idle CPU threshold as idle or oversized: an idle box that could be powered down or destroyed, or an oversized one that should be resized to a smaller plan. Use the plan price to estimate the rough monthly savings (the full plan price if it can be shut down, or the difference to the next smaller plan if it should be downsized).
Next, call List All Block Storage Volumes and find volumes that are not attached to any Droplet (an empty droplet_ids list). Unattached volumes still bill at about $0.10 per GB per month, so estimate each one's monthly cost from its size and recommend detaching if needed and deleting it. Skip anything tagged do-not-touch.
Then call List All Snapshots to review Droplet and volume snapshots. Look for old snapshots piling up, for example snapshots older than 90 days or several redundant snapshots of the same resource. Snapshots bill at about $0.06 per GB per month, so estimate each one's monthly cost from its size and recommend deleting the ones that are clearly stale.
Reason about which resources are genuinely wasteful rather than flagging everything. Consider whether a quiet Droplet is actually a production box that is simply low-traffic, whether a volume might be reattached soon, and whether a snapshot is a deliberate long-term backup. Estimate the rough monthly savings for each genuine finding and rank them from highest to lowest savings.
For every meaningful finding, use Linear Create Issue in the configured team. Give it a clear title (for example, Downsize idle Droplet web-03, saves about $24/mo), and in the description include the resource details, the recommended action (downsize the Droplet, detach and delete the volume, or delete the snapshot), the supporting evidence (average CPU and memory over the window, or how long a volume or snapshot has been idle), and the estimated monthly savings. Do not take any destructive action yourself; the tickets are for a human to review and act on.
Finally, use the Slack Send a Message action to post a short recap to the configured channel. Lead with the total potential monthly savings across all findings, then list the top findings in ranked order with their individual savings and a reference to each Linear ticket. Keep it skimmable with a few bullet points rather than a wall of text. If nothing wasteful is found, post a brief note that no waste was detected this week.
Additional information
What does this prompt do?
- Scans your DigitalOcean account every Monday for the three biggest sources of waste: idle or oversized Droplets, storage volumes not attached to anything, and old snapshots piling up.
- Estimates the rough monthly savings for each issue and ranks them so you tackle the biggest wins first.
- Files a clear Linear ticket for every meaningful finding, with the recommended fix and the dollars it would save.
- Posts a short Slack recap with the total potential monthly savings.
What do I need to use this?
- A DigitalOcean account with the resources you want to monitor.
- A Linear workspace, with a team to file the tickets in.
- A Slack workspace and a channel for the weekly recap.
How can I customize it?
- Change the idle threshold (the default flags Droplets that stay under about 20% CPU).
- Pick which Linear team the tickets go to and which Slack channel gets the recap.
- Change the day and time it runs (Monday morning by default).
- Protect anything you never want flagged by tagging it do-not-touch.
Frequently asked questions
Will this delete or resize anything automatically?
How does it decide a Droplet is wasteful?
How do I stop it from flagging a specific resource?
Where do the savings estimates come from?
Can I run it more or less often than weekly?
Related templates
Stop paying for DigitalOcean resources you forgot about.
Put this weekly audit on autopilot and turn cloud waste into a ranked to-do list your team can actually clear.