Понадобилось снимать из Node.js-приложения метрики по событиям. Например, инкрементить метрику при успешном ответе и всё в таком духе.
В моём распоряжении были Zabbix и Grafana.
Оказалось, что для Node.js есть модуль prom-client, который умеет экспортировать метрики, но вот беда - как и другие модули, с pm2 он не работает.
Проблема в том, что метрику, собранную в одном процессе, нельзя корректно получить в другом процессе, который отвечает за отдачу метрики zabix-агенту по http.
Исправляем упущение: pm2-prom-client
Модуль вообще-то для Prometheus, но и нам подходит.
Суть сводится к тому, что метрики передаются по шине pm2 в процесс агента и дальше экспортируются в plain-text или JSON.



