Skip to content

Chargeback 0.3.1: chargeable-unit field names and deployment_tags fix#18102

Open
JohannesMahne wants to merge 7 commits intowip-johannes-chargebackfrom
wip-johannes-chargeback-chargable-units
Open

Chargeback 0.3.1: chargeable-unit field names and deployment_tags fix#18102
JohannesMahne wants to merge 7 commits intowip-johannes-chargebackfrom
wip-johannes-chargeback-chargable-units

Conversation

@JohannesMahne
Copy link
Copy Markdown

Summary

Bumps the Chargeback integration to 0.3.1 with generic chargeable-unit field names, a billing_cluster_cost runtime fix when ess.billing.deployment_tags is a single string, dashboard ES|QL and validation updates, and pipeline / fleet_transform_version bumps.

Changes

  • Rename conf_ecu_rate / conf_ecu_rate_unitconf_chargeable_unit_rate / conf_chargeable_unit_rate_unit; total_ecutotal_chargeable_units (transforms, ingest, dashboard, docs).
  • billing_cluster_cost: runtime script handles deployment_tags as List or String (see elasticsearch-chargeback#91).
  • Dashboard: add @timestamp exists filter for package build validation (SVR00002).
  • All transforms: pipelines 0.3.1-billing / 0.3.1-usage, fleet_transform_version: 0.3.1.

Base branch

Opened against wip-johannes-chargeback (upstream integration line). If you prefer a branch named wip-chargeback-integration, create it from the same tip as this line and retarget, or say the word and we can align naming.

Testing

elastic-package build succeeds; artifact: build/packages/chargeback-0.3.1.zip.

Changelog

changelog.yml 0.3.1 entry currently links elasticsearch-chargeback#91; update to this PR link after merge if desired.

Made with Cursor

@JohannesMahne JohannesMahne requested a review from a team as a code owner March 27, 2026 12:27
JohannesMahne added a commit to elastic/elasticsearch-chargeback that referenced this pull request Mar 27, 2026
…erences

- Add integration/assets/0.3.1/chargeback-0.3.1.zip (built from integrations
  PR elastic/integrations#18102)
- Update Instructions.md asset link to chargeback-0.3.1.zip
- Update README.md version header, compatibility table, and add 0.3.1 release notes
- Bump CHARGEBACK_VERSION default to 0.3.1 in run_e2e_tests.sh and cleanup_testing_env.sh

Key changes in 0.3.1 vs 0.3.0: deployment_tags string/array fix in billing
transform, explicit lookup mappings removed from manifest, pipeline versions
bumped to 0.3.1-billing / 0.3.1-usage, dashboard @timestamp exists filter added.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@JohannesMahne
Copy link
Copy Markdown
Author

Test evidence:

./scripts/cleanup_testing_env.sh && STACK_VERSION=9.2.5 ./scripts/run_e2e_tests.sh
Cleaning up testing env (stack 9.2.2, chargeback 0.3.1). Using: elastic-package  Kibana: https://127.0.0.1:5601  ES: https://127.0.0.1:9200
--- 1. Uninstall Chargeback ---
--- 2. Uninstall On-Prem Billing ---
On-Prem Billing (onprem_billing@0.1.0) removed via Fleet API.
--- 2b. Remove On-Prem enrich policies and pipeline ---
Deleted enrich policy onprem_billing_config_enrich_policy.
Deleted enrich policy onprem_billing_org_config_policy.
Deleted pipeline calculate_cost.
--- 3. Uninstall Elasticsearch integration ---
Elasticsearch uninstall skipped or failed.
--- 4. Remove Fleet package policy elasticsearch-monitoring ---
Delete package policy 2f3d38dc-9909-4737-83a8-e0753cf8703d
{"id":"2f3d38dc-9909-4737-83a8-e0753cf8703d"}--- 5. Delete testing indices ---
Already gone: billing_cluster_cost_lookup
Already gone: chargeback_conf_lookup
Already gone: cluster_datastream_contribution_lookup
Already gone: cluster_deployment_contribution_lookup
Already gone: cluster_tier_and_datastream_contribution_lookup
Already gone: cluster_tier_contribution_lookup
Deleted monitoring-indices
Already gone: onprem_billing_config
--- 6. Re-enable legacy monitoring ---
Legacy monitoring re-enabled.
--- Cleanup done. ---
E2E (stack 9.2.5, chargeback 0.3.1). Using integrations repo: /Users/johannes/Elastic/GitHub/elastic/integrations
Using: elastic-package
Kibana: https://127.0.0.1:5601  ES: https://127.0.0.1:9200
--- 1. Stack status ---
2026/03/27 14:32:54  WARN CommitHash is undefined, in both /Users/johannes/.elastic-package/version and the compiled binary, config may be out of date.
Status of Elastic stack services:
╭──────────────────┬─────────┬───────────────────┬───────────────────┬────────────╮
│     SERVICE      │ VERSION │      STATUS       │ IMAGE BUILD DATE  │  VCS REF   │
├──────────────────┼─────────┼───────────────────┼───────────────────┼────────────┤
│ elastic-agent    │ 9.2.5   │ running (healthy) │ 2026-01-29T03:19Z │ df1a8dba11 │
│ elasticsearch    │ 9.2.5   │ running (healthy) │ 2026-01-28T22:05Z │ c26a2652b4 │
│ fleet-server     │ 9.2.5   │ running (healthy) │ 2026-01-29T03:19Z │ df1a8dba11 │
│ kibana           │ 9.2.5   │ running (healthy) │ 2026-01-28T23:38Z │ f99524135b │
│ package-registry │ latest  │ running (healthy) │                   │            │
╰──────────────────┴─────────┴───────────────────┴───────────────────┴────────────╯
Stack version OK: 9.2.5
--- 2. Build and install Elasticsearch integration ---
2026/03/27 14:32:54  WARN CommitHash is undefined, in both /Users/johannes/.elastic-package/version and the compiled binary, config may be out of date.
Build the package
2026/03/27 14:32:54  INFO License text found in "/Users/johannes/Elastic/GitHub/elastic/integrations/LICENSE.txt" will be included in package
README.md file rendered: /Users/johannes/Elastic/GitHub/elastic/integrations/packages/elasticsearch/docs/README.md
Package built: /Users/johannes/Elastic/GitHub/elastic/integrations/build/packages/elasticsearch-1.19.0.zip
Done
2026/03/27 14:32:55  WARN CommitHash is undefined, in both /Users/johannes/.elastic-package/version and the compiled binary, config may be out of date.
2026/03/27 14:32:55  INFO License text found in "/Users/johannes/Elastic/GitHub/elastic/integrations/LICENSE.txt" will be included in package
--- 3. Disable legacy monitoring ---
{"acknowledged":true,"persistent":{"xpack":{"monitoring":{"collection":{"enabled":"false"}}}},"transient":{}}

--- 4. Fleet: add Elasticsearch package policy (optional) ---
Using agent policy: fleet-server-policy (elasticsearch package 1.19.0)
{"item":{"id":"7dce7835-9e4d-4f47-b136-1c419c900866","version":"WzE4MDQsMV0=","name":"elasticsearch-monitoring","namespace":"default","description":"","package":{"name":"elasticsearch","title":"Elasticsearch","version":"1.19.0"},"enabled":true,"policy_id":"fleet-server-policy","policy_ids":["fleet-server-policy"],"inputs":[{"type":"elasticsearch/metrics","enabled":true,"vars":{"hosts":{"value":["https://elasticsearch:9200"],"type":"text"},"username":{"value":"elastic","type":"text"},"password":{"value":"changeme","type":"password"}},"streams":[{"enabled":true,"data_stream":{"type":"metrics","dataset":"elasticsearch.stack_monitoring.index"},"vars":{"period":{"value":"10s","type":"text"}},"id":"elasticsearch/metrics-elasticsearch.stack_monitoring.index-7dce7835-9e4d-4f47-b136-1c419c900866","compiled_stream":{"metricsets":["index"],"hosts":["https://elasticsearch:9200"],"scope":null,"username":"elastic","password":"changeme","period":"10s","tags":null}}],"id":"elasticsearch/metrics-7dce7835-9e4d-4f47-b136-1c419c900866"}],"revision":1,"created_at":"2026-03-27T12:32:59.326Z","created_by":"system","updated_at":"2026-03-27T12:32:59.326Z","updated_by":"system"}}
--- 5. Start Elasticsearch index_pivot transform ---
Starting transform: logs-elasticsearch.index_pivot-default-0.3.0
Seeding monitoring-indices: 30 days × 3 deployments × 3 datastreams × 3 tiers (810 docs).
Seeded monitoring-indices (30 days × 3 × 3 × 3 = 810 docs).
--- 6. Install On-Prem Billing ---
2026/03/27 14:33:01  WARN CommitHash is undefined, in both /Users/johannes/.elastic-package/version and the compiled binary, config may be out of date.
  Start config_bootstrap: logs-onprem_billing.config_bootstrap-default-0.1.0
  Waiting 15s for config_bootstrap to populate onprem_billing_config...
  Create organization config doc (12 ERU licence)
  Update deployment configs: dev=2 ERU/product, prod=8 ERU/product, monitoring=2 ERU/monitoring
  Create enrich policies and execute
  Waiting 10s for enrich indices to be searchable...
  Create ingest pipeline: calculate_cost
  Update billing transform (pipeline calculate_cost, sync delay 1m)
  Reset and start billing transform: logs-onprem_billing.billing-default-0.1.0
--- 7. Build and install Chargeback ---
2026/03/27 14:33:39  WARN CommitHash is undefined, in both /Users/johannes/.elastic-package/version and the compiled binary, config may be out of date.
Build the package
2026/03/27 14:33:39  INFO License text found in "/Users/johannes/Elastic/GitHub/elastic/integrations/LICENSE.txt" will be included in package
README.md file rendered: /Users/johannes/Elastic/GitHub/elastic/integrations/packages/chargeback/docs/README.md
Package built: /Users/johannes/Elastic/GitHub/elastic/integrations/build/packages/chargeback-0.3.1.zip
Done
2026/03/27 14:33:39  WARN CommitHash is undefined, in both /Users/johannes/.elastic-package/version and the compiled binary, config may be out of date.
2026/03/27 14:33:40  INFO License text found in "/Users/johannes/Elastic/GitHub/elastic/integrations/LICENSE.txt" will be included in package
--- 7b. Start Chargeback transforms ---
Start logs-chargeback.billing_cluster_cost-default-0.3.1
Start logs-chargeback.chargeback_conf_lookup-default-0.3.1
Start logs-chargeback.cluster_datastream_contribution-default-0.3.1
Start logs-chargeback.cluster_deployment_contribution-default-0.3.1
Start logs-chargeback.cluster_tier_and_ds_contribution-default-0.3.1
Start logs-chargeback.cluster_tier_contribution-default-0.3.1
--- 7c. Billing transform: 1m frequency, 1m lookback, sync on @timestamp ---
  Updated logs-chargeback.billing_cluster_cost-default-0.3.1 (frequency 1m, sync field @timestamp, delay 1m).
  Started and scheduled logs-chargeback.billing_cluster_cost-default-0.3.1.
--- 8. Backfill lookup indices (seed + reset/start transforms) ---
Reset/start logs-chargeback.billing_cluster_cost-default-0.3.1
Reset/start logs-chargeback.chargeback_conf_lookup-default-0.3.1
Reset/start logs-chargeback.cluster_datastream_contribution-default-0.3.1
Reset/start logs-chargeback.cluster_deployment_contribution-default-0.3.1
Reset/start logs-chargeback.cluster_tier_and_ds_contribution-default-0.3.1
Reset/start logs-chargeback.cluster_tier_contribution-default-0.3.1
Waiting 45s for transforms to run...
Seeding metrics-ess_billing.billing-onprem: 30 days × 3 deployments (90 docs).
Seeded metrics-ess_billing.billing-onprem (30 days × 3 deployments, event.ingested set on all docs).
Reset/start billing_cluster_cost so lookup gets deployment_group (product/monitoring)...
  billing_cluster_cost_lookup has 90 doc(s) from billing source (dummy data or On-Prem).
Patched billing_cluster_cost_lookup deployment_group by deployment_id (dev,prod->product; monitoring->monitoring).
--- 9. Verification ---
Transforms (chargeback):
"id":"logs-chargeback.billing_cluster_cost-default-0.3.1"
"id":"logs-chargeback.chargeback_conf_lookup-default-0.3.1"
"id":"logs-chargeback.cluster_datastream_contribution-default-0.3.1"
"id":"logs-chargeback.cluster_deployment_contribution-default-0.3.1"
"id":"logs-chargeback.cluster_tier_and_ds_contribution-default-0.3.1"
"id":"logs-chargeback.cluster_tier_contribution-default-0.3.1"
Lookup indices (chargeback) — document counts:
  billing_cluster_cost_lookup: 90 docs
  chargeback_conf_lookup: 1 docs
  cluster_datastream_contribution_lookup: 270 docs
  cluster_deployment_contribution_lookup: 90 docs
  cluster_tier_and_datastream_contribution_lookup: 270 docs
  cluster_tier_contribution_lookup: 90 docs

--- 10. Evidence: full content of all *lookup indices ---
Evidence of lookup indices — 2026-03-27T12:35:31Z
ES Host: https://127.0.0.1:9200

=== billing_cluster_cost_lookup ===
  doc count: 90
  --- doc 1 ---
    @timestamp: 2026-03-26T00:00:00.000Z
    composite_key: 2026-03-26_dev
    deployment_group: product
    deployment_name: dev
    total_chargeable_units: 1820.0
    deployment_id: dev
    sku: onprem_node
  --- doc 2 ---
    @timestamp: 2026-03-26T00:00:00.000Z
    composite_key: 2026-03-26_monitoring
    deployment_group: monitoring
    deployment_name: monitoring
    total_chargeable_units: 1820.0
    deployment_id: monitoring
    sku: onprem_node
  --- doc 3 ---
    @timestamp: 2026-03-26T00:00:00.000Z
    composite_key: 2026-03-26_prod
    deployment_group: product
    deployment_name: prod
    total_chargeable_units: 7280.0
    deployment_id: prod
    sku: onprem_node
  --- doc 4 ---
    @timestamp: 2026-03-25T00:00:00.000Z
    composite_key: 2026-03-25_dev
    deployment_group: product
    deployment_name: dev
    total_chargeable_units: 1840.0
    deployment_id: dev
    sku: onprem_node
  --- doc 5 ---
    @timestamp: 2026-03-25T00:00:00.000Z
    composite_key: 2026-03-25_monitoring
    deployment_group: monitoring
    deployment_name: monitoring
    total_chargeable_units: 1840.0
    deployment_id: monitoring
    sku: onprem_node
  --- doc 6 ---
    @timestamp: 2026-03-25T00:00:00.000Z
    composite_key: 2026-03-25_prod
    deployment_group: product
    deployment_name: prod
    total_chargeable_units: 7360.0
    deployment_id: prod
    sku: onprem_node
  --- doc 7 ---
    @timestamp: 2026-03-24T00:00:00.000Z
    composite_key: 2026-03-24_dev
    deployment_group: product
    deployment_name: dev
    total_chargeable_units: 1860.0
    deployment_id: dev
    sku: onprem_node
  --- doc 8 ---
    @timestamp: 2026-03-24T00:00:00.000Z
    composite_key: 2026-03-24_monitoring
    deployment_group: monitoring
    deployment_name: monitoring
    total_chargeable_units: 1860.0
    deployment_id: monitoring
    sku: onprem_node
  --- doc 9 ---
    @timestamp: 2026-03-24T00:00:00.000Z
    composite_key: 2026-03-24_prod
    deployment_group: product
    deployment_name: prod
    total_chargeable_units: 7440.0
    deployment_id: prod
    sku: onprem_node
  --- doc 10 ---
    @timestamp: 2026-03-23T00:00:00.000Z
    composite_key: 2026-03-23_dev
    deployment_group: product
    deployment_name: dev
    total_chargeable_units: 1880.0
    deployment_id: dev
    sku: onprem_node
  --- doc 11 ---
    @timestamp: 2026-03-23T00:00:00.000Z
    composite_key: 2026-03-23_monitoring
    deployment_group: monitoring
    deployment_name: monitoring
    total_chargeable_units: 1880.0
    deployment_id: monitoring
    sku: onprem_node
  --- doc 12 ---
    @timestamp: 2026-03-23T00:00:00.000Z
    composite_key: 2026-03-23_prod
    deployment_group: product
    deployment_name: prod
    total_chargeable_units: 7520.0
    deployment_id: prod
    sku: onprem_node
  --- doc 13 ---
    @timestamp: 2026-03-22T00:00:00.000Z
    composite_key: 2026-03-22_dev
    deployment_group: product
    deployment_name: dev
    total_chargeable_units: 1900.0
    deployment_id: dev
    sku: onprem_node
  --- doc 14 ---
    @timestamp: 2026-03-22T00:00:00.000Z
    composite_key: 2026-03-22_monitoring
    deployment_group: monitoring
    deployment_name: monitoring
    total_chargeable_units: 1900.0
    deployment_id: monitoring
    sku: onprem_node
  --- doc 15 ---
    @timestamp: 2026-03-22T00:00:00.000Z
    composite_key: 2026-03-22_prod
    deployment_group: product
    deployment_name: prod
    total_chargeable_units: 7600.0
    deployment_id: prod
    sku: onprem_node
  --- doc 16 ---
    @timestamp: 2026-03-21T00:00:00.000Z
    composite_key: 2026-03-21_dev
    deployment_group: product
    deployment_name: dev
    total_chargeable_units: 1920.0
    deployment_id: dev
    sku: onprem_node
  --- doc 17 ---
    @timestamp: 2026-03-21T00:00:00.000Z
    composite_key: 2026-03-21_monitoring
    deployment_group: monitoring
    deployment_name: monitoring
    total_chargeable_units: 1920.0
    deployment_id: monitoring
    sku: onprem_node
  --- doc 18 ---
    @timestamp: 2026-03-21T00:00:00.000Z
    composite_key: 2026-03-21_prod
    deployment_group: product
    deployment_name: prod
    total_chargeable_units: 7680.0
    deployment_id: prod
    sku: onprem_node
  --- doc 19 ---
    @timestamp: 2026-03-20T00:00:00.000Z
    composite_key: 2026-03-20_dev
    deployment_group: product
    deployment_name: dev
    total_chargeable_units: 1940.0
    deployment_id: dev
    sku: onprem_node
  --- doc 20 ---
    @timestamp: 2026-03-20T00:00:00.000Z
    composite_key: 2026-03-20_monitoring
    deployment_group: monitoring
    deployment_name: monitoring
    total_chargeable_units: 1940.0
    deployment_id: monitoring
    sku: onprem_node
  --- doc 21 ---
    @timestamp: 2026-03-20T00:00:00.000Z
    composite_key: 2026-03-20_prod
    deployment_group: product
    deployment_name: prod
    total_chargeable_units: 7760.0
    deployment_id: prod
    sku: onprem_node
  --- doc 22 ---
    @timestamp: 2026-03-19T00:00:00.000Z
    composite_key: 2026-03-19_dev
    deployment_group: product
    deployment_name: dev
    total_chargeable_units: 1960.0
    deployment_id: dev
    sku: onprem_node
  --- doc 23 ---
    @timestamp: 2026-03-19T00:00:00.000Z
    composite_key: 2026-03-19_monitoring
    deployment_group: monitoring
    deployment_name: monitoring
    total_chargeable_units: 1960.0
    deployment_id: monitoring
    sku: onprem_node
  --- doc 24 ---
    @timestamp: 2026-03-19T00:00:00.000Z
    composite_key: 2026-03-19_prod
    deployment_group: product
    deployment_name: prod
    total_chargeable_units: 7840.0
    deployment_id: prod
    sku: onprem_node
  --- doc 25 ---
    @timestamp: 2026-03-18T00:00:00.000Z
    composite_key: 2026-03-18_dev
    deployment_group: product
    deployment_name: dev
    total_chargeable_units: 1980.0
    deployment_id: dev
    sku: onprem_node
  --- doc 26 ---
    @timestamp: 2026-03-18T00:00:00.000Z
    composite_key: 2026-03-18_monitoring
    deployment_group: monitoring
    deployment_name: monitoring
    total_chargeable_units: 1980.0
    deployment_id: monitoring
    sku: onprem_node
  --- doc 27 ---
    @timestamp: 2026-03-18T00:00:00.000Z
    composite_key: 2026-03-18_prod
    deployment_group: product
    deployment_name: prod
    total_chargeable_units: 7920.0
    deployment_id: prod
    sku: onprem_node
  --- doc 28 ---
    @timestamp: 2026-03-17T00:00:00.000Z
    composite_key: 2026-03-17_dev
    deployment_group: product
    deployment_name: dev
    total_chargeable_units: 2000.0
    deployment_id: dev
    sku: onprem_node
  --- doc 29 ---
    @timestamp: 2026-03-17T00:00:00.000Z
    composite_key: 2026-03-17_monitoring
    deployment_group: monitoring
    deployment_name: monitoring
    total_chargeable_units: 2000.0
    deployment_id: monitoring
    sku: onprem_node
  --- doc 30 ---
    @timestamp: 2026-03-17T00:00:00.000Z
    composite_key: 2026-03-17_prod
    deployment_group: product
    deployment_name: prod
    total_chargeable_units: 8000.0
    deployment_id: prod
    sku: onprem_node
  --- doc 31 ---
    @timestamp: 2026-03-16T00:00:00.000Z
    composite_key: 2026-03-16_dev
    deployment_group: product
    deployment_name: dev
    total_chargeable_units: 2020.0
    deployment_id: dev
    sku: onprem_node
  --- doc 32 ---
    @timestamp: 2026-03-16T00:00:00.000Z
    composite_key: 2026-03-16_monitoring
    deployment_group: monitoring
    deployment_name: monitoring
    total_chargeable_units: 2020.0
    deployment_id: monitoring
    sku: onprem_node
  --- doc 33 ---
    @timestamp: 2026-03-16T00:00:00.000Z
    composite_key: 2026-03-16_prod
    deployment_group: product
    deployment_name: prod
    total_chargeable_units: 8080.0
    deployment_id: prod
    sku: onprem_node
  --- doc 34 ---
    @timestamp: 2026-03-15T00:00:00.000Z
    composite_key: 2026-03-15_dev
    deployment_group: product
    deployment_name: dev
    total_chargeable_units: 2040.0
    deployment_id: dev
    sku: onprem_node
  --- doc 35 ---
    @timestamp: 2026-03-15T00:00:00.000Z
    composite_key: 2026-03-15_monitoring
    deployment_group: monitoring
    deployment_name: monitoring
    total_chargeable_units: 2040.0
    deployment_id: monitoring
    sku: onprem_node
  --- doc 36 ---
    @timestamp: 2026-03-15T00:00:00.000Z
    composite_key: 2026-03-15_prod
    deployment_group: product
    deployment_name: prod
    total_chargeable_units: 8160.0
    deployment_id: prod
    sku: onprem_node
  --- doc 37 ---
    @timestamp: 2026-03-14T00:00:00.000Z
    composite_key: 2026-03-14_dev
    deployment_group: product
    deployment_name: dev
    total_chargeable_units: 2060.0
    deployment_id: dev
    sku: onprem_node
  --- doc 38 ---
    @timestamp: 2026-03-14T00:00:00.000Z
    composite_key: 2026-03-14_monitoring
    deployment_group: monitoring
    deployment_name: monitoring
    total_chargeable_units: 2060.0
    deployment_id: monitoring
    sku: onprem_node
  --- doc 39 ---
    @timestamp: 2026-03-14T00:00:00.000Z
    composite_key: 2026-03-14_prod
    deployment_group: product
    deployment_name: prod
    total_chargeable_units: 8240.0
    deployment_id: prod
    sku: onprem_node
  --- doc 40 ---
    @timestamp: 2026-03-13T00:00:00.000Z
    composite_key: 2026-03-13_dev
    deployment_group: product
    deployment_name: dev
    total_chargeable_units: 2080.0
    deployment_id: dev
    sku: onprem_node
  --- doc 41 ---
    @timestamp: 2026-03-13T00:00:00.000Z
    composite_key: 2026-03-13_monitoring
    deployment_group: monitoring
    deployment_name: monitoring
    total_chargeable_units: 2080.0
    deployment_id: monitoring
    sku: onprem_node
  --- doc 42 ---
    @timestamp: 2026-03-13T00:00:00.000Z
    composite_key: 2026-03-13_prod
    deployment_group: product
    deployment_name: prod
    total_chargeable_units: 8320.0
    deployment_id: prod
    sku: onprem_node
  --- doc 43 ---
    @timestamp: 2026-03-12T00:00:00.000Z
    composite_key: 2026-03-12_dev
    deployment_group: product
    deployment_name: dev
    total_chargeable_units: 2100.0
    deployment_id: dev
    sku: onprem_node
  --- doc 44 ---
    @timestamp: 2026-03-12T00:00:00.000Z
    composite_key: 2026-03-12_monitoring
    deployment_group: monitoring
    deployment_name: monitoring
    total_chargeable_units: 2100.0
    deployment_id: monitoring
    sku: onprem_node
  --- doc 45 ---
    @timestamp: 2026-03-12T00:00:00.000Z
    composite_key: 2026-03-12_prod
    deployment_group: product
    deployment_name: prod
    total_chargeable_units: 8400.0
    deployment_id: prod
    sku: onprem_node
  --- doc 46 ---
    @timestamp: 2026-03-11T00:00:00.000Z
    composite_key: 2026-03-11_dev
    deployment_group: product
    deployment_name: dev
    total_chargeable_units: 2120.0
    deployment_id: dev
    sku: onprem_node
  --- doc 47 ---
    @timestamp: 2026-03-11T00:00:00.000Z
    composite_key: 2026-03-11_monitoring
    deployment_group: monitoring
    deployment_name: monitoring
    total_chargeable_units: 2120.0
    deployment_id: monitoring
    sku: onprem_node
  --- doc 48 ---
    @timestamp: 2026-03-11T00:00:00.000Z
    composite_key: 2026-03-11_prod
    deployment_group: product
    deployment_name: prod
    total_chargeable_units: 8480.0
    deployment_id: prod
    sku: onprem_node
  --- doc 49 ---
    @timestamp: 2026-03-10T00:00:00.000Z
    composite_key: 2026-03-10_dev
    deployment_group: product
    deployment_name: dev
    total_chargeable_units: 2140.0
    deployment_id: dev
    sku: onprem_node
  --- doc 50 ---
    @timestamp: 2026-03-10T00:00:00.000Z
    composite_key: 2026-03-10_monitoring
    deployment_group: monitoring
    deployment_name: monitoring
    total_chargeable_units: 2140.0
    deployment_id: monitoring
    sku: onprem_node
  --- doc 51 ---
    @timestamp: 2026-03-10T00:00:00.000Z
    composite_key: 2026-03-10_prod
    deployment_group: product
    deployment_name: prod
    total_chargeable_units: 8560.0
    deployment_id: prod
    sku: onprem_node
  --- doc 52 ---
    @timestamp: 2026-03-09T00:00:00.000Z
    composite_key: 2026-03-09_dev
    deployment_group: product
    deployment_name: dev
    total_chargeable_units: 2160.0
    deployment_id: dev
    sku: onprem_node
  --- doc 53 ---
    @timestamp: 2026-03-09T00:00:00.000Z
    composite_key: 2026-03-09_monitoring
    deployment_group: monitoring
    deployment_name: monitoring
    total_chargeable_units: 2160.0
    deployment_id: monitoring
    sku: onprem_node
  --- doc 54 ---
    @timestamp: 2026-03-09T00:00:00.000Z
    composite_key: 2026-03-09_prod
    deployment_group: product
    deployment_name: prod
    total_chargeable_units: 8640.0
    deployment_id: prod
    sku: onprem_node
  --- doc 55 ---
    @timestamp: 2026-03-08T00:00:00.000Z
    composite_key: 2026-03-08_dev
    deployment_group: product
    deployment_name: dev
    total_chargeable_units: 2180.0
    deployment_id: dev
    sku: onprem_node
  --- doc 56 ---
    @timestamp: 2026-03-08T00:00:00.000Z
    composite_key: 2026-03-08_monitoring
    deployment_group: monitoring
    deployment_name: monitoring
    total_chargeable_units: 2180.0
    deployment_id: monitoring
    sku: onprem_node
  --- doc 57 ---
    @timestamp: 2026-03-08T00:00:00.000Z
    composite_key: 2026-03-08_prod
    deployment_group: product
    deployment_name: prod
    total_chargeable_units: 8720.0
    deployment_id: prod
    sku: onprem_node
  --- doc 58 ---
    @timestamp: 2026-03-07T00:00:00.000Z
    composite_key: 2026-03-07_dev
    deployment_group: product
    deployment_name: dev
    total_chargeable_units: 1800.0
    deployment_id: dev
    sku: onprem_node
  --- doc 59 ---
    @timestamp: 2026-03-07T00:00:00.000Z
    composite_key: 2026-03-07_monitoring
    deployment_group: monitoring
    deployment_name: monitoring
    total_chargeable_units: 1800.0
    deployment_id: monitoring
    sku: onprem_node
  --- doc 60 ---
    @timestamp: 2026-03-07T00:00:00.000Z
    composite_key: 2026-03-07_prod
    deployment_group: product
    deployment_name: prod
    total_chargeable_units: 7200.0
    deployment_id: prod
    sku: onprem_node
  --- doc 61 ---
    @timestamp: 2026-03-06T00:00:00.000Z
    composite_key: 2026-03-06_dev
    deployment_group: product
    deployment_name: dev
    total_chargeable_units: 1820.0
    deployment_id: dev
    sku: onprem_node
  --- doc 62 ---
    @timestamp: 2026-03-06T00:00:00.000Z
    composite_key: 2026-03-06_monitoring
    deployment_group: monitoring
    deployment_name: monitoring
    total_chargeable_units: 1820.0
    deployment_id: monitoring
    sku: onprem_node
  --- doc 63 ---
    @timestamp: 2026-03-06T00:00:00.000Z
    composite_key: 2026-03-06_prod
    deployment_group: product
    deployment_name: prod
    total_chargeable_units: 7280.0
    deployment_id: prod
    sku: onprem_node
  --- doc 64 ---
    @timestamp: 2026-03-05T00:00:00.000Z
    composite_key: 2026-03-05_dev
    deployment_group: product
    deployment_name: dev
    total_chargeable_units: 1840.0
    deployment_id: dev
    sku: onprem_node
  --- doc 65 ---
    @timestamp: 2026-03-05T00:00:00.000Z
    composite_key: 2026-03-05_monitoring
    deployment_group: monitoring
    deployment_name: monitoring
    total_chargeable_units: 1840.0
    deployment_id: monitoring
    sku: onprem_node
  --- doc 66 ---
    @timestamp: 2026-03-05T00:00:00.000Z
    composite_key: 2026-03-05_prod
    deployment_group: product
    deployment_name: prod
    total_chargeable_units: 7360.0
    deployment_id: prod
    sku: onprem_node
  --- doc 67 ---
    @timestamp: 2026-03-04T00:00:00.000Z
    composite_key: 2026-03-04_dev
    deployment_group: product
    deployment_name: dev
    total_chargeable_units: 1860.0
    deployment_id: dev
    sku: onprem_node
  --- doc 68 ---
    @timestamp: 2026-03-04T00:00:00.000Z
    composite_key: 2026-03-04_monitoring
    deployment_group: monitoring
    deployment_name: monitoring
    total_chargeable_units: 1860.0
    deployment_id: monitoring
    sku: onprem_node
  --- doc 69 ---
    @timestamp: 2026-03-04T00:00:00.000Z
    composite_key: 2026-03-04_prod
    deployment_group: product
    deployment_name: prod
    total_chargeable_units: 7440.0
    deployment_id: prod
    sku: onprem_node
  --- doc 70 ---
    @timestamp: 2026-03-03T00:00:00.000Z
    composite_key: 2026-03-03_dev
    deployment_group: product
    deployment_name: dev
    total_chargeable_units: 1880.0
    deployment_id: dev
    sku: onprem_node
  --- doc 71 ---
    @timestamp: 2026-03-03T00:00:00.000Z
    composite_key: 2026-03-03_monitoring
    deployment_group: monitoring
    deployment_name: monitoring
    total_chargeable_units: 1880.0
    deployment_id: monitoring
    sku: onprem_node
  --- doc 72 ---
    @timestamp: 2026-03-03T00:00:00.000Z
    composite_key: 2026-03-03_prod
    deployment_group: product
    deployment_name: prod
    total_chargeable_units: 7520.0
    deployment_id: prod
    sku: onprem_node
  --- doc 73 ---
    @timestamp: 2026-03-02T00:00:00.000Z
    composite_key: 2026-03-02_dev
    deployment_group: product
    deployment_name: dev
    total_chargeable_units: 1900.0
    deployment_id: dev
    sku: onprem_node
  --- doc 74 ---
    @timestamp: 2026-03-02T00:00:00.000Z
    composite_key: 2026-03-02_monitoring
    deployment_group: monitoring
    deployment_name: monitoring
    total_chargeable_units: 1900.0
    deployment_id: monitoring
    sku: onprem_node
  --- doc 75 ---
    @timestamp: 2026-03-02T00:00:00.000Z
    composite_key: 2026-03-02_prod
    deployment_group: product
    deployment_name: prod
    total_chargeable_units: 7600.0
    deployment_id: prod
    sku: onprem_node
  --- doc 76 ---
    @timestamp: 2026-03-01T00:00:00.000Z
    composite_key: 2026-03-01_dev
    deployment_group: product
    deployment_name: dev
    total_chargeable_units: 1920.0
    deployment_id: dev
    sku: onprem_node
  --- doc 77 ---
    @timestamp: 2026-03-01T00:00:00.000Z
    composite_key: 2026-03-01_monitoring
    deployment_group: monitoring
    deployment_name: monitoring
    total_chargeable_units: 1920.0
    deployment_id: monitoring
    sku: onprem_node
  --- doc 78 ---
    @timestamp: 2026-03-01T00:00:00.000Z
    composite_key: 2026-03-01_prod
    deployment_group: product
    deployment_name: prod
    total_chargeable_units: 7680.0
    deployment_id: prod
    sku: onprem_node
  --- doc 79 ---
    @timestamp: 2026-02-28T00:00:00.000Z
    composite_key: 2026-02-28_dev
    deployment_group: product
    deployment_name: dev
    total_chargeable_units: 1940.0
    deployment_id: dev
    sku: onprem_node
  --- doc 80 ---
    @timestamp: 2026-02-28T00:00:00.000Z
    composite_key: 2026-02-28_monitoring
    deployment_group: monitoring
    deployment_name: monitoring
    total_chargeable_units: 1940.0
    deployment_id: monitoring
    sku: onprem_node
  --- doc 81 ---
    @timestamp: 2026-02-28T00:00:00.000Z
    composite_key: 2026-02-28_prod
    deployment_group: product
    deployment_name: prod
    total_chargeable_units: 7760.0
    deployment_id: prod
    sku: onprem_node
  --- doc 82 ---
    @timestamp: 2026-02-27T00:00:00.000Z
    composite_key: 2026-02-27_dev
    deployment_group: product
    deployment_name: dev
    total_chargeable_units: 1960.0
    deployment_id: dev
    sku: onprem_node
  --- doc 83 ---
    @timestamp: 2026-02-27T00:00:00.000Z
    composite_key: 2026-02-27_monitoring
    deployment_group: monitoring
    deployment_name: monitoring
    total_chargeable_units: 1960.0
    deployment_id: monitoring
    sku: onprem_node
  --- doc 84 ---
    @timestamp: 2026-02-27T00:00:00.000Z
    composite_key: 2026-02-27_prod
    deployment_group: product
    deployment_name: prod
    total_chargeable_units: 7840.0
    deployment_id: prod
    sku: onprem_node
  --- doc 85 ---
    @timestamp: 2026-02-26T00:00:00.000Z
    composite_key: 2026-02-26_dev
    deployment_group: product
    deployment_name: dev
    total_chargeable_units: 1980.0
    deployment_id: dev
    sku: onprem_node
  --- doc 86 ---
    @timestamp: 2026-02-26T00:00:00.000Z
    composite_key: 2026-02-26_monitoring
    deployment_group: monitoring
    deployment_name: monitoring
    total_chargeable_units: 1980.0
    deployment_id: monitoring
    sku: onprem_node
  --- doc 87 ---
    @timestamp: 2026-02-26T00:00:00.000Z
    composite_key: 2026-02-26_prod
    deployment_group: product
    deployment_name: prod
    total_chargeable_units: 7920.0
    deployment_id: prod
    sku: onprem_node
  --- doc 88 ---
    @timestamp: 2026-02-25T00:00:00.000Z
    composite_key: 2026-02-25_dev
    deployment_group: product
    deployment_name: dev
    total_chargeable_units: 2000.0
    deployment_id: dev
    sku: onprem_node
  --- doc 89 ---
    @timestamp: 2026-02-25T00:00:00.000Z
    composite_key: 2026-02-25_monitoring
    deployment_group: monitoring
    deployment_name: monitoring
    total_chargeable_units: 2000.0
    deployment_id: monitoring
    sku: onprem_node
  --- doc 90 ---
    @timestamp: 2026-02-25T00:00:00.000Z
    composite_key: 2026-02-25_prod
    deployment_group: product
    deployment_name: prod
    total_chargeable_units: 8000.0
    deployment_id: prod
    sku: onprem_node
  (table)
    @timestamp                composite_key          deployment_group  deployment_id  deployment_name  sku          total_chargeable_units
    2026-03-26T00:00:00.000Z  2026-03-26_dev         product           dev            dev              onprem_node  1820.0
    2026-03-26T00:00:00.000Z  2026-03-26_monitoring  monitoring        monitoring     monitoring       onprem_node  1820.0
    2026-03-26T00:00:00.000Z  2026-03-26_prod        product           prod           prod             onprem_node  7280.0
    2026-03-25T00:00:00.000Z  2026-03-25_dev         product           dev            dev              onprem_node  1840.0
    2026-03-25T00:00:00.000Z  2026-03-25_monitoring  monitoring        monitoring     monitoring       onprem_node  1840.0
    2026-03-25T00:00:00.000Z  2026-03-25_prod        product           prod           prod             onprem_node  7360.0
    2026-03-24T00:00:00.000Z  2026-03-24_dev         product           dev            dev              onprem_node  1860.0
    2026-03-24T00:00:00.000Z  2026-03-24_monitoring  monitoring        monitoring     monitoring       onprem_node  1860.0
    2026-03-24T00:00:00.000Z  2026-03-24_prod        product           prod           prod             onprem_node  7440.0
    2026-03-23T00:00:00.000Z  2026-03-23_dev         product           dev            dev              onprem_node  1880.0
    2026-03-23T00:00:00.000Z  2026-03-23_monitoring  monitoring        monitoring     monitoring       onprem_node  1880.0
    2026-03-23T00:00:00.000Z  2026-03-23_prod        product           prod           prod             onprem_node  7520.0
    2026-03-22T00:00:00.000Z  2026-03-22_dev         product           dev            dev              onprem_node  1900.0
    2026-03-22T00:00:00.000Z  2026-03-22_monitoring  monitoring        monitoring     monitoring       onprem_node  1900.0
    2026-03-22T00:00:00.000Z  2026-03-22_prod        product           prod           prod             onprem_node  7600.0
    2026-03-21T00:00:00.000Z  2026-03-21_dev         product           dev            dev              onprem_node  1920.0
    2026-03-21T00:00:00.000Z  2026-03-21_monitoring  monitoring        monitoring     monitoring       onprem_node  1920.0
    2026-03-21T00:00:00.000Z  2026-03-21_prod        product           prod           prod             onprem_node  7680.0
    2026-03-20T00:00:00.000Z  2026-03-20_dev         product           dev            dev              onprem_node  1940.0
    2026-03-20T00:00:00.000Z  2026-03-20_monitoring  monitoring        monitoring     monitoring       onprem_node  1940.0
    2026-03-20T00:00:00.000Z  2026-03-20_prod        product           prod           prod             onprem_node  7760.0
    2026-03-19T00:00:00.000Z  2026-03-19_dev         product           dev            dev              onprem_node  1960.0
    2026-03-19T00:00:00.000Z  2026-03-19_monitoring  monitoring        monitoring     monitoring       onprem_node  1960.0
    2026-03-19T00:00:00.000Z  2026-03-19_prod        product           prod           prod             onprem_node  7840.0
    2026-03-18T00:00:00.000Z  2026-03-18_dev         product           dev            dev              onprem_node  1980.0
    2026-03-18T00:00:00.000Z  2026-03-18_monitoring  monitoring        monitoring     monitoring       onprem_node  1980.0
    2026-03-18T00:00:00.000Z  2026-03-18_prod        product           prod           prod             onprem_node  7920.0
    2026-03-17T00:00:00.000Z  2026-03-17_dev         product           dev            dev              onprem_node  2000.0
    2026-03-17T00:00:00.000Z  2026-03-17_monitoring  monitoring        monitoring     monitoring       onprem_node  2000.0
    2026-03-17T00:00:00.000Z  2026-03-17_prod        product           prod           prod             onprem_node  8000.0
    2026-03-16T00:00:00.000Z  2026-03-16_dev         product           dev            dev              onprem_node  2020.0
    2026-03-16T00:00:00.000Z  2026-03-16_monitoring  monitoring        monitoring     monitoring       onprem_node  2020.0
    2026-03-16T00:00:00.000Z  2026-03-16_prod        product           prod           prod             onprem_node  8080.0
    2026-03-15T00:00:00.000Z  2026-03-15_dev         product           dev            dev              onprem_node  2040.0
    2026-03-15T00:00:00.000Z  2026-03-15_monitoring  monitoring        monitoring     monitoring       onprem_node  2040.0
    2026-03-15T00:00:00.000Z  2026-03-15_prod        product           prod           prod             onprem_node  8160.0
    2026-03-14T00:00:00.000Z  2026-03-14_dev         product           dev            dev              onprem_node  2060.0
    2026-03-14T00:00:00.000Z  2026-03-14_monitoring  monitoring        monitoring     monitoring       onprem_node  2060.0
    2026-03-14T00:00:00.000Z  2026-03-14_prod        product           prod           prod             onprem_node  8240.0
    2026-03-13T00:00:00.000Z  2026-03-13_dev         product           dev            dev              onprem_node  2080.0
    2026-03-13T00:00:00.000Z  2026-03-13_monitoring  monitoring        monitoring     monitoring       onprem_node  2080.0
    2026-03-13T00:00:00.000Z  2026-03-13_prod        product           prod           prod             onprem_node  8320.0
    2026-03-12T00:00:00.000Z  2026-03-12_dev         product           dev            dev              onprem_node  2100.0
    2026-03-12T00:00:00.000Z  2026-03-12_monitoring  monitoring        monitoring     monitoring       onprem_node  2100.0
    2026-03-12T00:00:00.000Z  2026-03-12_prod        product           prod           prod             onprem_node  8400.0
    2026-03-11T00:00:00.000Z  2026-03-11_dev         product           dev            dev              onprem_node  2120.0
    2026-03-11T00:00:00.000Z  2026-03-11_monitoring  monitoring        monitoring     monitoring       onprem_node  2120.0
    2026-03-11T00:00:00.000Z  2026-03-11_prod        product           prod           prod             onprem_node  8480.0
    2026-03-10T00:00:00.000Z  2026-03-10_dev         product           dev            dev              onprem_node  2140.0
    2026-03-10T00:00:00.000Z  2026-03-10_monitoring  monitoring        monitoring     monitoring       onprem_node  2140.0
    2026-03-10T00:00:00.000Z  2026-03-10_prod        product           prod           prod             onprem_node  8560.0
    2026-03-09T00:00:00.000Z  2026-03-09_dev         product           dev            dev              onprem_node  2160.0
    2026-03-09T00:00:00.000Z  2026-03-09_monitoring  monitoring        monitoring     monitoring       onprem_node  2160.0
    2026-03-09T00:00:00.000Z  2026-03-09_prod        product           prod           prod             onprem_node  8640.0
    2026-03-08T00:00:00.000Z  2026-03-08_dev         product           dev            dev              onprem_node  2180.0
    2026-03-08T00:00:00.000Z  2026-03-08_monitoring  monitoring        monitoring     monitoring       onprem_node  2180.0
    2026-03-08T00:00:00.000Z  2026-03-08_prod        product           prod           prod             onprem_node  8720.0
    2026-03-07T00:00:00.000Z  2026-03-07_dev         product           dev            dev              onprem_node  1800.0
    2026-03-07T00:00:00.000Z  2026-03-07_monitoring  monitoring        monitoring     monitoring       onprem_node  1800.0
    2026-03-07T00:00:00.000Z  2026-03-07_prod        product           prod           prod             onprem_node  7200.0
    2026-03-06T00:00:00.000Z  2026-03-06_dev         product           dev            dev              onprem_node  1820.0
    2026-03-06T00:00:00.000Z  2026-03-06_monitoring  monitoring        monitoring     monitoring       onprem_node  1820.0
    2026-03-06T00:00:00.000Z  2026-03-06_prod        product           prod           prod             onprem_node  7280.0
    2026-03-05T00:00:00.000Z  2026-03-05_dev         product           dev            dev              onprem_node  1840.0
    2026-03-05T00:00:00.000Z  2026-03-05_monitoring  monitoring        monitoring     monitoring       onprem_node  1840.0
    2026-03-05T00:00:00.000Z  2026-03-05_prod        product           prod           prod             onprem_node  7360.0
    2026-03-04T00:00:00.000Z  2026-03-04_dev         product           dev            dev              onprem_node  1860.0
    2026-03-04T00:00:00.000Z  2026-03-04_monitoring  monitoring        monitoring     monitoring       onprem_node  1860.0
    2026-03-04T00:00:00.000Z  2026-03-04_prod        product           prod           prod             onprem_node  7440.0
    2026-03-03T00:00:00.000Z  2026-03-03_dev         product           dev            dev              onprem_node  1880.0
    2026-03-03T00:00:00.000Z  2026-03-03_monitoring  monitoring        monitoring     monitoring       onprem_node  1880.0
    2026-03-03T00:00:00.000Z  2026-03-03_prod        product           prod           prod             onprem_node  7520.0
    2026-03-02T00:00:00.000Z  2026-03-02_dev         product           dev            dev              onprem_node  1900.0
    2026-03-02T00:00:00.000Z  2026-03-02_monitoring  monitoring        monitoring     monitoring       onprem_node  1900.0
    2026-03-02T00:00:00.000Z  2026-03-02_prod        product           prod           prod             onprem_node  7600.0
    2026-03-01T00:00:00.000Z  2026-03-01_dev         product           dev            dev              onprem_node  1920.0
    2026-03-01T00:00:00.000Z  2026-03-01_monitoring  monitoring        monitoring     monitoring       onprem_node  1920.0
    2026-03-01T00:00:00.000Z  2026-03-01_prod        product           prod           prod             onprem_node  7680.0
    2026-02-28T00:00:00.000Z  2026-02-28_dev         product           dev            dev              onprem_node  1940.0
    2026-02-28T00:00:00.000Z  2026-02-28_monitoring  monitoring        monitoring     monitoring       onprem_node  1940.0
    2026-02-28T00:00:00.000Z  2026-02-28_prod        product           prod           prod             onprem_node  7760.0
    2026-02-27T00:00:00.000Z  2026-02-27_dev         product           dev            dev              onprem_node  1960.0
    2026-02-27T00:00:00.000Z  2026-02-27_monitoring  monitoring        monitoring     monitoring       onprem_node  1960.0
    2026-02-27T00:00:00.000Z  2026-02-27_prod        product           prod           prod             onprem_node  7840.0
    2026-02-26T00:00:00.000Z  2026-02-26_dev         product           dev            dev              onprem_node  1980.0
    2026-02-26T00:00:00.000Z  2026-02-26_monitoring  monitoring        monitoring     monitoring       onprem_node  1980.0
    2026-02-26T00:00:00.000Z  2026-02-26_prod        product           prod           prod             onprem_node  7920.0
    2026-02-25T00:00:00.000Z  2026-02-25_dev         product           dev            dev              onprem_node  2000.0
    2026-02-25T00:00:00.000Z  2026-02-25_monitoring  monitoring        monitoring     monitoring       onprem_node  2000.0
    2026-02-25T00:00:00.000Z  2026-02-25_prod        product           prod           prod             onprem_node  8000.0

=== chargeback_conf_lookup ===
  doc count: 1
  Full evidence also written to: /Users/johannes/Elastic/GitHub/elastic/elasticsearch-chargeback/scripts/evidence_lookup_indices.txt

--- 11. Cross-verification: data match across all *lookup indices ---

  Key fields by index (same row = same field; columns must match where applicable):

  field                   billing_cluster_cost_lookup  chargeback_conf_lookup  cluster_datastream_contribution_lookup  cluster_deployment_contribution_lookup  cluster_tier_and_datastream_contribution_lookup  cluster_tier_contribution_lookup
  deployment_id           dev                          -                       dev                                     dev                                     dev                                              dev
  @timestamp              2026-02-25T00:00:00.000Z     -                       2026-02-25T00:00:00.000Z                2026-02-25T00:00:00.000Z                2026-02-25T00:00:00.000Z                         2026-02-25T00:00:00.000Z
  deployment_name         dev                          -                       -                                       -                                       -                                                -
  total_chargeable_units  2000.0                       -                       -                                       -                                       -                                                -
  tier                    -                            -                       -                                       -                                       unknown                                          unknown
  datastream              -                            -                       logs-app                                -                                       logs-app                                         -
  composite_key           2026-02-25_dev               -                       2026-02-25_dev                          2026-02-25_dev                          2026-02-25_dev                                   2026-02-25_dev
  cost_type               -                            -                       -                                       -                                       -                                                -

  Match check:
  - All lookup indices have at least 1 document: PASS
  - deployment_id values:  dev RWOnCQEk0P2opqBKiX-XPWIeAAAAAAAA dev dev dev dev

--- Evidence complete: tables above prove data consistency across all *lookup indices. ---

--- Done. Run 'go run github.com/elastic/elastic-package test' from /Users/johannes/Elastic/GitHub/elastic/integrations/packages/chargeback for asset tests. ---
Chargeback  Cost and Consumption breakdown (2)

@JohannesMahne
Copy link
Copy Markdown
Author

Hey @sholzhauer-es — requesting your review here. This PR renames the ECU-based fields to chargeable-unit terminology (conf_ecu_rateconf_chargeable_unit_rate, total_ecutotal_chargeable_units) and fixes the billing transform to handle deployment_tags as either a string or array. It needs to go in together with elasticsearch-chargeback#89, which ships the matching 0.3.1 zip and E2E test scripts.

@JohannesMahne JohannesMahne removed the request for review from a team March 27, 2026 12:45
@JohannesMahne JohannesMahne force-pushed the wip-johannes-chargeback-chargable-units branch from e2b9237 to 4984f8f Compare March 27, 2026 12:59
- Rename conf_ecu_rate -> conf_chargeable_unit_rate (float -> double),
  conf_ecu_rate_unit -> conf_chargeable_unit_rate_unit
- Rename total_ecu -> total_chargeable_units in billing_cluster_cost transform
- Fix billing_cluster_cost transform to handle ess.billing.deployment_tags
  as string or array
- Fix billing.yml ingest pipeline: snapshot-storage regex & -> .* so
  snapshot SKUs are correctly classified as cost_type 'snapshots'
- Add explicit billing_cluster_cost_lookup index mappings
- Bump manifest to 0.3.1, pipeline versions to 0.3.1-billing/0.3.1-usage
- Update dashboard ES|QL and README for new field names

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@JohannesMahne JohannesMahne force-pushed the wip-johannes-chargeback-chargable-units branch from 4984f8f to 37e5987 Compare March 27, 2026 12:59
JohannesMahne and others added 2 commits March 27, 2026 16:24
Fixes CI: mage check requires every package to have an owner.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
elastic/elasticsearch-chargeback is not a valid GitHub team in CODEOWNERS;
align with chargeback package.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@JohannesMahne JohannesMahne requested a review from a team as a code owner March 27, 2026 14:32
@andrewkroh andrewkroh added dashboard Relates to a Kibana dashboard bug, enhancement, or modification. documentation Improvements or additions to documentation. Applied to PRs that modify *.md files. labels Mar 27, 2026
Copy link
Copy Markdown
Contributor

@sholzhauer-es sholzhauer-es left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

During build i got a warning:

Build the package
2026/03/30 13:20:40  INFO License text found in "/Users/sholzhauer/Github/elastic/integrations/LICENSE.txt" will be included in package
Error: building package failed: invalid content found in built zip package: found 1 validation error:
   1. item [alerting_rule_template] is not allowed in folder [/Users/sholzhauer/Github/elastic/integrations/build/packages/chargeback-0.3.1.zip/kibana]

Package did build successfully ✅
Rule templates showing up ✅

Image

In place upgrade breaks the dashboard though.

Image

@sholzhauer-es
Copy link
Copy Markdown
Contributor

The README references a "upgrade documentation", can we clarify that? Might be i was missing that.

JohannesMahne added a commit that referenced this pull request Apr 7, 2026
- Use COALESCE in all dashboard ES|QL for total_chargeable_units/total_ecu
  and conf_chargeable_unit_rate/conf_ecu_rate (and unit fields) so lookup
  data from before the rename still works after upgrade.
- Document end-user upgrade behavior under Dashboard; fix sample conf_end_date.
- Note compatibility in changelog 0.3.1 entry.

Responds to review on #18102
(in-place upgrade breaking dashboard; clarify upgrade expectations).

Made-with: Cursor
- Use COALESCE in all dashboard ES|QL for total_chargeable_units/total_ecu
  and conf_chargeable_unit_rate/conf_ecu_rate (and unit fields) so lookup
  data from before the rename still works after upgrade.
- Document end-user upgrade behavior under Dashboard; fix sample conf_end_date.
- Note compatibility in changelog 0.3.1 entry.

Responds to review on #18102
(in-place upgrade breaking dashboard; clarify upgrade expectations).

Made-with: Cursor
- Bump format_version to 3.5.0 (same track as integrations that ship
  kibana/alerting_rule_template) so built zips validate against current
  package-spec kibana layout.
- Remove validation.yml SVR00002 exclusion; dashboard already satisfies
  the time-filter check.
- README: note Kibana 9.2+ requirement for alert rule templates.

Addresses review feedback on #18102 (alerting_rule_template
zip validation warning; clarify alerting vs stack version).

Made-with: Cursor
@JohannesMahne
Copy link
Copy Markdown
Author

@sholzhauer-es - I fixed all the issues you picked up. The dashboard issue was because of changing field names in the lookup index. I fixed it by using COALESCE in the esql queries. The alerting rule template issue you got is fixed by using a new format version of the elastic package. This also enables us to remove the validation check for the filter.

CI runs elastic-package v0.118 (go.mod), which fails check when docs/README.md
differs from build output sourced from _dev/build/docs/README.md. Move upgrade
and alerting copy into the build source, fix sample conf_end_date, rebuild
rendered README.

Made-with: Cursor
JohannesMahne added a commit to elastic/elasticsearch-chargeback that referenced this pull request Apr 7, 2026
Built with elastic-package from integrations branch
wip-johannes-chargeback-chargable-units @ 3a87a3c98b (PR elastic/integrations#18102).

Includes dashboard ES|QL COALESCE for 0.3.0 upgrade compatibility, README
sync via _dev/build/docs, format_version 3.5.0, and removal of
validation.yml SVR00002 override.

Refreshes asset for #89.

Made-with: Cursor
Changelog validator requires a URL with a numeric issue or PR id.
Replace bare elasticsearch-chargeback repo URL with PR #89 reference.

Fixes Buildkite integrations pipeline failure when testing this package
alongside chargeback (PR #18102).

Made-with: Cursor
@elasticmachine
Copy link
Copy Markdown

💚 Build Succeeded

History

JohannesMahne added a commit to elastic/elasticsearch-chargeback that referenced this pull request Apr 7, 2026
Built with elastic-package from branch wip-johannes-chargeback-chargable-units
@ 24c5f464e9 (elastic/integrations#18102).

Includes onprem_billing changelog link lint fix for CI; chargeback package
unchanged in zip content vs prior rebuild if only sibling package differed—
rebuilt from current integrations tree for PR #89.

Made-with: Cursor
@JohannesMahne
Copy link
Copy Markdown
Author

Merge / release housekeeping (supersedes integrations#17409; fixes elasticsearch-chargeback#91)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dashboard Relates to a Kibana dashboard bug, enhancement, or modification. documentation Improvements or additions to documentation. Applied to PRs that modify *.md files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants