pm2-service-discovery-prom

1.0.7 • Public • Published

Pm2 Service Discovery

Travis Coveralls github branch node npm

GitHub top language GitHub code size in bytes David David

license GitHub last commit semantic-release

NPM Greenkeeper badge

This pm2 module will help you to expose product's metrics from pm2 instances. It will automatically listen to all your commands like:

$ pm2 scale <pm2_id|name> <number>
$ pm2 stop <pm2_id|name>
$ pm2 start <pm2_id|name>

And will generate target's list for each instance host:port and then expose to your prometheus.

Install

Install via npm

$ pm2 install pm2-service-discovery-prom

Set your configs

Set host and port for generate target. Later prometheus will take this host for scrapping

$ pm2 set pm2-service-discovery-prom:target_host <your host>
$ pm2 set pm2-service-discovery-prom:target_base_port <your port>

The result port value for each instance will be (base_port + pm2_id) For example if you set target_host = localhost and target_base_port = 9300 And if you have instances with pm2_id = 1 and pm2_id = 11 Prometheus will come for metrics to:

  • localhost:9301/metrics
  • localhost:9311/metrics

Set filter value for pm2 app names. This module will give only apps which has status online and name starts with this config value

$ pm2 set pm2-service-discovery-prom:app_name_filter <instance name with metrics>

Set port for service discovery

$ pm2 set pm2-service-discovery-prom:pm2_service_discovery_port <port>

Then all you need is add several lines to prometheus.yml config and restart prometheus:

- job_name: "publishing"
    scrape_interval: "5s"
    consul_sd_configs:
      - server: '<pm2 service discovery host>:<pm2_service_discovery_port>'
      - services: ['pm2_service_discovery'] # it should be the same as config value service_name

Readme

Keywords

none

Package Sidebar

Install

npm i pm2-service-discovery-prom

Weekly Downloads

7

Version

1.0.7

License

MIT

Unpacked Size

32.7 kB

Total Files

13

Last publish

Collaborators

  • goodluck_hf