-
Feature
-
Resolution: Unresolved
-
Major
-
None
-
None
-
Product / Portfolio Work
-
None
-
50% To Do, 50% In Progress, 0% Done
-
False
-
-
False
-
None
-
None
-
None
-
None
-
-
None
-
None
-
None
-
None
Problem Statement
Today, OpenShift’s kubelet collects pod and container metrics (CPU, memory, network I/O, etc.) via cAdvisor.
However:
- Both kubelet (cAdvisor) and CRI-O gather similar runtime stats, creating duplication.
- High-cardinality metrics, especially container_network_* for host-networked pods, significantly inflate Prometheus storage and scrape costs.
- Maintaining and evolving metrics across two code paths (cAdvisor + CRI-O) is cumbersome and error-prone.
- Kubernetes upstream is deprecating cAdvisor in favor of KEP-2371 (CRI Stats), where the runtime becomes the single source of truth for metrics. https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/2371-cri-pod-container-stats
To remain upstream-aligned and reduce duplication, OpenShift needs to begin adopting the CRI Stats architecture.
Goal
Introduce a Technology Preview (TP) in OpenShift 4.21 that allows kubelet to consume pod and container stats directly from CRI-O via the CRI Stats API (PodStats, ContainerStats, NetworkStats).
The feature will:
- Shift metric collection responsibility to CRI-O.
- Simplify metric aggregation and reduce duplication.
- Provide an early opt-in path for testing performance, accuracy, and backward compatibility.
- Lay groundwork for high-cardinality reduction in OpenShift 4.22 when this becomes the default.
- blocks
-
OCPSTRAT-2346 Reduce High Cardinality in container_network_* Metrics for Host-Networked Pods After Switching to OVN : TP 4.22
-
- New
-