Skip to content

feat(gcp): group billing export costs by billed resource - #15

Merged
BSick7 merged 1 commit into
masterfrom
feat/140/gcp-resource-dimension
Oct 15, 2026
Merged

BSick7 merged 1 commit into
masterfrom
feat/140/gcp-resource-dimension

Conversation

@BSick7

@BSick7 BSick7 commented Oct 14, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Map nullstone.io/resource to IFNULL(resource.global_name, resource.name) in the GCP resource-level billing export (gcp_billing_export_resource_v1_*, the only table the integration accepts). The full resource name plays the FOCUS ResourceId role; some services only populate the short name; rows with no resource group under an empty id, matching the AWS Data Export coster.
  • Report HasResource: true in the GCP capabilities, so consumers that already fan out by resource when the source supports it (nullfire ingest, since NUL-156) get resource grain for GCP without further changes.
  • Tests: name-mapping round trip, query builder SQL shape, aggregator key values (including the NULL resource case), capabilities.

Step 1 of the NUL-140 (Phase 3 untagged costs) split. Linear: https://linear.app/nullstone/issue/NUL-140

Test plan

  • go build ./...
  • go test ./... green
  • After merge: re-vendor into nullfire and confirm an ingested GCP month carries resource_id on its line items

Map nullstone.io/resource to IFNULL(resource.global_name, resource.name) in the
resource-level billing export and report HasResource in the GCP capabilities, so
consumers that already fan out by resource (AWS Data Export) get the same grain
for GCP. Rows with no resource group under an empty id, matching AWS.

NUL-140
@BSick7
BSick7 requested a review from ssickles October 14, 2026 19:38
@github-actions

Copy link
Copy Markdown

Go Tests

109 tests   109 ✅  0s ⏱️
 13 suites    0 💤
  1 files      0 ❌

Results for commit b70fa97.

@BSick7
BSick7 merged commit 43ab453 into master Oct 15, 2026
2 checks passed
@BSick7
BSick7 deleted the feat/140/gcp-resource-dimension branch October 15, 2026 13:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants