Как использовать данные 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".
Короткая версия состоит в том, чтобы вычесть первое значение из последнего значения и разделить на время, когда они закончились. Вероятно, проще всего использовать Прометей, а не делать это самостоятельно.