← Back to recent posts
FinOps

Building Reliable Multi-Cloud Cost Dashboards with FinOps

Finance does not want a Grafana screenshot. They want a monthly number they can group by environment and product. FinOps is the boring work of tags, allocation, and a view that survives more than one cloud.

Tags first, dashboards second

If environment, service, and owner are missing on half the resources, every dashboard is fiction. Enforce tags (or GCP labels) at apply time in Terraform. Backfill is a project, not a hope.

  • Required keys: environment, service, owner (or team).
  • Same spelling everywhere: prod not Prod not production.
  • Untagged spend is its own line item until it is zero.

The three line items that surprise people

  1. Data transfer and NAT — idle clusters still pay to talk to the internet and to object storage.
  2. Logs and traces — default retention plus high cardinality is a second payroll.
  3. Idle compute — leftover node pools, oversized disks, forgotten load balancers.

One chart, three clouds

Export billing to a warehouse you control (CUR to S3, Azure Cost Management export, GCP billing export to BigQuery). Join on the tag keys. The dashboard is a query, not a vendor screenshot.

A Savings Plan or committed-use conversation needs two weeks of clean data. Guessing CUDs from a spike weekend is how you lock in the wrong shape.