Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

express-status-monitor

Package Overview
Dependencies
Maintainers
1
Versions
42
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

express-status-monitor - npm Package Compare versions

Comparing version 0.0.9 to 0.0.10

examples/index.js

30

index.js

@@ -12,2 +12,3 @@ (function () {

const defaultConfig = {
title: 'Express Status',
path: '/status',

@@ -26,6 +27,2 @@ spans: [{

Array.prototype.last = function() {
return this[this.length - 1];
};
const gatherOsMetrics = (io, span) => {

@@ -43,3 +40,3 @@ const defaultResponse = {

pidusage.stat(process.pid, (err, stat) => {
const last = span.responses[span.responses.length - 1];
// Convert from B to MB

@@ -51,3 +48,3 @@ stat.memory = stat.memory / 1024 / 1024;

span.os.push(stat);
if (!span.responses[0] || span.responses.last().timestamp + (span.interval * 1000) < Date.now()) span.responses.push(defaultResponse);
if (!span.responses[0] || last.timestamp + (span.interval * 1000) < Date.now()) span.responses.push(defaultResponse);

@@ -83,5 +80,14 @@ if (span.os.length >= span.retention) span.os.shift();

if (config.title === undefined || !config instanceof String) {
config.title = 'Express Status';
}
let renderedHtml;
fs.readFile(path.join(__dirname, '/index.html'), function(err, html){
renderedHtml = html.toString().replace(/{{title}}/g, config.title);
});
return (req, res, next) => {
if (io === null || io === undefined) {
io = require('socket.io')(req.socket.server);

@@ -103,3 +109,3 @@

if (req.path === config.path) {
res.sendFile(path.join(__dirname + '/index.html'));
res.send(renderedHtml);
} else {

@@ -114,6 +120,6 @@ onHeaders(res, () => {

if (last !== undefined &&
span.responses.last().timestamp / 1000 + span.interval > Date.now() / 1000) {
span.responses.last()[category]++;
span.responses.last().count++;
span.responses.last().mean = span.responses.last().mean + ((responseTime - span.responses.last().mean) / span.responses.last().count);
last.timestamp / 1000 + span.interval > Date.now() / 1000) {
last[category]++;
last.count++;
last.mean = last.mean + ((responseTime - last.mean) / last.count);
} else {

@@ -120,0 +126,0 @@ span.responses.push({

9

package.json
{
"name": "express-status-monitor",
"version": "0.0.9",
"version": "0.0.10",
"description": "Monitoring for Express-based Node applications",

@@ -14,2 +14,9 @@ "main": "app.js",

"author": "Rafal Wilinski raf.wilinski@gmail.com",
"contributors": [
{
"name": "Julien Breux",
"email": "julien.breux@gmail.com",
"url": "https://github.com/JulienBreux/"
}
],
"license": "MIT",

@@ -16,0 +23,0 @@ "dependencies": {

@@ -0,1 +1,2 @@

### Issues with HTTPS (including Heroku) has been resolved, module is working again
# express-status-monitor

@@ -8,21 +9,29 @@ Simple, self-hosted module based on Socket.io and Chart.js to report realtime server metrics for Express-based node servers. More Node frameworks coming soon.

1. Run `npm install express-status-monitor --save`
2. Before any other middleware or router add following line:
2. Before any other middleware or router add following line:
`app.use(require('express-status-monitor')());`
3. Run server and to go `/status`
3. Run server and go to `/status`
## Run examples
1. Go to `examples/`
2. Run `npm install`
3. Run server `node index.js`
4. 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', // Default title
path: '/status',
spans: [{
interval: 1, // Every second
retention: 60 // Keep 60 datapoints in memory
interval: 1, // Every second
retention: 60 // Keep 60 datapoints in memory
}, {
interval: 5, // Every 5 seconds
interval: 5, // Every 5 seconds
retention: 60
}, {
interval: 15, // Every 15 seconds
interval: 15, // Every 15 seconds
retention: 60

@@ -29,0 +38,0 @@ }]

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc