Как получить метрики групп недолговечных заданий Kubernetes

У меня есть случай, когда кратковременные (от секунд до 1-2 минут) задания k8s будут создаваться по запросу пользователя. Я пытаюсь получить показатели времени выполнения задания (например, использование процессора и памяти).

Методы, о которых я думал (и пробовал), включают:

  1. Запрос Prometheus, как и container_cpu_usage_seconds_total, но scape на основе pull означает, что многие краткосрочные задания не будут включены
  2. Pushgateway, но, как предлагает prometheus, ...valid вариант использования Pushgateway — сбор результатов пакетного задания на уровне обслуживания, поэтому я сомневаюсь, что это не подходящий случай.
  3. Metric-server, но metric-server возвращает 404 только для недолговечных пакетов заданий, что приводит к худшим результатам, чем Prometheus.
  4. Запросите /api/v1/nodes/{nodeName}/proxy/metrics/cadvisor напрямую. Хотя почти в реальном времени он возвращает все контейнеры, поэтому мне приходится вручную анализировать результаты и находить то, что мне нужно.

Я думаю об использовании легкого контейнера монитора рядом с контейнером работника для получения показателей работника. Но я не знаю, хорошая ли это идея, и даже если да, то как получить метрики воркера.

Итак, мой вопрос:

Какой метод вы рекомендуете для получения большого количества краткосрочных заданий использования процессора и памяти?


person leowang    schedule 19.07.2019    source источник
comment
Прежде чем вы приступите к чему-либо, я предлагаю вам подумать, почему это важно отслеживать. Не поймите меня неправильно, я не говорю, что за этим не стоит следить, я просто прошу вас действительно задуматься, почему это так. Возможно, вам стоит потратить время на другие вещи, а не на попытки отслеживать краткосрочные задания и их влияние на ЦП и память — если только это не влияет на ваш сервис. Таким образом, может быть достаточно следить за тем, сколько заданий увольняется, а не за их общим влиянием (если только состояние службы не рухнет).   -  person Todai    schedule 19.07.2019


Ответы (1)


Как вы писали, вы использовали prometheus, pushgateways, metrics-server ns query /api/v1/nodes/{nodeName}/proxy/metrics/cadvisor, если они не удовлетворяют вас достаточно новый подход, который я рекомендую для мониторинга и сохранения метрик кластера производительность - лакмус.

Prometheus — наиболее распространенный и сложный инструмент, который может использоваться большинством инженеров, но Litmus — это своего рода новый инструмент, ориентированный на тестирование рабочей нагрузки, метрики сохраняются, и вы можете хранить их столько, сколько хотите.

Дополнительную информацию вы можете найти здесь: litmus.

Полезная статья: litmus-openebs, это описать, чтобы не получать метрики не только такие, как использование памяти.

Затем вы можете создавать диаграммы в egg. гнуплот.

person Malgorzata    schedule 22.07.2019