feat(grafana): make curated packs field-profile portable - #432
Merged
shmsr merged 6 commits intoSep 2, 2026
Merged
Conversation
shmsr
force-pushed
the
feat/grafana-portable-packs
branch
from
September 2, 2026 08:25
d0a4ae6 to
5865a13
Compare
5 tasks
Member
Author
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
force-pushed
the
feat/grafana-portable-packs
branch
from
September 2, 2026 11:39
5865a13 to
a5075dd
Compare
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.
An error occurred while trying to automatically change base from
feat/grafana-field-profile-portability
to
main
September 2, 2026 11:56
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
label_rewritesremoved, remaining rewrites are source→canonical, ES|QL uses{{label:x}}/{{metric:...}}, controls and plugins go through the resolver, Heapster packs setsource_label_namesfor passthrough.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 lintprometheus_native): 741, 8171, 763, 12485grafana-validate-uploaded: all four 0 errors / 0 empty / 0 overlapspostgres→rigdbrewrites per-db panelsTracking: obs-integration-team #1200