Add process CPU usage metrics

This commit is contained in:
Daniel García Aubert 2018-11-15 17:28:18 +01:00
parent 420c39337c
commit 4ad9902601

34
app.js
View File

@ -128,6 +128,40 @@ listener.on('listening', function() {
); );
}); });
function getCPUUsage (oldUsage) {
let usage;
if (oldUsage && oldUsage._start) {
usage = Object.assign({}, process.cpuUsage(oldUsage._start.cpuUsage));
usage.time = Date.now() - oldUsage._start.time;
} else {
usage = Object.assign({}, process.cpuUsage());
usage.time = process.uptime() * 1000; // s to ms
}
usage.percent = (usage.system + usage.user) / (usage.time * 10);
Object.defineProperty(usage, '_start', {
value: {
cpuUsage: process.cpuUsage(),
time: Date.now()
}
});
return usage;
}
let previousCPUUsage = getCPUUsage();
setInterval(function cpuUsageMetrics () {
const CPUUsage = getCPUUsage(previousCPUUsage);
Object.keys(CPUUsage).forEach(property => {
global.statsClient.gauge(`windshaft.cpu.${property}`, CPUUsage[property]);
});
previousCPUUsage = CPUUsage;
}, 5000);
setInterval(function() { setInterval(function() {
var memoryUsage = process.memoryUsage(); var memoryUsage = process.memoryUsage();
Object.keys(memoryUsage).forEach(function(k) { Object.keys(memoryUsage).forEach(function(k) {