Как мне проконсультироваться с этими запросами в prometheus?

#performance #kubernetes #devops #prometheus #grafana

Вопрос:

Я пытаюсь настроить некоторые графики с помощью prometheus с помощью grafana в домашней лаборатории, используя один узел kubernetes, развернутый с помощью миникуба. У меня также есть несколько стресс — тестов для использования в кластере. Я хочу измерить результаты стресс-теста с помощью prometheus, поэтому мне нужна помощь со следующими запросами:

  • Использование процессора узла/кластера и от и отдельного модуля по заданному имени за определенный промежуток времени (т. е. 5 минут).
  • Использование памяти узла/кластера и от и отдельного модуля по заданному имени за определенный промежуток времени (т. е. 5 минут).
  • Использование диска или файловой системы узла/кластера и из отдельного модуля по заданному имени в течение определенного периода времени (т. е. 5 минут).
  • Задержка от отдельного модуля по заданному имени за определенный промежуток времени (т. е. 5 минут).

Если кто-нибудь может помочь с этим, или знать панель мониторинга grafana для этого (я уже пробовал 737 и 6417), или дать подсказку о том, с какими показателями мне нужно проконсультироваться (я пробовал rate(container_cpu_usage_seconds_total[5m]) , и это дает мне какой-то результат для запроса использования процессора для всего узла).

Ответ №1:

Вы можете использовать метки Prometheus для получения показателей для определенного модуля:

Процессор (вам не нужно указывать все метки, вы можете выбрать только одну, если она уникальна:

 sum(rate(container_cpu_usage_seconds_total{pod=~"<your_pod_name>", container=~"<your_container_name>", kubernetes_io_hostname=~"<your_node_name>"}[5m])) by (pod,kubernetes_io_hostname)
 

Память:

 sum(container_memory_working_set_bytes{pod=~"<your_pod_name>", container=~"<your_container_name>", kubernetes_io_hostname=~"<your_node_name>"}) by (pod,kubernetes_io_hostname)
 

Диск:

 kubelet_volume_stats_used_bytes{kubernetes_io_hostname=~"<your_node_name>$", persistentvolumeclaim=~".*<your_pod_name>"}
 

Задержка:

Вы можете собрать его в своем приложении (веб-сервере)? через клиент Prometheus (уровень приложения)