Research
Security News
Threat Actor Exposes Playbook for Exploiting npm to Build Blockchain-Powered Botnets
A threat actor's playbook for exploiting the npm ecosystem was exposed on the dark web, detailing how to build a blockchain-powered botnet.
The pidusage npm package is a cross-platform process and system monitoring library. It provides statistics such as CPU usage, memory usage, running time, and more for a given process ID (PID). It's particularly useful for monitoring the resource consumption of processes in Node.js applications.
Process Statistics
This feature allows you to monitor the resource usage of a specific process. The code sample demonstrates how to get statistics such as CPU and memory usage for the current process.
const pidusage = require('pidusage');
pidusage(process.pid, function (err, stats) {
console.log(stats);
});
Monitoring Multiple PIDs
Pidusage also supports monitoring multiple processes at once. This code sample shows how to get statistics for multiple PIDs simultaneously.
const pidusage = require('pidusage');
pidusage([1234, 5678], function (err, stats) {
console.log(stats);
});
A library for looking up processes running on the system. While ps-node focuses more on finding and interacting with processes, pidusage specializes in monitoring their resource usage.
This package provides a broad set of system and OS metrics, including process monitoring. Compared to pidusage, systeminformation offers a wider range of system-related information but might be more complex to use for simple process monitoring tasks.
Process cpu % and memory use of a PID
Ideas from https://github.com/arunoda/node-usage/ but with no C-bindings
var pusage = require('pidusage')
pusage.stat(process.pid, function(err, stat) {
expect(err).to.be.null
expect(stat).to.be.an('object')
expect(stat).to.have.property('cpu')
expect(stat).to.have.property('memory')
console.log('Pcpu: %s', stat.cpu)
console.log('Mem: %s', stat.memory) //those are bytes
})
// Unmonitor process
pusage.unmonitor(18902);
A check on the os.platform
is done to determine the method to use.
We use /proc/{pid}/stat
in addition to the the PAGE_SIZE
and the CLK_TCK
direclty from getconf()
command. Uptime comes from proc/uptime
file because it's more accurate than the nodejs os.uptime()
.
We use a fallback with the ps -o pcpu,rss -p PID
command to get the same informations.
AIX is tricky because I have no AIX test environement, at the moment we use: ps -o pcpu,rssize -p PID
but /proc
results should be more accurate! If you're familiar with the AIX environment and now how to get the same results as we've got with Linux systems, please help.
#4
Windows is really tricky, atm it uses the wmic.exe
, feel free to share ideas on how to improve this.
MIT
0.1.0
API changes:
require('pidusage').stat(pid, fn)
instead of:
require('pidusage')(pid, fn)
Adds a unmonitor
method to clear process history
FAQs
Cross-platform process cpu % and memory usage of a PID
The npm package pidusage receives a total of 1,813,936 weekly downloads. As such, pidusage popularity was classified as popular.
We found that pidusage demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 4 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
A threat actor's playbook for exploiting the npm ecosystem was exposed on the dark web, detailing how to build a blockchain-powered botnet.
Security News
NVD’s backlog surpasses 20,000 CVEs as analysis slows and NIST announces new system updates to address ongoing delays.
Security News
Research
A malicious npm package disguised as a WhatsApp client is exploiting authentication flows with a remote kill switch to exfiltrate data and destroy files.