Skip to content

feat(grafana): add Kubernetes 741 and 8171 curated packs - #430

Merged
shmsr merged 2 commits into
mainfrom
feat/grafana-741-8171-kubernetes-packs
Sep 2, 2026
Merged

feat(grafana): add Kubernetes 741 and 8171 curated packs#430
shmsr merged 2 commits into
mainfrom
feat/grafana-741-8171-kubernetes-packs

Conversation

@shmsr

@shmsr shmsr commented Sep 1, 2026

Copy link
Copy Markdown
Member

Summary

  • Curated pack for Grafana 741 (Kubernetes Deployment metrics): Heapster pod_name / io_kubernetes_*labels.pod/labels.container, $Node via labels.instance (Grafana's hostname query is dead), $Deployment prefix bind with STARTS_WITH(labels.pod, ?Deployment), panel_id for same-section Used/Total tiles, k8s-only Containers CPU, Received/Sent network legends.
  • Curated pack for Grafana 8171 (Kubernetes Nodes): rename Idle CPU → CPU Busy (source PromQL is already busy %), map empty node_nfsd_disk_bytes_* to real node_disk_read/written_bytes_total with Read/Written/IO time legends.
  • Engine: optional panel_id on pack query/layout overrides so duplicate titles in one section get independent ES|QL and chrome names; hide_title: false clears the inner Lens label against the source title before a chrome rename (otherwise Used → Memory used leaves Lens looking for a Used column / N/A).
  • Shared k8s_exporter now emits kube_deployment_status_replicas_available so 741 replica KPIs render on the curated rig.

Now targets main (#389 / 6417 is merged). Stacked under: #431#432.

Test plan

  • pytest tests/test_curated_packs.py (full file green)
  • make lint
  • Live migrate + upload 741 (metrics-k8s.prometheus-default) and 8171 (metrics-node.prometheus-default), prometheus_native
  • grafana-validate-uploaded: 741 16/16 pass, 8171 8/8 pass, 0 empty, 0 overlaps, 0 runtime errors
  • Kibana view-mode: 741 Deployment/Node populate; KPI strip hole-free with Memory/CPU/Replicas used/total values; graphs legend by pod (api-0) and Received/Sent; 8171 CPU Busy per-cpu, Disk I/O Read/Written, Memory stacked + 62% gauge, $server populated

Fixes #398
Fixes #399

@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-741-8171-kubernetes-packs branch from 199298c to ce26cb1 Compare September 1, 2026 18:43
@shmsr

shmsr commented Sep 1, 2026

Copy link
Copy Markdown
Member Author

Rebased onto current #389 (feat/grafana-6417-kubernetes-ksm). Conflicts were in rules.py / layout-merge tests / pack docs: kept #386's stripped (title, section) merge key and folded in this PR's panel_id dimension. Mergeable vs the stacked base now.

Grafana 741 is Heapster-era cAdvisor+KSM so a modern scrape needs a
label bridge, a Deployment prefix bind, and a live Node control; 8171's
Idle CPU title is busy % and Disk I/O queries empty nfsd counters.
Pin those dashboard-specific overrides (and panel_id for 741's duplicate
Used/Total tiles) so Kibana matches Grafana and is better on Node populate,
CPU Busy, and real disk I/O.
@shmsr
shmsr force-pushed the feat/grafana-741-8171-kubernetes-packs branch from ce26cb1 to 096d695 Compare September 2, 2026 08:23
@shmsr
shmsr changed the base branch from feat/grafana-6417-kubernetes-ksm to main September 2, 2026 08:25
@shmsr

shmsr commented Sep 2, 2026

Copy link
Copy Markdown
Member Author

Restacked after #386/#388/#389 landed on main.

The huge conflict list was GitHub comparing this branch to the rewritten feat/grafana-6417-kubernetes-ksm history (12 stacked commits). Unique work is one commit on current main: 096d6951.

Native PROMQL GROK _timeseries + KEEP step returns rows at _query, but
Lens XY stays empty. Pin the same time_bucket + labels.device shape as
CPU Busy and keep $server bound.
@shmsr
shmsr merged commit c84dec8 into main Sep 2, 2026
14 checks passed
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.

[pack] Grafana 741 Kubernetes Deployment metrics [pack] Grafana 8171 Kubernetes Nodes

1 participant