Commit d4411f572f11b119afebc3723baa4c8b3dd1ab59
1 parent
86b3b9fa1f
Exists in
master
runtime-info
Showing 3 changed files with 56 additions and 1 deletions Side-by-side Diff
index.js
... | ... | @@ -11,6 +11,7 @@ var querystring = require('querystring'); |
11 | 11 | var morgan = require('morgan'); |
12 | 12 | var FileStreamRotator = require('file-stream-rotator'); |
13 | 13 | var fs = require('fs'); |
14 | +var os = require('os'); | |
14 | 15 | var monitorUtil = require('./monitor-util'); |
15 | 16 | |
16 | 17 | var config = require('./config.json'); |
... | ... | @@ -303,11 +304,39 @@ function logout(req, res, next) { |
303 | 304 | res.redirect('/signin'); |
304 | 305 | } |
305 | 306 | |
307 | +function pageRuntimeInfo(req, res, next) { | |
308 | + var os_info = { | |
309 | + uptime: os.uptime(), | |
310 | + loadavg: os.loadavg(), | |
311 | + hostname: os.hostname(), | |
312 | + type: os.type(), | |
313 | + platform: os.platform(), | |
314 | + arch: os.arch(), | |
315 | + release: os.release(), | |
316 | + totalmem: os.totalmem(), | |
317 | + } | |
318 | + | |
319 | + res.render( | |
320 | + 'runtime-info.html', | |
321 | + { | |
322 | + title: 'Runtime Info', | |
323 | + config: JSON.stringify(config, null, 2), | |
324 | + nodejs_versions: JSON.stringify(process.versions, null, 2), | |
325 | + memory_usage: JSON.stringify(process.memoryUsage(), null, 2), | |
326 | + uptime: process.uptime(), | |
327 | + os_info: JSON.stringify(os_info, null, 2), | |
328 | + net_ifaces: JSON.stringify(os.networkInterfaces(), null, 2), | |
329 | + } | |
330 | + ); | |
331 | +} | |
332 | + | |
306 | 333 | app.all('/', authNeeded, pageHome); |
307 | 334 | app.get('/signin', pageSigninForm); |
308 | 335 | app.post('/signin', pageSigninPost); |
309 | 336 | app.get('/logout', logout); |
310 | 337 | |
338 | +app.get('/runtime-info', authNeeded, adminNeeded, pageRuntimeInfo); | |
339 | + | |
311 | 340 | app.get('/trx/view/:id', authNeeded, pageTrxView); |
312 | 341 | |
313 | 342 | app.get('/users', authNeeded, adminNeeded, usersController.index); |
... | ... | @@ -325,7 +354,6 @@ app.get('/users/:capability/delete/:user_id/', authNeeded, adminNeeded, usersCon |
325 | 354 | app.get('/users/:capability/add/:user_id/:user_email', authNeeded, adminNeeded, usersController.addCapabilityForm); |
326 | 355 | app.post('/users/:capability/add/:user_id/:user_email', authNeeded, adminNeeded, usersController.addCapability); |
327 | 356 | |
328 | - | |
329 | 357 | app.listen(config.listen_port, function () { |
330 | 358 | console.log('Example app listening on port ' + config.listen_port); |
331 | 359 | }); |
views/runtime-info.html
... | ... | @@ -0,0 +1,24 @@ |
1 | +{% extends "starter-template.html" %} | |
2 | + | |
3 | +{% block content %} | |
4 | + | |
5 | +<p> | |
6 | + Process uptime: {{ uptime }} seconds | |
7 | +</p> | |
8 | + | |
9 | +<h2 id="config">Config</h2> | |
10 | +<pre>{{ config }}</pre> | |
11 | + | |
12 | +<h2 id="memory">Memory Usage</h2> | |
13 | +<pre>{{ memory_usage }}</pre> | |
14 | + | |
15 | +<h2 id="nodejs_versions">Node.js Versions</h2> | |
16 | +<pre>{{ nodejs_versions }}</pre> | |
17 | + | |
18 | +<h2 id="os_info">OS</h2> | |
19 | +<pre>{{ os_info }}</pre> | |
20 | + | |
21 | +<h2 id="net_iface">Network Interfaces</h2> | |
22 | +<pre>{{ net_ifaces }}</pre> | |
23 | + | |
24 | +{% endblock %} |
views/starter-template.html
... | ... | @@ -48,6 +48,7 @@ |
48 | 48 | <div id="navbar" class="collapse navbar-collapse"> |
49 | 49 | <ul class="nav navbar-nav"> |
50 | 50 | <li><a href="/">Home</a></li> |
51 | + | |
51 | 52 | {% if session.isAdmin %} |
52 | 53 | <li class="dropdown"> |
53 | 54 | <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false"> |
... | ... | @@ -55,9 +56,11 @@ |
55 | 56 | </a> |
56 | 57 | <ul class="dropdown-menu"> |
57 | 58 | <li><a href="/users">Users</a></li> |
59 | + <li><a href="/runtime-info">Runtime info</a></li> | |
58 | 60 | </ul> |
59 | 61 | </li> |
60 | 62 | {% endif %} |
63 | + | |
61 | 64 | <li><a href="/logout">Logout</a></li> |
62 | 65 | </ul> |
63 | 66 | </div><!--/.nav-collapse --> |