Как рассчитать использование процессора в метриках состояния кубе? - PullRequest
0 голосов
/ 16 июня 2019

Я наблюдаю за кластером eks, используя и API-интерфейсы Kubernetes, и показатели состояния Kube, дистанционно, используя Prometheus.в API Kubernetes у нас есть метрика container_cpu_usage_seconds_total, которая показывает использование процессором модуля.Есть ли аналогичные метрики в kube-state-metrics, которые могут дать использование ЦП.На самом деле я пытаюсь получить использование процессора кластера, которое полностью отличается от kubernetes api и kube-state-метрики, следующие расчеты.

kube-state-metrics:

sum(kube_pod_container_resource_requests_cpu_cores) / sum(kube_node_status_allocatable_cpu_cores) * 100 - Это дает 101%

, тогда как метрика состояния куба дает 12%, что выглядит точно для меня.

kubernetes-api:

sum (rate (container_cpu_usage_seconds_total{id="/",kubernetes_io_hostname=~"^$Node$", job=~"$job$"}[5m])) / sum (machine_cpu_cores{kubernetes_io_hostname=~"^$Node$", job=~"$job$"}) * 100

Я не думаю, что есть какая-либо метрика в kube-state-метрике, которая дает использование процессора по сравнению с kubernetes-api

Заранее спасибо.

1 Ответ

1 голос
/ 24 июня 2019

Нет (одного) конкретного показателя использования процессора на контейнер в kube_state_metric.

Значение, которое вы получили: sum(kube_pod_container_resource_requests_cpu_cores) / sum(kube_node_status_allocatable_cpu_cores) * 100 = 101 может быть неправильным, поскольку такие метрики, как kube_node_status_allocatable_cpu_cores и kube_pod_container_resource_requests_cpu_cores помечены как УСТАРЕЛИ .

В то же время обратите внимание, что есть метрика, подобная kube_pod_container_resource_limits_cpu_cores . В вашем контейнере может быть установлен лимит ресурсов, поэтому ваш результат может превышать 100% . Если вы установили лимит для каждого контейнера, проверьте, не превышает ли лимит ресурса этот запрос ресурсов, и тогда ваш расчет должен выглядеть следующим образом: [sum(kube_pod_container_resource_requests_cpu_cores) - sum(kube_pod_container_resource_limits_cpu_cores)]/ sum(kube_node_status_allocatable_cpu_cores) * 100.

Просмотрите все метрики ресурсов в kube_state_metrics для контейнера и узлов: node_metrics , pod_container_metrics .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...