It is responsible for:
Listen to all the nodejs processes.
Send SIGHUP to the process, which didn't have any throughput of events within 30 seconds.
Send SIGKILL to the process, which didn't die after getting SIGHUP withing 30 seconds.
Send SIGKILL to the process, which stopped sending status updates for 60 seconds.
Write following metrics for respective events described above.
Note: process-watcher depends on monitr to provide status of worker process. For every worker, monitr needs to be started. For more details on monitr, please refer - https://github.com/yahoo/monitr/blob/master/README.md and for code example refer to https://github.com/yahoo/monitr/blob/master/examples/monitor_me.js.
With npm do:
npm install process-watcher
var watcher = require('process-watcher');
var watcher_instance = new watcher.Watcher({ metric : watcher_metric, config : watcher_config });
var watcher = require('process-watcher');
/*
* Dummy metric monitoring object.
*/
var watcher_metric = {
/**
* Increments metric
*/
increment : function (name, v) {
// Add implementation as necessary
},
/**
* Set the metric or multiple metrics at the same time.
* */
set : function (names, v) {
// Add implementation as necessary
}
};
var dgpath = '/tmp/watcher_test_dgram',
statusPath = '/tmp/watcher_status_path_test',
watcher_config = { max_inactive : 0.001, monitor : 0.001, monPath: dgpath,
timeout : 30, timeout_start : 60 };
//Instantiate watcher
var watcher_instance = new watcher.Watcher({ metric : watcher_metric, config : watcher_config });