Как использовать данные cadvisor для расчета загрузки процессора и загрузки в Prometheus

Когда я использую cadvisor для получения информации о процессоре в контейнере Docker, я получаю следующую информацию:

Мой вопрос заключается в том, как рассчитать загрузку процессора и нагрузку, которая аналогична Prometheus, через информацию, возвращаемую cadvisor? Как Prometheus рассчитывает загрузку процессора?

2 ответа

Приведенный ниже запрос должен вернуть ваши топ-10 контейнеров, которые занимают больше всего процессорного времени:

topk(10, sum(irate(container_cpu_usage_seconds_total{container_label_com_docker_swarm_node_id=~".+", id=~"/docker/.*"}[$interval])) by (name)) * 100 

Алгоритм, который использует Прометей для rate() немного сложнее из-за обработки таких вопросов, как выравнивание и сброс счетчика, как описано в разделе "Подсчет с помощью Prometheus".

Короткая версия состоит в том, чтобы вычесть первое значение из последнего значения и разделить на время, когда они закончились. Вероятно, проще всего использовать Прометей, а не делать это самостоятельно.

Другие вопросы по тегам