Weekly DigitalOcean waste audit into Linear tickets

By General Input

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.

Integrations

  • DigitalOcean
  • Linear
  • Slack

Type

Agentic Task

Categories

  • Engineering
  • Finance

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.

Related prompts

Explore more prompts
Call overdue Xero customers with an AI collections agentWin back LiveChat visitors whose chats went unansweredChat quality review board for LiveChat support leadsWin back no-show and cancelled appointments every morningLive Loop returns analytics with product-level drill-downNewsletter pre-flight and approval board for Mailjet sendsTurn a prospect spreadsheet into personalized sequence enrollmentsMailjet email delivery lookup console for support teamsCatch feature flags that never got switched on in productionKajabi customer support console for member access fixes