UNPKG

process-stats

Version:

Display dynamic real-time information about running Node.js process

40 lines (31 loc) 917 B
'use strict' const prettyBytes = require('pretty-bytes') const calcPercent = require('calc-percent') const average = require('simple-average') const prettyMs = require('pretty-ms') const round = n => Number(n.toFixed(2)) const getMemStats = (mem, memTotal) => ({ value: mem, pretty: prettyBytes(mem), percent: Number(calcPercent(mem, memTotal)) }) const getMs = time => ({ value: time, pretty: prettyMs(time) }) const getLoadAvg = (collection, cpus) => { const value = collection.map(round) return { value, normalized: value.map(load => round(load / cpus)) } } module.exports = top => { const aggregator = average() const getCpuUsage = () => { const percentUsage = top.cpu().percent * 100 const { avg: avgUsage } = aggregator.add(percentUsage) return { value: avgUsage, pretty: `${avgUsage.toFixed(1)}%` } } return { getCpuUsage, getMemStats, getLoadAvg, getMs } }