Skip to content

feat(grafana): make curated packs field-profile portable - #432

Merged
shmsr merged 6 commits into
feat/grafana-field-profile-portabilityfrom
feat/grafana-portable-packs
Sep 2, 2026
Merged

feat(grafana): make curated packs field-profile portable#432
shmsr merged 6 commits into
feat/grafana-field-profile-portabilityfrom
feat/grafana-portable-packs

Conversation

@shmsr

@shmsr shmsr commented Sep 1, 2026

Copy link
Copy Markdown
Member

Summary

  • Convert all 14 curated Grafana packs to canonical authoring: identity label_rewrites removed, remaining rewrites are source→canonical, ES|QL uses {{label:x}} / {{metric:...}}, controls and plugins go through the resolver, Heapster packs set source_label_names for passthrough.
  • Kubernetes (741, 8171, 315, 6417), Redis (763, 11835, 14091, 18405, 18406), Postgres/MySQL/Node-Exporter (12485, 14114, 9628, 7362, 1860).
  • Docs: packs MUST author canonical names; gate with scripts/run_cross_profile_corpus.py. 14114 connections keep instance+datname cardinality with portable KEEP columns.

Stacks on #431 (feat/grafana-field-profile-portability), which stacks on #430.

Test plan

  • pytest tests/test_field_profile_portability.py tests/test_curated_packs.py -k "14114_numbackends or pg_mysql_node_pack_no_profile"
  • make lint
  • Live migrate + upload (prometheus_native): 741, 8171, 763, 12485
  • grafana-validate-uploaded: all four 0 errors / 0 empty / 0 overlaps
  • Kibana view-mode: 741 Deployment control rewrites series; 8171 node KPIs; 763 Redis instance; 12485 Database postgresrigdb rewrites per-db panels

Tracking: obs-integration-team #1200

@shmsr shmsr added source:grafana Grafana source migration asset:dashboards Dashboard migration assets program:curated-packs Curated Grafana community dashboard packs labels Sep 1, 2026
@shmsr
shmsr force-pushed the feat/grafana-portable-packs branch from d0a4ae6 to 5865a13 Compare September 2, 2026 08:25
@shmsr

shmsr commented Sep 2, 2026

Copy link
Copy Markdown
Member Author

Rebased onto the restacked #431 tip. 4 unique commits, MERGEABLE vs #431.

Convert 741, 8171, 315, 6417 to canonical authoring: label_rewrites are
source→canonical, native-spelled label_candidates removed, control overrides
and grouping columns use canonical/{{label:x}} placeholders, plugin literals
route through the resolver, and Heapster packs declare source_label_names for
passthrough. Native output stays byte-identical; zero profile leakage across
otel/prometheus_metrics/prometheus_remote_write/passthrough.
Convert 763, 11835, 14091, 18405, 18406 to canonical authoring so emitted
field names follow --field-profile with zero profile leakage; native output
stays byte-identical.
…profile portable

Convert 12485, 14114, 9628, 7362, 1860 to canonical authoring: label_rewrites
source→canonical, native-spelled label_candidates removed, grouping columns use
{{label:x}} placeholders, plugin literals route through the resolver. Native
output stays byte-identical; zero profile leakage across all non-native profiles.
Packs author canonical names; the resolver namespaces per --field-profile.
Document source_label_names, {{label:x}} grouping placeholders, the
cross-profile leakage gate, and the AGENTS/CLAUDE authoring rule. Mark
every fidelity manifest as profile-portable.
Hardcoded labels.device leaked under otel. Use {{label:device}} like
CPU Busy and accept either resolved column name in the unit test.
@shmsr
shmsr force-pushed the feat/grafana-portable-packs branch from 5865a13 to a5075dd Compare September 2, 2026 11:39
Portable 1860 ES|QL uses {{label:device}}, which is bare device under
the default profile this test seeds. Keep asserting the negative-Y
transmit transform.
@shmsr
shmsr merged commit ff73c01 into main Sep 2, 2026
14 checks passed
An error occurred while trying to automatically change base from feat/grafana-field-profile-portability to main September 2, 2026 11:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

asset:dashboards Dashboard migration assets program:curated-packs Curated Grafana community dashboard packs source:grafana Grafana source migration

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant