Подсчет использования процессора / памяти в кластере K8S с помощью Prometheus - PullRequest
0 голосов
/ 25 февраля 2019

Я хочу подсчитать использование процессора / памяти кластера k8s (не использование модуля k8s) с помощью prometheus, чтобы я мог показать его в графане.

Я использую sum (container_memory_usage_bytes{id="/"}) для получения памяти, используемой кластером k8s, и topk(1, sum(kube_node_status_capacity_memory_bytes) by (instance)), чтобы получить всю память кластера k8s, но они не могут делиться, так как topk функция не возвращает значение, а vector.

Как я могу это сделать?

Ответы [ 2 ]

0 голосов
/ 26 февраля 2019

Мое основное замечание в том, что topk(1, sum(kube_node_status_capacity_memory_bytes) by (instance)) не может вернуть значение, но теперь я обнаружил, что использование sum() для его преобразования может работать, весь запрос выглядит следующим образом:

sum(sum (container_memory_usage_bytes{id="/"})by (instance))/sum(topk(1, sum(kube_node_status_capacity_memory_bytes) by (instance)))*100
0 голосов
/ 25 февраля 2019

Я установил Prometheus в Google Cloud через приложения по умолчанию для gcloud.Панели мониторинга автоматически развертываются вместе с установкой.Следующие запросы используются для использования памяти и ЦП кластера:

Загрузка ЦП по пространству имен:

sum(irate(container_cpu_usage_seconds_total[1m])) by (namespace)

Использование памяти (без кэша) по пространству имен:

sum(container_memory_rss) by (namespace)

Обязательство запроса ЦП:

sum(kube_pod_container_resource_requests_cpu_cores) / sum(node:node_num_cpu:sum)

Обязательство запроса памяти:

sum(kube_pod_container_resource_requests_memory_bytes) / sum(node_memory_MemTotal)
...