endpoint-monitor
Version:
Monitor for endpoint
23 lines (21 loc) • 996 B
text/typescript
const getCpuUsagePercent = (waitTime: number = 100, callback?: Function): Promise<number> => {
const startCpuUsage: NodeJS.CpuUsage = process.cpuUsage();
return new Promise<number>((resolve: Function, reject: Function) => {
setTimeout(() => {
const endCpuUsage: NodeJS.CpuUsage = process.cpuUsage();
const usingCpuUSeconds: number = addObjectAllValues(endCpuUsage) - addObjectAllValues(startCpuUsage);
const usingCPUPercentage: number = usingCpuUSeconds / (waitTime * 1000);
if (callback && callback instanceof Function) callback(usingCPUPercentage);
return resolve(usingCPUPercentage);
}, waitTime);
});
};
const addObjectAllValues = (obj: Object): number => {
let result: number = 0;
const values: any[] = Object.values(obj);
values.forEach((value) => {
if (typeof value === 'number') result += value;
});
return result;
};
export { getCpuUsagePercent };