Generate process information for statsd, given pid files. Uses and requires sysstat to be installed. Written in node.js.
Usage: node pid-stats <pidfiles>... [options] pidfiles Options: -host, --host Statsd host [localhost] -p, --port Statsd port  -t, --period Statsd period  -P, --prefix Statsd prefix [process.] -S, --suffix Statsd suffix 
pid-stats will sample the target processes for the configured period (5s by default), write the values to statsd and exit. It obtain information over time, setup a cron.
$ sudo apt-get install sysstat psmisc $ sudo npm install -g pid-stats $ pid-stats /var/run/service.pid
pid-stats will generate statsd gauge metrics for a given set of pid files.
The generated stats are of the form
prefixconfigured using the
--prefixparameter. Defaults to "
serviceis the name of the service and is derived from the pidfile. If the pidfile is
/var/run/web-service.pid, then the service name will be "
suffixconfigured using the
--suffixparameter. Defaults to blank.
The metrics generated are:
cpu.user: Percentage of CPU used by the task while executing at the user level (application), with or without nice priority. Note that this field does NOT include time spent running a virtual processor.
cpu.system: Percentage of CPU used by the task while executing at the system level (kernel).
cpu.guest: Percentage of CPU spent by the task in virtual machine (running a virtual processor).
cpu.percent: Total percentage of CPU time used by the task.
mem.faults.minor: Total number of minor faults the task has made per second, those which have not required loading a memory page from disk.
mem.faults.major: Total number of major faults the task has made per second, those which have required loading a memory page from disk.
mem.virtual: Virtual Size: The virtual memory usage of entire task in kilobytes.
mem.resident: Resident Set Size: The non-swapped physical memory used by the task in kilobytes.
mem.percent: The tasks's currently used share of available physical memory.
io.read: Number of kilobytes the task has caused to be read from disk per second.
io.write: Number of kilobytes the task has caused, or shall cause to be written to disk per second.
io.cancelled: Number of kilobytes whose writing to disk has been cancelled by the task. This may occur when the task truncates some dirty pagecache. In this case, some IO which another task has been accounted for will not be happening.
(Definitions from node-monitor-pid, on which pid-stats depends.)