Skip to content

Commit d6f831a

Browse files
author
Mark Moffat
committed
Aligned eslint styling
1 parent 178c5f2 commit d6f831a

File tree

3 files changed

+111
-111
lines changed

3 files changed

+111
-111
lines changed

.eslintrc.json

+1
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
"semi" : [1, "always"],
2020
"space-unary-ops" : 2,
2121
"no-undef": 1,
22+
"no-new": 0,
2223
"no-unused-vars": 1,
2324
"keyword-spacing": ["error", { "before": false, "after": false }],
2425
"space-before-function-paren": 0,

public/js/servermonitoring.js

+13-16
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,31 @@
1-
$(document).ready(function () {
1+
$(document).ready(function (){
22
// initial render
33
renderCharts();
44

55
// update every 30 secs
6-
setInterval(function () {
6+
setInterval(function (){
77
renderCharts();
88
}, 30000);
99

10-
function renderCharts() {
10+
function renderCharts(){
1111
$.ajax({
1212
method: 'GET',
1313
url: $('#app_context').val() + '/api/monitoring/' + $('#conn_name').val(),
1414
data: {}
1515
})
16-
.done(function (result) {
16+
.done(function (result){
17+
var Chart = window.Chart;
1718
var scrollLocation = $(window).scrollTop();
1819
// clear chart canvas
1920
clearCharts();
2021

2122
// show the db data
22-
if (result.dataRetrieved === true) {
23+
if(result.dataRetrieved === true){
2324
$('#chartsWrapper').removeClass('hidden');
2425
$('#monitorPid').text(result.pid);
2526
$('#monitorVersion').text(result.version);
2627
$('#monitorUptime').text(result.uptime);
27-
} else {
28+
}else{
2829
$('#chartsMessage').html("<p class='text-danger'>There was an error retrieving the monitoring data. Please ensure you are authenticated with a user who has 'admin' role assigned to the server.</p>");
2930
$('#chartsMessage').removeClass('hidden');
3031
}
@@ -144,8 +145,7 @@ $(document).ready(function () {
144145

145146
// charts
146147
Chart.defaults.global.showTooltips = false;
147-
var ctx = document.getElementById('connectionsChart');
148-
var connectionsChart = new Chart(ctx, {
148+
new Chart(document.getElementById('connectionsChart'), {
149149
type: 'line',
150150
data: connectionsChartData,
151151
options: {
@@ -173,8 +173,7 @@ $(document).ready(function () {
173173
}
174174
});
175175

176-
var ctx = document.getElementById('clientsChart');
177-
var clientsChart = new Chart(ctx, {
176+
new Chart(document.getElementById('clientsChart'), {
178177
type: 'line',
179178
data: clientsChartData,
180179
options: {
@@ -202,8 +201,7 @@ $(document).ready(function () {
202201
}
203202
});
204203

205-
var ctx = document.getElementById('memoryChart');
206-
var memoryChart = new Chart(ctx, {
204+
new Chart(document.getElementById('memoryChart'), {
207205
type: 'line',
208206
data: memoryChartData,
209207
options: {
@@ -231,8 +229,7 @@ $(document).ready(function () {
231229
}
232230
});
233231

234-
var ctx = document.getElementById('docsChart');
235-
var docsChart = new Chart(ctx, {
232+
new Chart(document.getElementById('docsChart'), {
236233
type: 'line',
237234
data: docsChartData,
238235
options: {
@@ -262,13 +259,13 @@ $(document).ready(function () {
262259
// charts
263260
$(window).scrollTop(scrollLocation);
264261
})
265-
.fail(function (data) {
262+
.fail(function (data){
266263
$('#chartsMessage').html("<p class='text-danger'>There was an error retrieving the monitoring data. Please ensure you are authenticated with a user who has 'admin' role assigned to the server.</p>");
267264
$('#chartsMessage').removeClass('hidden');
268265
});
269266
}
270267

271-
function clearCharts() {
268+
function clearCharts(){
272269
$('#memoryChart').replaceWith('<canvas id="memoryChart" height="200"></canvas>');
273270
$('#connectionsChart').replaceWith('<canvas id="connectionsChart" height="200"></canvas>');
274271
$('#clientsChart').replaceWith('<canvas id="clientsChart" height="200"></canvas>');

routes/api.js

+97-95
Original file line numberDiff line numberDiff line change
@@ -4,24 +4,24 @@ var _ = require('lodash');
44
var common = require('./common');
55

66
// runs on all routes and checks password if one is setup
7-
router.all('/api/*', common.checkLogin, function (req, res, next) {
7+
router.all('/api/*', common.checkLogin, function (req, res, next){
88
next();
99
});
1010

1111
// pagination API
12-
router.post('/api/:conn/:db/:coll/:page', function (req, res, next) {
12+
router.post('/api/:conn/:db/:coll/:page', function (req, res, next){
1313
var connection_list = req.app.locals.dbConnections;
1414
var ejson = require('mongodb-extended-json');
1515
var docs_per_page = parseInt(req.body.docsPerPage) !== undefined ? parseInt(req.body.docsPerPage) : 5;
1616

1717
// Check for existance of connection
18-
if (connection_list[req.params.conn] === undefined) {
19-
res.status(400).json({ 'msg': req.i18n.__('Invalid connection name') });
18+
if(connection_list[req.params.conn] === undefined){
19+
res.status(400).json({'msg': req.i18n.__('Invalid connection name')});
2020
}
2121

2222
// Validate database name
23-
if (req.params.db.indexOf(' ') > -1) {
24-
res.status(400).json({ 'msg': req.i18n.__('Invalid database name') });
23+
if(req.params.db.indexOf(' ') > -1){
24+
res.status(400).json({'msg': req.i18n.__('Invalid database name')});
2525
}
2626

2727
// Get DB's form pool
@@ -30,12 +30,12 @@ router.post('/api/:conn/:db/:coll/:page', function (req, res, next) {
3030
var page_size = docs_per_page;
3131
var page = 1;
3232

33-
if (req.params.page !== undefined) {
33+
if(req.params.page !== undefined){
3434
page = parseInt(req.params.page);
3535
}
3636

3737
var skip = 0;
38-
if (page > 1) {
38+
if(page > 1){
3939
skip = (page - 1) * page_size;
4040
}
4141

@@ -44,10 +44,10 @@ router.post('/api/:conn/:db/:coll/:page', function (req, res, next) {
4444
var query_obj = {};
4545
var validQuery = true;
4646
var queryMessage = '';
47-
if (req.body.query) {
48-
try {
47+
if(req.body.query){
48+
try{
4949
query_obj = ejson.parse(req.body.query);
50-
} catch (e) {
50+
}catch(e){
5151
validQuery = false;
5252
queryMessage = e.toString();
5353
query_obj = {};
@@ -56,29 +56,29 @@ router.post('/api/:conn/:db/:coll/:page', function (req, res, next) {
5656

5757
console.log(skip, limit);
5858

59-
mongo_db.collection(req.params.coll).find(query_obj, { skip: skip, limit: limit }).toArray(function (err, result) {
60-
if (err) {
59+
mongo_db.collection(req.params.coll).find(query_obj, {skip: skip, limit: limit}).toArray(function (err, result){
60+
if(err){
6161
console.error(err);
6262
res.status(500).json(err);
63-
} else {
64-
mongo_db.collection(req.params.coll).find({}, { skip: skip, limit: limit }).toArray(function (err, simpleSearchFields) {
63+
}else{
64+
mongo_db.collection(req.params.coll).find({}, {skip: skip, limit: limit}).toArray(function (err, simpleSearchFields){
6565
// get field names/keys of the Documents in collection
6666
var fields = [];
67-
for (var i = 0; i < simpleSearchFields.length; i++) {
67+
for(var i = 0; i < simpleSearchFields.length; i++){
6868
var doc = simpleSearchFields[i];
6969

70-
for (var key in doc) {
71-
if (key === '__v') continue;
70+
for(var key in doc){
71+
if(key === '__v')continue;
7272
fields.push(key);
7373
}
7474
};
7575

76-
fields = fields.filter(function (item, pos) {
76+
fields = fields.filter(function (item, pos){
7777
return fields.indexOf(item) === pos;
7878
});
7979

8080
// get total num docs in query
81-
mongo_db.collection(req.params.coll).count(query_obj, function (err, doc_count) {
81+
mongo_db.collection(req.params.coll).count(query_obj, function (err, doc_count){
8282
var return_data = {
8383
data: result,
8484
fields: fields,
@@ -97,11 +97,11 @@ router.post('/api/:conn/:db/:coll/:page', function (req, res, next) {
9797
});
9898

9999
// Gets monitoring data
100-
router.get('/api/monitoring/:conn', function (req, res, next) {
100+
router.get('/api/monitoring/:conn', function (req, res, next){
101101
var dayBack = new Date();
102102
dayBack.setDate(dayBack.getDate() - 1);
103103

104-
req.db.find({ connectionName: req.params.conn, eventDate: { $gte: dayBack } }).sort({ eventDate: 1 }).exec(function (err, serverEvents) {
104+
req.db.find({connectionName: req.params.conn, eventDate: {$gte: dayBack}}).sort({eventDate: 1}).exec(function (err, serverEvents){
105105
var connectionsCurrent = [];
106106
var connectionsAvailable = [];
107107
var connectionsTotalCreated = [];
@@ -119,85 +119,39 @@ router.get('/api/monitoring/:conn', function (req, res, next) {
119119
var docsDeleted = [];
120120
var docsUpdated = [];
121121

122-
if (serverEvents.length > 0) {
123-
if (serverEvents[0].dataRetrieved === true) {
124-
if (serverEvents) {
125-
_.each(serverEvents, function (value, key) {
122+
if(serverEvents.length > 0){
123+
if(serverEvents[0].dataRetrieved === true){
124+
if(serverEvents){
125+
_.each(serverEvents, function (value, key){
126126
// connections
127-
if (value.connections) {
128-
connectionsCurrent.push({ x: value.eventDate, y: value.connections.current });
129-
connectionsAvailable.push({ x: value.eventDate, y: value.connections.available });
130-
connectionsTotalCreated.push({ x: value.eventDate, y: value.connections.totalCreated });
127+
if(value.connections){
128+
connectionsCurrent.push({x: value.eventDate, y: value.connections.current});
129+
connectionsAvailable.push({x: value.eventDate, y: value.connections.available});
130+
connectionsTotalCreated.push({x: value.eventDate, y: value.connections.totalCreated});
131131
}
132132
// clients
133-
if (value.activeClients) {
134-
clientsTotal.push({ x: value.eventDate, y: value.activeClients.total });
135-
clientsReaders.push({ x: value.eventDate, y: value.activeClients.readers });
136-
clientsWriters.push({ x: value.eventDate, y: value.activeClients.writers });
133+
if(value.activeClients){
134+
clientsTotal.push({x: value.eventDate, y: value.activeClients.total});
135+
clientsReaders.push({x: value.eventDate, y: value.activeClients.readers});
136+
clientsWriters.push({x: value.eventDate, y: value.activeClients.writers});
137137
}
138138
// memory
139-
if (value.memory) {
140-
memoryVirtual.push({ x: value.eventDate, y: value.memory.virtual });
141-
memoryMapped.push({ x: value.eventDate, y: value.memory.mapped });
142-
memoryCurrent.push({ x: value.eventDate, y: value.memory.resident });
139+
if(value.memory){
140+
memoryVirtual.push({x: value.eventDate, y: value.memory.virtual});
141+
memoryMapped.push({x: value.eventDate, y: value.memory.mapped});
142+
memoryCurrent.push({x: value.eventDate, y: value.memory.resident});
143143
}
144144

145-
if (value.docCounts) {
146-
docsQueried.push({ x: value.eventDate, y: value.docCounts.queried });
147-
docsInserted.push({ x: value.eventDate, y: value.docCounts.inserted });
148-
docsDeleted.push({ x: value.eventDate, y: value.docCounts.deleted });
149-
docsUpdated.push({ x: value.eventDate, y: value.docCounts.updated });
145+
if(value.docCounts){
146+
docsQueried.push({x: value.eventDate, y: value.docCounts.queried});
147+
docsInserted.push({x: value.eventDate, y: value.docCounts.inserted});
148+
docsDeleted.push({x: value.eventDate, y: value.docCounts.deleted});
149+
docsUpdated.push({x: value.eventDate, y: value.docCounts.updated});
150150
}
151151
});
152152
}
153153
}
154154

155-
function averageDatapoints(datapoints, limit) {
156-
if (limit >= datapoints.length)
157-
return datapoints;
158-
159-
var min = datapoints[0].x.getTime();
160-
var max = datapoints[datapoints.length - 1].x.getTime();
161-
162-
if (limit < 1) {
163-
return [{
164-
x: new Date((min + max) / 2),
165-
y: datapoints.reduce((a, b) => a.y + b.y, 0) / datapoints.length
166-
}];
167-
} else {
168-
var step = (max - min) / limit;
169-
var result = [];
170-
var l = min + step;
171-
var n = 0;
172-
var sumx = 0;
173-
var sumy = 0;
174-
for (var i = 0; i < datapoints.length; i++) {
175-
if (datapoints[i].x.getTime() > l) {
176-
if (n > 0)
177-
result.push({
178-
x: sumy ? new Date(sumx / sumy) : new Date(l - step / 2),
179-
y: sumy / n
180-
});
181-
while (datapoints[i].x.getTime() > l) {
182-
l += step;
183-
}
184-
n = 0;
185-
var sumx = 0;
186-
var sumy = 0;
187-
}
188-
n++;
189-
sumx += datapoints[i].x.getTime() * datapoints[i].y;
190-
sumy += datapoints[i].y;
191-
}
192-
if (n > 0)
193-
result.push({
194-
x: sumy ? new Date(sumx / sumy) : new Date(l - step / 2),
195-
y: sumy / n
196-
});
197-
return result;
198-
}
199-
}
200-
201155
var dataPointsLimit = 1000;
202156

203157
var returnedData = {
@@ -218,19 +172,67 @@ router.get('/api/monitoring/:conn', function (req, res, next) {
218172

219173
// get hours or mins
220174
var uptime = (serverEvents[0].uptime / 60).toFixed(2);
221-
if (uptime > 61) {
175+
if(uptime > 61){
222176
uptime = (uptime / 60).toFixed(2) + ' hours';
223-
} else {
177+
}else{
224178
uptime = uptime + ' minutes';
225179
}
226180

227-
if (err) {
228-
res.status(400).json({ 'msg': req.i18n.__('Could not get server monitoring') });
229-
} else {
230-
res.status(200).json({ data: returnedData, dataRetrieved: serverEvents[0].dataRetrieved, pid: serverEvents[0].pid, version: serverEvents[0].version, uptime: uptime });
181+
if(err){
182+
res.status(400).json({'msg': req.i18n.__('Could not get server monitoring')});
183+
}else{
184+
res.status(200).json({data: returnedData, dataRetrieved: serverEvents[0].dataRetrieved, pid: serverEvents[0].pid, version: serverEvents[0].version, uptime: uptime});
231185
}
232186
}
233187
});
234188
});
235189

190+
function averageDatapoints(datapoints, limit){
191+
if(limit >= datapoints.length){
192+
return datapoints;
193+
}
194+
195+
var min = datapoints[0].x.getTime();
196+
var max = datapoints[datapoints.length - 1].x.getTime();
197+
198+
if(limit < 1){
199+
return[{
200+
x: new Date((min + max) / 2),
201+
y: datapoints.reduce((a, b) => a.y + b.y, 0) / datapoints.length
202+
}];
203+
}
204+
var step = (max - min) / limit;
205+
var result = [];
206+
var l = min + step;
207+
var n = 0;
208+
var sumx = 0;
209+
var sumy = 0;
210+
for(var i = 0; i < datapoints.length; i++){
211+
if(datapoints[i].x.getTime() > l){
212+
if(n > 0){
213+
result.push({
214+
x: sumy ? new Date(sumx / sumy) : new Date(l - step / 2),
215+
y: sumy / n
216+
});
217+
}
218+
while(datapoints[i].x.getTime() > l){
219+
l += step;
220+
}
221+
n = 0;
222+
sumx = 0;
223+
sumy = 0;
224+
}
225+
n++;
226+
sumx += datapoints[i].x.getTime() * datapoints[i].y;
227+
sumy += datapoints[i].y;
228+
}
229+
if(n > 0){
230+
result.push({
231+
x: sumy ? new Date(sumx / sumy) : new Date(l - step / 2),
232+
y: sumy / n
233+
});
234+
}
235+
return result;
236+
}
237+
236238
module.exports = router;

0 commit comments

Comments
 (0)