PM2 cluster prometheus exporter

Понадобилось выгружать определенные метрики по событиям из приложения, на Nodejs. Например, инкрементировать метрику в случае успешного ответа и т.п.

Из подручных средств был забикс и графана.

Оказалось что для nodejs есть модуль prom-client который умеет экспортировать метрики, но вот незадача — с pm2 как и другие модули он работать не умеет.

Проблема в том, что метрика собранная в одном процессе, не может нормально получена в другом процессе, который отвечает за http предоставление метрики zabix агенту.

Исправляем упущение: pm2-prom-client

Модуль в принципе для prometheus, но нам он тоже подошел

Вся его суть сводится к передачи по шине pm2 метрик в агентский процесс с последующим экспортом в plain-text либо json