Google Cloud (GCP)
What Plutus imports
Section titled “What Plutus imports”- Spend by service and SKU
- Vertex AI model-level breakdown
- Idle VM/disk savings recommendations
Connecting
Section titled “Connecting”Method: Service Account JSON Key (BigQuery Billing Export)
GCP has no direct API for historical spend, so this connection reads from a BigQuery export you set up first, using a service account key.
-
In the GCP Console, go to Billing → Billing export → BigQuery export, and turn on Detailed usage cost export. Pick an existing BigQuery dataset to export into, or create one. The export only contains usage from the day you enable it onward — there’s no historical backfill.
-
Go to IAM & Admin → Service Accounts → Create service account.
-
Grant the service account read access to the billing export and to cost-saving recommendations. The easiest way is to apply the
plutusCostReaderTerraform module (infra/gcp/modules/customer-rolein the Plutus repo) against this project and service account — it creates a custom role with the right permissions and binds it for you.If you’d rather do this by hand in the console, create a custom role (IAM & Admin → Roles → Create Role) with these permissions, then grant it to the service account:
bigquery.datasets.get,bigquery.tables.get,bigquery.tables.getData,bigquery.tables.list,bigquery.jobs.create(billing export)compute.zones.list(savings recommendations)recommender.computeInstanceMachineTypeRecommendations.{get,list},recommender.computeInstanceIdleResourceRecommendations.{get,list},recommender.computeDiskIdleResourceRecommendations.{get,list}(savings recommendations)
-
Open the service account → Keys → Add key → Create new key, and choose JSON.
-
Download the JSON key file.
-
In Plutus, add a GCP connection and fill in:
- GCP Project ID — the project that owns the BigQuery billing export dataset
- Billing Account ID — found under Billing → Account management
- BigQuery Dataset — the dataset you configured the billing export to write into
- Service Account JSON Key — paste the full contents of the JSON key file you downloaded
- Carbon Footprint Dataset (optional) — enables emissions tracking. Set up Billing → Carbon footprint → Export to BigQuery first, or leave this blank to reuse the same dataset as the billing export. GCP publishes both location-based and market-based emissions, and Plutus stores both separately — they aren’t comparable and are never summed.
Cost-saving recommendations (idle or overprovisioned VM and disk suggestions) populate automatically once the permissions above are granted — no separate setup. If you connected GCP before this feature shipped, regrant the role (or reapply the Terraform module) to pick up the new permissions.