node-os-utils
    DefinitelyTyped icon, indicating that this package has TypeScript declarations provided by the separate @types/node-os-utils package

    1.3.5 • Public • Published

    Description

    monitor vital signs of your server :

    • CPU average usage
    • Free and used drive space
    • Free and used memory space
    • Operating System
    • All processes running
    • TTY/SSH opened
    • Total opened files
    • Network speed (input and output)

    node-os-utils

    JavaScript Style Guide Build Status NPM Version NPM Downloads

    An operating system utility library. Some methods are wrappers of node libraries and others are calculations made by the module.

    os-utils extended

    Installation

    One line installation with npm.

    $ npm install node-os-utils --save

    Then in your code

    Example

    var osu = require('node-os-utils')
    var cpu = osu.cpu
    
    var count = cpu.count() // 8
    
    cpu.usage()
      .then(cpuPercentage => {
        console.log(cpuPercentage) // 10.38
      })
    
    var osCmd = osu.osCmd
    
    osCmd.whoami()
      .then(userName => {
        console.log(userName) // admin
      })

    Configuration

    require('node-os-utils').options

    Default settings:

    • NOT_SUPPORTED_VALUE is not supported. os not supported, return value.
    • INTERVAL is 1000 millisecond. Represents the refresh of the cpu and network workers.

    ⚠️ If this module uses too much CPU, set the INTERVAL value to 10000 or more.

    Info

    If you have not supported in some categories, your OS configuration is not supported for this option.

    You can use require('node-os-utils').isNotSupported() to decide not supported.

    var osu = require('node-os-utils')
    var osCmd = osu.osCmd
    
    osCmd
      .topCpu()
      .then(function(res){
        if(osu.isNotSupported(res)){
          // Handle 'not supported'
        }else{
          // Things to do...
        }
      })

    Usage

    The following methods are available:

    require('node-os-utils').cpu

    cpu.average():object

    CPU average

    var osu = require('node-os-utils')
    var cpu = osu.cpu
    
    var info = cpu.average()
    
    console.log(info)
    { totalIdle: 33526410,
      totalTick: 37460330,
      avgIdle: 4190801.25,
      avgTotal: 4682541.25 }
    

    cpu.usage(interval):Promise(number)

    CPU average usage

    • [interval]: number - interval millisecond. defaulta: 1000
    var osu = require('node-os-utils')
    var cpu = osu.cpu
    
    cpu.usage()
      .then(info => {
        console.log(info)
      })
    10.06
    

    cpu.free(interval):Promise(number)

    cpu free percentage

    • [interval]: number - interval millisecond. defaulta: 1000
    var osu = require('node-os-utils')
    var cpu = osu.cpu
    
    cpu.free()
      .then(info => {
        console.log(info)
      })
    89.26
    

    cpu.count():number

    cpu.model():string

    cpu.loadavg():Array[number]

    cpu.loadavgTime(time):number

    • time: number - 1, 5 or 15 minutes, defaulta: 1

    require('node-os-utils').drive

    drive.info():Promise(Object)

    drive info

    var osu = require('node-os-utils')
    var drive = osu.drive
    
    drive.info()
      .then(info => {
        console.log(info)
      })
    { totalGb: '464.8',
      usedGb: '147.7',
      freeGb: '316.9',
      usedPercentage: '31.8',
      freePercentage: '68.2' }
    

    drive.free():Promise(Object)

    { totalGb: '464.8', freeGb: '316.9', freePercentage: '68.2' }
    

    drive.used():Promise(Object)

    { totalGb: '464.8', usedGb: '316.9', usedPercentage: '68.2' }
    

    require('node-os-utils').mem

    mem.info():Promise(Object)

    memory info

    var osu = require('node-os-utils')
    var mem = osu.mem
    
    mem.info()
      .then(info => {
        console.log(info)
      })
    { totalMemMb: 16384,
      usedMemMb: 13403.41,
      freeMemMb: 2980.59,
      freeMemPercentage: 18.19 }
    

    mem.free():Promise(Object)

    { totalMemMb: 16384, freeMemMb: 3033.63 }
    

    mem.used():Promise(Object)

    { totalMemMb: 16384, usedMemMb: 13421.15 }
    

    mem.totalMem():number

    17179869184
    

    require('node-os-utils').netstat

    netstat.stats():Promise(Array[Object])

    var osu = require('node-os-utils')
    var netstat = osu.netstat
    
    netstat.stats()
      .then(info => {
        console.log(info)
      })
    [ { interface: 'lo',
        inputBytes: '731508412',
        outputBytes: '731508412' },
      { interface: 'eth0',
        inputBytes: '1356471479',
        outputBytes: '26631036763' } ]
    

    netstat.inOut(interval):Promise(Object)

    • [interval]: number - interval millisecond. defaulta: 1000
    var osu = require('node-os-utils')
    var netstat = osu.netstat
    
    netstat.inOut()
      .then(info => {
        console.log(info)
      })
    { total: { inputMb: 0.02, outputMb: 1.22 },
      eth0: { inputMb: 0.02, outputMb: 1.22 } }
    

    require('node-os-utils').openfiles

    openfiles.openFd():Promise(number)

    Total opened files

    1088
    

    require('node-os-utils').os

    os.oos():Promise(string)

    original operating system

    Mac OS X 10.12.5
    
    Red Hat 7.3
    

    os.platform():string

    os.uptime():number - (seconds)

    os.ip():string

    os.hostname():string

    os.type():string

    os.arch():string


    require('node-os-utils').proc

    proc.totalProcesses():Promise(number)

    proc.zombieProcesses():Promise(number)


    require('node-os-utils').users

    users.openedCount():Promise(number)

    TTY/SSH opened


    require('node-os-utils').osCmd

    osCmd.topCpu():Promise(string)

    osCmd.topMem():Promise(string)

    osCmd.vmstats():Promise(string)

    ......

    var bucket = require('./bucket')
    var exec = require('./exec')
    var wrapExec = exec.wrapExec
    
    bucket.osCmd = {
      topCpu: wrapExec('ps -eo pcpu,user,args --no-headers | sort -k 1 -n | tail -n 10 | sort -k 1 -nr | cut -c 1-70'),
      topMem: wrapExec('ps -eo pmem,pid,cmd | sort -k 1 -n | tail -n 10 | sort -k 1 -nr | cut -c 1-70'),
      vmstats: wrapExec('vmstat -S m'),
      processesUsers: wrapExec('ps hax -o user | sort | uniq -c'),
      diskUsage: wrapExec('df -h'),
      who: wrapExec('who'),
      whoami: wrapExec('whoami'),
      openPorts: wrapExec('lsof -Pni4 | grep ESTABLISHED'),
      ifconfig: wrapExec('ifconfig')
    }

    License

    MIT. Copyright (c).

    Install

    npm i node-os-utils

    DownloadsWeekly Downloads

    13,473

    Version

    1.3.5

    License

    MIT

    Unpacked Size

    37 kB

    Total Files

    19

    Last publish

    Collaborators

    • sunilwang