Поделиться через


Удаление метрик Prometheus в масштабе в Azure Monitor

В этой статье приводятся рекомендации по производительности, которые можно ожидать, если метрики сбора в большом масштабе для управляемой службы Azure Monitor для Prometheus.

ЦП и память

Использование ЦП и памяти коррелирует с количеством байтов каждого примера и числом выборок. Эти тесты основаны на целевых объектах по умолчанию, объеме пользовательских метрик, скребированных и количестве узлов, модулей pod и контейнеров. Эти числа предназначены в качестве ссылки, так как использование по-прежнему может значительно отличаться в зависимости от количества временных рядов и байтов на метрики.

Максимальное ограничение тома на модуль pod в настоящее время составляет около 3–3,5 миллиона выборок в минуту в зависимости от количества байтов на выборку. Это ограничение решается при добавлении сегментирования в будущем.

Агент состоит из развертывания с одной репликой и DaemonSet для очистки метрик. DaemonSet отменяет все целевые объекты уровня узла, такие как cAdvisor, kubelet и экспортер узлов. Вы также можете настроить его для удаления любых пользовательских целевых объектов на уровне узла со статическими конфигурациями. Набор реплик удаляет все остальное, например метрики kube-state-metrics или пользовательские задания слома, которые используют обнаружение служб.

Сравнение между небольшим и большим кластером для реплики

Скребки целевых объектов Примеры, отправленные / минуты Node Count Число модулей Pod Использование ЦП Prometheus-Collector (ядра) Использование памяти Prometheus-Сборщик (байт)
целевые объекты по умолчанию 11,344 3 40 12.9 mc 148 Mi
целевые объекты по умолчанию 260,000 340 13 000 1.10 c 1,70 ГБ
целевые объекты по умолчанию
+ пользовательские целевые объекты
3,56 млн 340 13 000 5.13 c 9,52 ГБ

Сравнение между небольшим и большим кластером для DaemonSets

Скребки целевых объектов Примеры, отправленные или минутные итоги Примеры, отправленные / минуты / pod Node Count Число модулей Pod Общее количество ресурсов ЦП prometheus-Collector (ядер) Общий объем использования памяти Prometheus-Сборщик (байт) Использование ЦП Prometheus-Сборщик / Pod (ядра) Использование памяти Prometheus-Collector / Pod (байты)
целевые объекты по умолчанию 9,858 3,327 3 40 41,9 mc 581 Mi 14,7 mc 189 Mi
целевые объекты по умолчанию 2,3 миллиона 14 400 340 13 000 805 mc 305,34 ГБ 2.36 mc 898 Mi

Для получения дополнительных пользовательских метрик один модуль pod ведет себя так же, как и модуль pod реплики в зависимости от объема пользовательских метрик.

Планирование реплики pod ama-metrics в пуле узлов с дополнительными ресурсами

Для каждого модуля pod требуется большой объем метрик с достаточным объемом ЦП и памяти. Если модуль pod ama-metrics реплики не запланирован на пуле узлов или узлов с достаточным количеством ресурсов, он может получить OOMKilled и перейти в CrashLoopBackoff. Чтобы устранить эту проблему, можно добавить метку azuremonitor/metrics.replica.preferred=true в пул узлов или узлов в кластере с более высокими ресурсами (в пуле системных узлов). Это гарантирует, что модуль pod реплики будет запланирован на этом узле. Вы также можете создать дополнительные системные пулы с большими узлами и добавить ту же метку. Лучше пометить пулы узлов, а не отдельные узлы, чтобы новые узлы в пуле также можно использовать для планирования.

kubectl label nodes <node-name> azuremonitor/metrics.replica.preferred="true"

Следующие шаги