added ability to take heap snapshots

This commit is contained in:
barisusakli
2014-11-15 19:09:44 -05:00
parent 7825b8b951
commit 9ab74b0a61
3 changed files with 22 additions and 1 deletions

View File

@@ -30,6 +30,7 @@
"express-session": "^1.8.2",
"gm": "1.16.0",
"gravatar": "^1.1.0",
"heapdump": "^0.3.0",
"less": "^1.7.5",
"logrotate-stream": "^0.2.3",
"mkdirp": "~0.5.0",

View File

@@ -299,4 +299,8 @@ SocketAdmin.getVoters = function(socket, pid, callback) {
});
};
SocketAdmin.takeHeapSnapshot = function(socket, data, callback) {
require('heapdump').writeSnapshot(callback);
};
module.exports = SocketAdmin;

View File

@@ -2,7 +2,7 @@
<div class="col-lg-9">
<div class="panel panel-default">
<div class="panel-heading">Logger Settings</div>
<div class="panel-body">
<div class="panel-body">
<p>
By enabling the check boxes, you will receive logs to your terminal. If you specify a path, logs will then be saved to a file instead. HTTP logging is useful for collecting statistics about who, when, and what people access on your forum. In addition to logging HTTP requests, we can also log socket.io events. Socket.io logging, in combination with redis-cli monitor, can be very helpful for learning NodeBB's internals.
</p>
@@ -31,6 +31,13 @@
</form>
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading">Heap Snapshot</div>
<div class="panel-body">
<button class="btn btn-primary" id="heap-snapshot">Take Heap Snapshot</button>
</div>
</div>
</div>
<div class="col-lg-3">
@@ -47,5 +54,14 @@
<script>
require(['admin/settings'], function(Settings) {
Settings.prepare();
$('#heap-snapshot').on('click', function() {
socket.emit('admin.takeHeapSnapshot', function(err, filename) {
if (err) {
return app.alertError(err.message);
}
app.alertSuccess('Heap Snapshot saved! ' + filename);
});
})
});
</script>