Monthly MongoDB Atlas cluster cost review posted to Slack
On the first business day of each month, see exactly which database clusters drove your bill, what changed, and where you can safely cut spend.
On the first business day of every month at 8am, review our MongoDB Atlas spend and post a written cost review to Slack. Use a cron trigger. Because cron cannot express "first business day" on its own, schedule it for the 1st, 2nd, and 3rd of each month at 8am and stop immediately unless today is actually the first business day of that month, skipping weekends.
Start with MongoDB Atlas List Organization Invoices for my organization to find the invoice covering the month that just ended and the invoice for the month before it. Then call Get Organization Invoice for each of those two invoice ids to pull the full line items. Atlas returns every invoice amount in cents (USD), so divide by 100 and format as dollars before reporting any number.
Break the line items down two ways: by cluster, using the clusterName field on each line item, and by SKU, so I can see which clusters drive spend and what kind of charge each one is (instance hours, backup, data transfer, and so on). Any line item with no cluster name goes into an "organization level / unattributed" bucket rather than being dropped.
Cross-reference every cost line against the real cluster. Call List Projects in Organization to get the project ids, then for each project call List Clusters and List Flex Clusters. Match on cluster name and label each cost line with that cluster's actual tier or instance size, cloud provider, region, and current state. Call out clusters that are paused but still costing money, clusters that look idle, and clusters that look oversized relative to what they cost.
Compare each cluster's cost this month against last month and flag any cluster that grew more than 20 percent, showing both dollar amounts alongside the percentage so the size of the jump is obvious.
Append one row per cluster per month to the tracking tab of my Google Sheets spend history spreadsheet using Append Values. Each row should carry: month, project name, cluster name, tier or instance size, cloud provider, region, cluster state, total cost in dollars, prior month cost in dollars, percent change, and the largest SKU for that cluster. Before appending, read the tab with Get Values and skip any month and cluster combination that is already recorded, so a re-run never creates duplicate rows.
Finally, post the review to our #eng-costs channel using Slack Bot Send a Message. Use the slackbot integration rather than the user-level Slack one. Cover total spend for the month in dollars, the month-over-month change in dollars and percent, the top three cost drivers with what each one costs, every cluster flagged for growing more than 20 percent, and concrete right-sizing recommendations such as which tier to drop to, which paused or idle cluster to remove, and where backup retention could be reduced. Write it as prose a non-engineer can follow, not a raw data dump, and keep it short enough to read comfortably in the channel.
What does this prompt do?
- Pulls this month's and last month's database bills and breaks the total down by cluster and by charge type, so you can see exactly where the money went.
- Labels every cost line with the cluster's real size and region, then flags clusters that are paused, sitting idle, or far bigger than their workload needs.
- Adds one row per cluster per month to a spreadsheet, so you build a spend history you can chart over time.
- Posts a written review to your team channel covering total spend, the change versus last month, the top three cost drivers, and specific ways to cut the bill.
What do I need to use this?
- A MongoDB Atlas account with billing access for your organization
- A Slack workspace and the channel you want the review posted to
- A Google account and a spreadsheet with a tab for the running spend history
How can I customize it?
- Change when it runs, for example the first Monday of the month or once a quarter instead.
- Point it at a different channel, or send it as a direct message to whoever owns the budget.
- Adjust the growth threshold so a cluster gets flagged at 10 percent instead of 20 percent.
FAQs
Will this change anything in my databases?
Does it work if I have several projects in one organization?
Does it cover flex clusters as well as regular ones?
Why does the first report have no comparison?
Do I need to be technical to read the review?
Related templates
When someone leaves, we check which shared passwords they used in their final months and post a ranked rotation list to your security channel.
Every Monday, check every S3 bucket for public exposure, missing encryption and weak backup settings, then get the risks ranked in Slack.
Twice every weekday, the conversations from your social inbox land on the right HubSpot contact timelines, with a Slack recap for sales.
Every weekday at 7am, sign in to the tender portals you track, filter new notices against your bid criteria, and open a deal for the ones worth chasing.
Every morning, find the addresses that hard bounced or filed a spam complaint, update the matching HubSpot contacts, and post a short Slack recap.
Every weekday at 4pm, spot the threads that went quiet, stage a ready-to-send nudge in your mailbox, and get a ranked Slack recap.
Know what your database bill is doing before it doubles.
Get a written cost review in Slack on the first business day of every month, with the clusters worth right-sizing already called out.