CPU & Memoria per Pod/Container
Filtro standard namespace applicativi da applicare ovunque:
namespace!~"kube-.*|openshift-.*"CPU usage per pod (somma di tutti i container)
Section titled “CPU usage per pod (somma di tutti i container)”sum by (namespace, pod) ( rate(container_cpu_usage_seconds_total{ namespace!~"kube-.*|openshift-.*", container!="", container!="POD" }[5m]))CPU usage per pod, breakdown per container
Section titled “CPU usage per pod, breakdown per container”sum by (namespace, pod, container) ( rate(container_cpu_usage_seconds_total{ namespace!~"kube-.*|openshift-.*", container!="", container!="POD" }[5m]))CPU usage vs limit (rischio throttling)
Section titled “CPU usage vs limit (rischio throttling)”sum by (namespace, pod) ( rate(container_cpu_usage_seconds_total{namespace!~"kube-.*|openshift-.*"}[5m]))/sum by (namespace, pod) ( container_spec_cpu_quota{namespace!~"kube-.*|openshift-.*"} / container_spec_cpu_period{namespace!~"kube-.*|openshift-.*"})CPU throttling (evento certo, non stimato)
Section titled “CPU throttling (evento certo, non stimato)”rate(container_cpu_cfs_throttled_seconds_total{ namespace!~"kube-.*|openshift-.*"}[5m])% periodi throttled sul totale periodi CFS
Section titled “% periodi throttled sul totale periodi CFS”sum by (namespace, pod, container) ( increase(container_cpu_cfs_throttled_periods_total{container!=""}[5m]))/sum by (namespace, pod, container) ( increase(container_cpu_cfs_periods_total{container!=""}[5m]))Memoria
Section titled “Memoria”Memory usage per pod (working set, somma container)
Section titled “Memory usage per pod (working set, somma container)”sum by (namespace, pod) ( container_memory_working_set_bytes{ namespace!~"kube-.*|openshift-.*", container!="", container!="POD" })Memory usage per container
Section titled “Memory usage per container”container_memory_working_set_bytes{ namespace!~"kube-.*|openshift-.*", container!="", container!="POD"}Memory RSS (uso reale del processo, non cache)
Section titled “Memory RSS (uso reale del processo, non cache)”container_memory_rss{ namespace!~"kube-.*|openshift-.*", container!="", container!="POD"}Memory usage vs limit (rischio OOM)
Section titled “Memory usage vs limit (rischio OOM)”container_memory_working_set_bytes{namespace!~"kube-.*|openshift-.*"}/container_spec_memory_limit_bytes{namespace!~"kube-.*|openshift-.*"}Memory limit non impostato (limit=0, rischio noisy neighbour)
Section titled “Memory limit non impostato (limit=0, rischio noisy neighbour)”container_spec_memory_limit_bytes{ namespace!~"kube-.*|openshift-.*", container!=""} == 0Confronto requests/limits vs consumo reale
Section titled “Confronto requests/limits vs consumo reale”# CPU: uso reale / requests dichiaratesum by (namespace, pod, container) ( rate(container_cpu_usage_seconds_total{container!="", container!="POD"}[5m]))/ on(namespace, pod, container) group_leftsum by (namespace, pod, container) ( kube_pod_container_resource_requests{resource="cpu"})
# Memoria: uso reale / requests dichiaratesum by (namespace, pod, container) ( container_memory_working_set_bytes{container!="", container!="POD"})/ on(namespace, pod, container) group_leftsum by (namespace, pod, container) ( kube_pod_container_resource_requests{resource="memory"})Utile per capire pod oversized (requests molto più alte del consumo reale → spreco quota nodo) o sottodimensionati (rischio throttling/OOM).