express-status-monitor
Simple, self-hosted module based on Socket.io and Chart.js to report realtime server metrics for Express-based node servers.
Demo
Demo available here
Support for other Node.js frameworks
Installation & setup
- Run
npm install express-status-monitor --save
- Before any other middleware or router add following line:
app.use(require('express-status-monitor')());
- Run server and go to
/status
Run examples
- Go to
cd examples/
- Run
npm i
- Run server
npm start
- Go to
http://0.0.0.0:3000
Options
Monitor can be configured by passing options object into expressMonitor
constructor.
Default config:
title: 'Express Status',
path: '/status',
spans: [{
interval: 1,
retention: 60
}, {
interval: 5,
retention: 60
}, {
interval: 15,
retention: 60
}]
Securing endpoint
Example using https://www.npmjs.com/package/connect-ensure-login
const ensureLoggedIn = require('connect-ensure-login').ensureLoggedIn()
app.get('/status', ensureLoggedIn, require('express-status-monitor')())
Credits to @mattiaerre
Example using http-auth
const auth = require('http-auth');
const basic = auth.basic({realm: 'Monitor Area'}, function(user, pass, callback) {
callback(user === 'username' && pass === 'password');
});
app.get('/status', auth.connect(basic), require('express-status-monitor')());
Tests and coverage
In order to run test and coverage use the following npm commands:
npm test
npm run coverage
License
MIT License © Rafal Wilinski