Экспорт статистики кластера PM2 в Prometheus - PullRequest
0 голосов
/ 01 июля 2018

Я пытаюсь добавить мониторинг в кластер Node.js PM2, где я ищу агрегированные статистические данные в Прометее, которые я затем импортирую в Графану.

Мне удалось настроить Prom-Client и получить метрики для одного процесса для prometheus и grafana, но не для кластера pm2.

Я упоминал https://github.com/siimon/prom-client/issues/165 и https://github.com/siimon/prom-client/issues/80, и оба говорят, что это невозможно.

Есть ли другой способ сделать это? Я также упомянул https://github.com/redar9/pm2-cluster-prometheus, но не могу заставить его работать.

Я сослался https://github.com/Unitech/pm2/issues/2035, и я смог использовать его в своем сценарии и найти, кто является хозяином, а кто - рабом. Но не уверен, как я буду идти дальше.

Любая помощь приветствуется.

Ответы [ 2 ]

0 голосов
/ 23 июня 2019

Узелный кластер несовместим с «моделью извлечения» Prometheus, поэтому решение состоит в том, чтобы заставить узел передавать данные в «сборщик», из которого Prometheus извлекает данные. Например, statsd должно работать.

Идея в эскизе:

узел_экземпляра -> statsd_exporter <- <em>Прометей

0 голосов
/ 10 марта 2019

Я придумал это решение .

Он правильно собирает метрики для всех экземпляров кластера PM2.

Вместо cluster модуля нет прямого доступа к главному процессу в pm2. Чтобы вернуть метрики для всего кластера, вы можете выполнять вызовы IPC от активного экземпляра к остальным и ждать, пока все их локально собранные метрики будут отправлены. Наконец, вам нужно объединить все полученные показатели.

...