feat(grafana): add Kubernetes cAdvisor 315 curated pack - #388
Merged
Conversation
This was referenced Sep 1, 2026
Member
Author
|
Tracking: closes #392 under https://github.com/elastic/obs-integration-team/issues/1200. Please add |
shmsr
force-pushed
the
feat/grafana-315-kubernetes-cadvisor
branch
2 times, most recently
from
September 1, 2026 18:43
cbb31fa to
e38b92b
Compare
Base automatically changed from
feat/grafana-12485-postgresql-exporter-pack
to
main
September 1, 2026 22:44
Curated pack for grafana.com dashboard 315 ("Kubernetes cluster
monitoring (via Prometheus)"), a cAdvisor-only cluster dashboard authored
against a pre-1.16 cAdvisor lineage.
The pack bridges the legacy conventions so the operational per-pod /
per-container panels render on a modern Elastic cAdvisor scrape:
- label_rewrites map pod_name/container_name -> labels.pod/labels.container
- ignored_labels strip dead selector matchers (kubernetes_io_hostname,
image, name) that would otherwise filter every panel to empty
- metric_kinds classify the cAdvisor counters/gauges
- explicit query_overrides for the Pods CPU/memory panels keep the ES|QL
output column and the Lens breakdown aligned on labels.pod (the native
PROMQL DSL otherwise leaves the breakdown accessor on the pre-rewrite
pod_name and fails with "invalid column")
Obsolete container runtimes are documented as honest gaps, never faked
into a single misleading aggregate: docker/rkt series are dropped from the
multi-runtime container panels (disclosed as approximations) and the
systemd system-service panels degrade to an honest empty via an
impossible-filter override instead of erroring on systemd_service_name.
Adds a synthetic k8s_exporter to the parity-rig curated stack (cAdvisor +
KSM + node_exporter series) so 315 can be validated end-to-end. Live
render audit: 19 rendered / 0 error / 2 honest empty gaps. Fidelity
manifest, design doc, docs/sources/grafana.md, and offline fixture tests
included; registry provenance pinned (rev 3) and verified.
…up id Native butterfly fusion labeled transmit as Value B, and All-processes legends collapsed to (null) without a per-container cgroup id. Explicit ES|QL overrides plus producer id labels keep the Kibana legends aligned with Grafana.
giorgi-imerlishvili-elastic
force-pushed
the
feat/grafana-315-kubernetes-cadvisor
branch
from
September 1, 2026 22:44
e38b92b to
23f80a1
Compare
5 tasks
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
pod_name/container_name→labels.pod/labels.container, dead matcher strip, k8s-only container panels, honest systemd empty.labels.pod, Pods/All-processes network legends are Received/Sent (notValue B), and All-processes groups by cgroupid.container_*+machine_*+ per-container cgroupidfor live validation.Stacks on #386 (
feat/grafana-12485-postgresql-exporter-pack). Follow-up pack is Grafana 6417 (kube-state-metrics) on top of this branch.Test plan
pytest tests/test_curated_packs.py -k 315make lintmetrics-k8s.prometheus-default(prometheus_native); confirm Pods network Received/Sent, All-processes cgroup legends, systemd panels empty (not error)Fixes #392