Как получить процент использования процессора и памяти пода с помощью promethus

Я хочу отображать сведения о модуле в следующем формате с помощью promql / Prometheus.

Image1

Кроме того, я хочу отображать использование ЦП и памяти приложением / компонентом в формате ниже, используя promql

Image2

запрос promql: сумма (container_memory_working_set_bytes) по (pod)

Я могу получить потребляемую память модулем, используя вышеуказанный запрос.

Как рассчитать процент используемой памяти? Я не могу получить лимит памяти модуля с отслеживанием состояния с помощью promql. Не могли бы вы предложить какие-либо подробности запроса / API?


person Tejas    schedule 10.08.2020    source источник
comment
Какие запросы вы пробовали?   -  person Rico    schedule 11.08.2020
comment
сумма (kube_pod_container_resource_requests_cpu_cores) по (pod) sum (container_memory_working_set_bytes) по (pod)   -  person Tejas    schedule 11.08.2020
comment
Я могу получить использованную память модуля, используя вышеуказанный запрос. Как рассчитать процент используемой памяти? Я не могу получить лимит памяти модуля с помощью promql   -  person Tejas    schedule 11.08.2020


Ответы (2)


Для процента использования ЦП

max by (pod) (sum(rate(container_cpu_usage_seconds_total{namespace="$namespace",container_name!="POD",container_name!="",container!="monitoring-daemon"}[5m])) / sum(kube_pod_container_resource_limits{namespace="$namespace", resource="cpu"})) * 100

Для процента памяти

avg((avg (container_memory_working_set_bytes{pod="<Podname>"}) by (container_name , pod ))/ on (container_name , pod)(avg (container_spec_memory_limit_bytes>0 ) by (container_name, pod))*100)
person Tejas    schedule 09.09.2020

Я использую это для памяти:

round(max by (pod)(max_over_time(container_memory_usage_bytes{namespace="$namespace",pod=~".*" }[5m]))/ on (pod) (max by (pod) (kube_pod_container_resource_limits)) * 100,0.01)

А это для CPU:

max by (pod) (sum(rate(container_cpu_usage_seconds_total{namespace="$namespace",container_name!="POD",container_name!="",container!="monitoring-daemon"}[5m])) / sum(kube_pod_container_resource_limits{namespace="$namespace", resource="cpu"})) * 100
person Nicolas Roux    schedule 04.11.2020