Skip to content

A module for getting real time stats of a running Node.js process.

License

Notifications You must be signed in to change notification settings

jyotman/node-stats-lite

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Node Stats Lite

NPM Version NPM Downloads Build Status Coverage Status Known Vulnerabilities Dependency Status

Get real time stats of a running Node.js process. Can be used for Node.js service monitoring.

Installation

npm install node-stats-lite --save

Usage

const nodeStats = require('node-stats-lite');

This module can be used in 2 ways -

1. As an Express.js middleware

app.get('/monitor', nodeStats);

This will simply create a new API endpoint /monitor in your Express.js powered app. Then making a GET call to /monitor url path will provide all the stats.

2. As a function

If you're not using Express.js or are not interested in using it as a middleware and want more control then you can simply call the function without any arguments to get all the stats. The function returns a Promise object.

// using traditional promises
getStats().then((stats) => console.log(stats));

// using async-await
const stats = await getStats();

Output

The stats Object(Method 2) or the API response(Method 1) provides the following stats -

  1. Node.js version running
  2. Memory used by this Node service (in bytes)
  3. Memory used by this Node service realtive to System memory (%)
  4. CPU used by this Node service (%)
  5. Name of the Node file which is executed
  6. Uptime of this Node service (in seconds)
  7. pid of this Node process

Sample response -

{
	"version": "v7.9.0",
	"service_name": "app.js",
	"cpu_usage": 1.4,
	"memory_consumed": 201768960,
	"memory_consumed_percent": 6.1,
	"uptime": 68231.624,
	"pid": 10790
}

Requirements

  1. Node.js version >= 7.6.0
  2. Linux based system