Socket
Socket
Sign inDemoInstall

usage

Package Overview
Dependencies
Maintainers
1
Versions
39
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

usage - npm Package Compare versions

Comparing version 0.4.13 to 0.5.0

64

lib/providers/linux.js

@@ -33,12 +33,26 @@ var fs = require('fs');

} else {
var usageData = {
memory: calculateMemoryUsage(sysinfo, stat)
};
var usageData = {};
if(historyCpuUsage[pid] && options.keepHistory) {
usageData['cpu'] = calculateCpuUsageFromHistory(sysinfo, uptime, stat, historyCpuUsage[pid]);
var cpuUsage = calculateCpuUsageFromHistory(sysinfo, uptime, stat, historyCpuUsage[pid]);
} else {
usageData['cpu'] = calculateCpuUsage(sysinfo, uptime, stat);
var cpuUsage = calculateCpuUsage(sysinfo, uptime, stat);
}
// memeory info
usageData.memory = calculateMemoryUsage(sysinfo, stat);
usageData.memoryInfo = {
rss: calculateMemoryUsage(sysinfo, stat),
vsize: calculateVirtualMemoryUsage(sysinfo, stat)
};
// cpu info
usageData.cpu = cpuUsage.pcpu;
usageData.cpuInfo = {
pcpu: cpuUsage.pcpu,
pcpuUser: cpuUsage.pcpuUser,
pcpuSystem: cpuUsage.pcpuSystem,
cpuTime: cpuUsage.cpuTime
};
if(options.keepHistory) {

@@ -70,17 +84,33 @@ //save totalTime in history

function calculateCpuUsage(sysinfo, uptime, stat) {
var userTime = stat.utime / sysinfo.HERTZ;
var systemTime = stat.stime / sysinfo.HERTZ;
var totalTime = (stat.stime + stat.utime) / sysinfo.HERTZ;
var processUptime = uptime - stat.startTime / sysinfo.HERTZ;
var pcpu = (totalTime / processUptime) * 100;
return pcpu;
return {
pcpu: (totalTime / processUptime) * 100,
pcpuUser: (userTime / processUptime) * 100,
pcpuSystem: (systemTime / processUptime) * 100
};
}
function calculateCpuUsageFromHistory(sysinfo, uptime, stat, lastUsage) {
var totalTime = (stat.stime + stat.utime) / sysinfo.HERTZ;
var lastTotalTime = (lastUsage.stat.stime + lastUsage.stat.utime) / sysinfo.HERTZ;
var userTime = stat.utime / sysinfo.HERTZ;
var systemTime = stat.stime / sysinfo.HERTZ;
var totalTime = userTime + systemTime;
var usedTimeSinceLast = totalTime - lastTotalTime;
var lastUserTime = lastUsage.stat.utime / sysinfo.HERTZ;
var lastSystemTime = lastUsage.stat.stime / sysinfo.HERTZ;
var lastTotalTime = lastUserTime + lastSystemTime;
var diffTotal = totalTime - lastTotalTime;
var diffUser = userTime - lastUserTime;
var diffSystem = systemTime - lastSystemTime;
var timeSpent = uptime - lastUsage.uptime;
var pcpu = (usedTimeSinceLast / timeSpent) * 100;
return pcpu;
return {
pcpu: (diffTotal / timeSpent) * 100,
pcpuUser: (diffUser / timeSpent) * 100,
pcpuSystem: (diffSystem / timeSpent) * 100,
cpuTime: diffTotal
};
}

@@ -92,2 +122,6 @@

function calculateVirtualMemoryUsage(sysinfo, stat) {
return stat.vsize * sysinfo.PAGE_SIZE;
}
function getUptime(callback) {

@@ -113,3 +147,4 @@ fs.readFile('/proc/uptime', 'utf8', function(err, data) {

START_TIME: 19,
RSS: 21
RSS: 21,
VSIZE: 20
};

@@ -129,3 +164,4 @@

startTime: parseFloat(parts[STAT_INDEXES.START_TIME]),
rss: parseFloat(parts[STAT_INDEXES.RSS])
rss: parseFloat(parts[STAT_INDEXES.RSS]),
vsize: parseFloat(parts[STAT_INDEXES.VSIZE])
};

@@ -132,0 +168,0 @@ callback(null, statObject);

@@ -15,3 +15,3 @@ var exec = require('child_process').exec;

exec('ps -o "rss,pcpu" -p ' + pid, function(err, stdout, stderr) {
exec('ps -o "rss,vsize,pcpu" -p ' + pid, function(err, stdout, stderr) {
if (err || stderr) return callback(err || stderr);

@@ -34,3 +34,3 @@

var matcher = /[ ]*([0-9]*)[ ]*([0-9\.]*)/;
var matcher = /[ ]*([0-9]*)[ ]*([0-9]*)[ ]*([0-9\.]*)/;
var result = lines[1].match(matcher);

@@ -41,3 +41,7 @@

memory: parseInt(result[1]) * 1024,
cpu: parseFloat(result[2])
memoryInfo: {
rss: parseFloat(result[1]) * 1024,
vsize: parseFloat(result[2]) * 1024
},
cpu: parseFloat(result[3])
};

@@ -44,0 +48,0 @@ } else {

{
"name": "usage",
"version": "0.4.13",
"version": "0.5.0",
"description": "simple way to lookup linux process usage",

@@ -5,0 +5,0 @@ "keywords": [

@@ -15,4 +15,6 @@ var usage = require('../');

assert.ifError(err);
assert.ok(result.cpu >= 0);
assert.ok(result.cpu >= 0);
assert.ok(result.memory > 0);
assert.ok(result.memoryInfo.rss >= 0);
assert.ok(result.memoryInfo.vsize >= 0);
done();

@@ -28,8 +30,37 @@ });

assert.ok(result.cpu >= 0);
assert.ok(result.cpuInfo.pcpu >= 0);
assert.ok(result.cpuInfo.pcpuUser >= 0);
assert.ok(result.cpuInfo.pcpuSystem >= 0);
assert.ok(result.memory > 0);
assert.ok(result.memoryInfo.rss > 0);
assert.ok(result.memoryInfo.vsize > 0);
for(var lc=0; lc<999999; lc++) {
Math.random();
}
setTimeout(function() {
usage.lookup(process.pid, options, checkCpuTime);
}, 200);
});
function checkCpuTime (err, result) {
assert.ifError(err);
assert.ok(result.cpu >= 0);
assert.ok(result.cpuInfo.pcpu >= 0);
assert.ok(result.cpuInfo.cpuTime >= 0);
assert.ok(result.cpuInfo.pcpuUser >= 0);
assert.ok(result.cpuInfo.pcpuSystem >= 0);
assert.ok(result.memory > 0);
assert.ok(result.memoryInfo.rss > 0);
assert.ok(result.memoryInfo.vsize > 0);
usage.clearHistory();
usage.lookup(process.pid, options, checkCpuTime);
done();
});
}
});
}
});
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc