Node metrics data
The kubelet gathers metric statistics at the node, volume, pod and container level, and emits this information in the Summary API.
You can send a proxied request to the stats summary API via the Kubernetes API server.
Here is an example of a Summary API request for a node named minikube
:
kubectl get --raw "/api/v1/nodes/minikube/proxy/stats/summary"
Here is the same API call using curl
:
# You need to run "kubectl proxy" first
# Change 8080 to the port that "kubectl proxy" assigns
curl http://localhost:8080/api/v1/nodes/minikube/proxy/stats/summary
Note:
Beginning withmetrics-server
0.6.x, metrics-server
queries the /metrics/resource
kubelet endpoint, and not /stats/summary
.Summary metrics API source
By default, Kubernetes fetches node summary metrics data using an embedded
cAdvisor that runs within the kubelet. If you
enable the PodAndContainerStatsFromCRI
feature gate
in your cluster, and you use a container runtime that supports statistics access via
Container Runtime Interface (CRI), then
the kubelet fetches Pod- and container-level metric data using CRI, and not via cAdvisor.
Pressure Stall Information (PSI)
Kubernetes v1.34 [beta]
As a beta feature, Kubernetes lets you configure kubelet to collect Linux kernel
Pressure Stall Information
(PSI) for CPU, memory, and I/O usage. The information is collected at node, pod and container level.
See Summary API for detailed schema.
This feature is enabled by default, by setting the KubeletPSI
feature gate. The information is also exposed in
Prometheus metrics.
You can learn how to interpret the PSI metrics in Understand PSI Metrics.
Requirements
Pressure Stall Information requires:
What's next
The task pages for Troubleshooting Clusters discuss how to use a metrics pipeline that rely on these data.