I just want to represent the CPU metrics of a POD as below
I am able to represent the CPU requests and limits in terms of CPU cores which are directly available through prometheus scrape metrics.
But in prometheus I don't see any direct metric to get the CPU cores used by a POD so, Can someone give me a work around or a way to represent the CPU usage of a POD in the terms of CPU cores.
Thanks in advance
The query you are looking for is this one:
sum(rate(container_cpu_usage_seconds_total{container_name!="POD"}[1m])) by (pod_name)
Here the explanation (from within to out, as Prometheus calculates this query):
container_cpu_usage_seconds_total
which gives you how long the CPU has been occupied. 1s = a single Core for a whole second{container_name!="POD"}
ignores the meta cGroups.rate(....[1m])
gives you the value changes in the defined interval, here 1 minutesum(....) by (pod_name)
add up all values which contain the same pod names, which will be the case if we have multiple containers in the same podFor further information about Prometheus in Kubernetes you can read this blog here: https://blog.freshtracks.io/a-deep-dive-into-kubernetes-metrics-part-3-container-resource-metrics-361c5ee46e66