Socket
Socket
Sign inDemoInstall

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 1.2.11 to 1.3.0

2

.eslintrc.json

@@ -88,3 +88,3 @@ {

"max-len": "off",
"max-lines": "error",
"max-lines": "off",
"max-nested-callbacks": "error",

@@ -91,0 +91,0 @@ "max-params": "error",

{
"name": "express-status-monitor",
"version": "1.2.11",
"version": "1.3.0",
"description": "Realtime Monitoring for Express-based Node applications",

@@ -62,2 +62,3 @@ "main": "index.js",

"debug": "4.1.1",
"event-loop-stats": "1.2.0",
"handlebars": "^4.7.6",

@@ -64,0 +65,0 @@ "on-headers": "1.0.2",

@@ -64,2 +64,4 @@ # express-status-monitor

load: true,
eventLoop: true,
heap: true,
responseTime: true,

@@ -66,0 +68,0 @@ rps: true,

@@ -27,2 +27,4 @@ module.exports = {

load: true,
heap: true,
eventLoop: true,
responseTime: true,

@@ -33,3 +35,3 @@ rps: true,

ignoreStartsWith: '/admin',
healthChecks: []
healthChecks: [],
};
const pidusage = require('pidusage');
const os = require('os');
const v8 = require('v8');
const eventLoopStats = require('event-loop-stats');
const sendMetrics = require('./send-metrics');

@@ -29,5 +31,7 @@ const debug = require('debug')('express-status-monitor');

stat.timestamp = Date.now();
stat.heap = v8.getHeapStatistics();
stat.loop = eventLoopStats.sense();
span.os.push(stat);
if (!span.responses[0] || last.timestamp + (span.interval * 1000) < Date.now()) {
if (!span.responses[0] || (last.timestamp + span.interval) * 1000 < Date.now()) {
span.responses.push(defaultResponse);

@@ -34,0 +38,0 @@ }

@@ -15,3 +15,3 @@ /* eslint strict: "off", init-declarations: "off" */

});
}
};

@@ -28,3 +28,4 @@ module.exports = (server, config) => {

if (config.authorize) {
config.authorize(socket)
config
.authorize(socket)
.then(authorized => {

@@ -31,0 +32,0 @@ if (!authorized) socket.disconnect('unauthorized');

@@ -16,3 +16,5 @@ /*

var socket = io(location.protocol + '//' + location.hostname + ':' + (port || location.port), { path: socketPath });
var socket = io(location.protocol + '//' + location.hostname + ':' + (port || location.port), {
path: socketPath,
});
var defaultSpan = 0;

@@ -31,16 +33,20 @@ var spans = [];

scales: {
yAxes: [{
ticks: {
beginAtZero: true,
yAxes: [
{
ticks: {
beginAtZero: true,
},
},
}],
xAxes: [{
type: 'time',
time: {
unitStepSize: 30,
],
xAxes: [
{
type: 'time',
time: {
unitStepSize: 30,
},
gridLines: {
display: false,
},
},
gridLines: {
display: false,
},
}],
],
},

@@ -73,2 +79,4 @@ tooltips: {

var loadDataset = [Object.create(defaultDataset)];
var heapDataset = [Object.create(defaultDataset)];
var eventLoopDataset = [Object.create(defaultDataset)];
var responseTimeDataset = [Object.create(defaultDataset)];

@@ -80,2 +88,4 @@ var rpsDataset = [Object.create(defaultDataset)];

var loadStat = document.getElementById('loadStat');
var heapStat = document.getElementById('heapStat');
var eventLoopStat = document.getElementById('eventLoopStat');
var responseTimeStat = document.getElementById('responseTimeStat');

@@ -87,2 +97,4 @@ var rpsStat = document.getElementById('rpsStat');

var loadChartCtx = document.getElementById('loadChart');
var heapChartCtx = document.getElementById('heapChart');
var eventLoopChartCtx = document.getElementById('eventLoopChart');
var responseTimeChartCtx = document.getElementById('responseTimeChart');

@@ -94,2 +106,4 @@ var rpsChartCtx = document.getElementById('rpsChart');

var memChart = createChart(memChartCtx, memDataset);
var heapChart = createChart(heapChartCtx, heapDataset);
var eventLoopChart = createChart(eventLoopChartCtx, eventLoopDataset);
var loadChart = createChart(loadChartCtx, loadDataset);

@@ -116,3 +130,12 @@ var responseTimeChart = createChart(responseTimeChartCtx, responseTimeDataset);

var charts = [cpuChart, memChart, loadChart, responseTimeChart, rpsChart, statusCodesChart];
var charts = [
cpuChart,
memChart,
loadChart,
responseTimeChart,
rpsChart,
statusCodesChart,
heapChart,
eventLoopChart,
];

@@ -170,2 +193,12 @@ var onSpanChange = function (e) {

heapChart.data.datasets[0].data = data[defaultSpan].os.map(function (point) {
return point.heap.used_heap_size / 1024 / 1024;
});
heapChart.data.labels = data[defaultSpan].os.map(addTimestamp);
eventLoopChart.data.datasets[0].data = data[defaultSpan].os.map(function (point) {
return point.loop.sum;
});
eventLoopChart.data.labels = data[defaultSpan].os.map(addTimestamp);
var lastResponseMetric = data[defaultSpan].responses[data[defaultSpan].responses.length - 1];

@@ -191,3 +224,4 @@

if (data[defaultSpan].responses.length >= 2) {
var deltaTime = lastResponseMetric.timestamp -
var deltaTime =
lastResponseMetric.timestamp -
data[defaultSpan].responses[data[defaultSpan].responses.length - 2].timestamp;

@@ -229,4 +263,8 @@

socket.on('esm_stats', function (data) {
if (data.retention === spans[defaultSpan].retention &&
data.interval === spans[defaultSpan].interval) {
console.log(data);
if (
data.retention === spans[defaultSpan].retention &&
data.interval === spans[defaultSpan].interval
) {
var os = data.os;

@@ -256,2 +294,16 @@ var responses = data.responses;

heapStat.textContent = '0';
if (os) {
heapStat.textContent = (os.heap.used_heap_size / 1024 / 1024).toFixed(1) + 'MB';
heapChart.data.datasets[0].data.push(os.heap.used_heap_size / 1024 / 1024);
heapChart.data.labels.push(os.timestamp);
}
eventLoopStat.textContent = '0';
if (os) {
eventLoopStat.textContent = os.loop.sum.toFixed(2) + 'ms';
eventLoopChart.data.datasets[0].data.push(os.loop.sum);
eventLoopChart.data.labels.push(os.timestamp);
}
responseTimeStat.textContent = '0.00ms';

@@ -258,0 +310,0 @@ if (responses) {

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