Skip to content

Goodluckhf/pm2ServiceDiscovery

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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