Top AI Repos β open-source AI, indexed and scored
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
π Realtime Monitoring solution for Node.js/Express.js apps, inspired by status.github.com, sponsored by https://dynobase.dev
| Date | Stars |
|---|---|
| 2026-07-24 | 3613 |
| 2026-07-25 | 3613 |
| 2026-07-28 | 3613 |
| 2026-07-30 | 3613 |
| 2026-08-06 | 3613 |
Today
β stars today
This week
β stars this week
This month
β stars this month
Momentum
0.0
growth rate 0.00%/day
# express-status-monitor
[](https://www.npmjs.com/express-status-monitor)
[](https://img.shields.io/npm/dt/express-status-monitor.svg)
[](https://circleci.com/gh/RafalWilinski/express-status-monitor)
[](https://www.codetriage.com/rafalwilinski/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](https://hackathon-starter.walcony.com/status)
## Support for other Node.js frameworks
* [koa-monitor](https://github.com/capaj/koa-monitor) for Koa
* [hapijs-status-monitor](https://github.com/ziyasal/hapijs-status-monitor) for hapi.js
## Installation & setup
1. Run `npm install express-status-monitor --save`
2. Before any other middleware or router add following line:
`app.use(require('express-status-monitor')());`
3. Run server and go to `/status`
Note: This plugin works on Node versions > 4.x
## Run examples
1. Go to `cd examples/`
2. Run `npm i`
3. Run server `npm start`
4. Go to `http://0.0.0.0:3000`
## Options
Monitor can be configured by passing options object into `expressMonitor` constructor.
Default config:
```javascript
title: 'Express Status', // Default title
theme: 'default.css', // Default styles
path: '/status',
socketPath: '/socket.io', // In case you use a custom path
websocket: existingSocketIoInstance,
spans: [{
interval: 1, // Every second
retention: 60 // Keep 60 datapoints in memory
}, {
interval: 5, // Every 5 seconds
retention: 60
}, {
interval: 15, // Every 15 seconds
retention: 60
}],
chartVisibility: {
cpu: true,
mem: true,
load: true,
eventLoop: true,
heap: true,
responseTime: true,
rps: true,
statusCodes: true
},
healthChecks: [],
ignoreStartsWith: '/admin'
```
## Health Checks
You can add a series of health checks to the configuration that will appear below the other stats. The health check will be considered successful if the endpoint returns a 200 status code.
```javascript
// config
healthChecks: [{
protocol: 'http',
host: 'localhost',
path: '/admin/health/ex1',
port: '3000'
}, {
protocol: 'http',
host: 'localhost',
path: '/admin/health/ex2',
port: '3000'
}]
```

## Securing endpoint
The HTML page handler is exposed as a `pageRoute` property on the main
middleware function. So the middleware is mounted to intercept all requests
while the HTML page handler will be authenticated.
Example using https://www.npmjs.com/package/connect-ensure-login
```javascript
const ensureLoggedIn = require('connect-ensure-login').ensureLoggedIn()
const statusMonitor = require('express-status-monitor')();
app.use(statusMonitor);
app.get('/status', ensureLoggedIn, statusMonitor.pageRoute)
```
Credits to [@mattiaerre](https://github.com/mattiaerre)
Example using [http-auth](https://www.npmjs.com/package/http-auth)
```javascript
const auth = require('http-auth');
const basic = auth.basic({realm: 'Monitor Area'}, function(user, pass, callback) {
callback(user === 'username' && pass === 'password');
});
// Set '' to config path to avoid middleware serving the html page (path must be a string not equal to the wanted route)
const statusMonitor = require('express-status-monitor')({ path: '' });
app.use(statusMonitor.middleware); // use the "middleware only" property to manage websockets
app.get('/status', basic.check(statusMonitor.pageRoute)); // use the pageRoute property to serve the dashboard html Excerpt of 4,530 characters
Read on GitHubRafal Wilinski Β· @runlayer Β· Poland
214
9
Snyk bot Β· @Snyk
7
4
Ferdinand MΓΌtsch Β· Path to Zero GmbH Β· Germany
4
4
3
3
2
2
2
2
Martin Alix
2
2
2
Antoine Bluchet Β· @coopTilleuls Β· France
1
1
1
1
README Bot Β· @codetriage
1
Would you bet a product on this? Bounded 0β100 and slow moving.
matched fp:cae5ac2144c96c7d, topic:observability, topic:monitoring