Skip to content

Prometheus Cheatsheet

Query PromQL per Kubernetes / OpenShift — organizzate per oggetto (Pod, Deploy, Node, Job, Network, Storage, Istio, JVM), pronte per troubleshooting WR, capacity planning e alerting.
namespace!~"kube-.*|openshift-.*"

CPU → Memoria → Restart → Rete → Storage → Job Correlare spike + eventi per identificare la root cause.

Pod / Container

CPU/mem per pod e container, breakdown multi-container (app + sidecar Istio), restart/OOM.

Deploy / Workload

Deployment, ReplicaSet, StatefulSet, DaemonSet, HPA, rollout e availability.

Node

CPU/RAM/capacity per nodo worker, runbook Node NotReady, pressure e disco, etcd & Control Plane (fonte: runbook ufficiali OpenShift).

Job / CronJob

Job completati/falliti, CronJob sospesi o in ritardo, pod short-lived.

Network

Traffico pod/interfacce (Multus-aware), DNS/CoreDNS, API server, OVN-Kubernetes internals, Router/Ingress HAProxy.

Storage

Filesystem container, PVC capacity/usage, stato PersistentVolume.

Namespace & Cluster Capacity

Consumi per namespace e capacity aggregata sui nodi worker.

Istio / Service Mesh

Overhead del sidecar Envoy in core/GiB per namespace, traffico, mTLS, control plane.

JVM / Java

Pause GC e suspension %, heap vs limit del container, leak o undersizing, metriche Micrometer/jmx_exporter.

Alert Rules

Regole di alerting pronte all’uso, per oggetto.

Metriche cAdvisor — attenzione alle label

Section titled “Metriche cAdvisor — attenzione alle label”
Metrica Cosa misura
container_cpu_usage_seconds_total CPU cumulativa (counter) → serve rate()/irate()
container_memory_working_set_bytes memoria “attiva” → quella confrontata col limit per OOM
container_memory_rss memoria residente reale del processo
container_spec_cpu_quota / container_spec_cpu_period limit CPU effettivo (quota/period = core)
container_spec_memory_limit_bytes limit memoria del container
container_cpu_cfs_throttled_seconds_total tempo throttled dal CFS scheduler (evento certo, non stimato)

Filtri comuni da tenere sempre a mente:

  • container!="", container!="POD" → esclude il container pause e le serie senza container (livello pod)
  • in mesh Istio: container="istio-proxy" isola il sidecar Envoy, il resto è il/i container applicativi
  • per workload Java: cAdvisor non vede l’heap — le metriche container_* misurano il cgroup, non la JVM

Fonti: openshift-cheatsheet.pages.dev/prometheus-utils · github.com/helloiamgio/prometheus-cheatsheet · github.com/openshift/runbooks · Red Hat Docs — OpenShift Monitoring · Red Hat OpenShift Service Mesh — Performance & Scalability

Alcune soluzioni KCS di Red Hat (access.redhat.com/solutions/...) sono citate per titolo/numero dove pertinenti, ma il contenuto completo richiede una subscription attiva — non riproducibile qui.