npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

pids-monitor

v1.4.4

Published

Monitors a pids and all its sons

Downloads

10

Readme

node-pids-monitor

forked from monitor-pid, updated dependency versions

Monitors a pid and all its sons.

Use case example: watch a Web server system activity being stressed by siege (benchmarking). Then use Libreoffice or Excel to analyze the CPU, MEM and DISK usage of the Web server.

Build Status

Installation

npm install pids-monitor

It also requires pidstat (>= 10.x) and pstree linux command to be installed on the system (apt-get install sysstat psmisc)

Usage as a command line

npm install -g pids-monitor
pids-monitor --pid 5253 --period 5000

It will monitor the pid 5253 each 5 secondes and output cpu, memory, disk and nb_pids statistics as a CSV string on stdout.

Output example:

date,time,parent_pid,nb_pids,monit_time,%usr,%system,%guest,%CPU,minflt/s,majflt/s,VSZ,RSS,%MEM,kB_rd/s,kB_wr/s,kB_ccwr/s
2013/11/09 13:05:52,0,1,167,1062,7.84,0.98,0.00,8.82,20.58,0.00,47132328.00,2683424.00,33.22,-105.00,44.02,-97.16
2013/11/09 13:05:57,5,1,167,1053,12.74,5.88,0.00,18.62,2561.77,0.00,47132140.00,2687784.00,33.28,-105.00,79.31,-101.08
2013/11/09 13:06:02,10,1,167,1052,29.70,10.89,0.00,40.59,4618.81,0.00,47141112.00,2688768.00,33.30,-105.00,-97.08,-97.08
2013/11/09 13:06:07,15,1,167,1046,11.88,4.95,0.00,16.83,2051.49,0.00,47199016.00,2682536.00,33.22,-105.00,-61.44,-101.04
2013/11/09 13:06:12,20,1,167,1045,5.94,0.99,0.00,6.93,19.80,0.00,47203476.00,2679040.00,33.17,-105.00,-105.00,-105.00

Usage as a nodejs module

var MonitorPid = require('pids-monitor');

// creates an instance of MonitorPid
// - pid to monitor is 5253
// - monitoring will occure each 5 secondes
var mp = new MonitorPid(5253, { period: 5000 });

// received each time the pid tree has been monitored
mp.on('monitored', function (pid, stats) {
  console.error('monitored', pid, stats);
});

// occurs when the monitoring is finished
// (no more pid or stop has been called)
mp.on('end', function (pid) {
  console.error('end', pid);
});

mp.on('error', function (err) {
  console.error(err);
});

// begin the monitoring
mp.start();

// stop the monitoring after 50 secondes
setTimeout(function () {
  mp.stop();
}, 50000);

Output fields

CPU fields:

  • "%usr": 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.
  • "%system": Percentage of CPU used by the task while executing at the system level (kernel).
  • "%guest": Percentage of CPU spent by the task in virtual machine (running a virtual processor).
  • "%CPU": Total percentage of CPU time used by the task. In an SMP environment, the task's CPU usage will be divided by the total number of CPU's if option -I has been entered on the command line.

Memory fields:

  • "minflt/s": Total number of minor faults the task has made per second, those which have not required loading a memory page from disk.
  • "majflt/s": Total number of major faults the task has made per second, those which have required loading a memory page from disk.
  • "VSZ": Virtual Size: The virtual memory usage of entire task in kilobytes.
  • "RSS": Resident Set Size: The non-swapped physical memory used by the task in kilobytes.
  • "%MEM": The tasks's currently used share of available physical memory.

Disk fields:

  • "kB_rd/s": Number of kilobytes the task has caused to be read from disk per second.
  • "kB_wr/s": Number of kilobytes the task has caused, or shall cause to be written to disk per second.
  • "kB_ccwr/s": 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.