diff --git a/package.json b/package.json index 06787f9b1f..ebf8a998f0 100644 --- a/package.json +++ b/package.json @@ -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", diff --git a/src/socket.io/admin.js b/src/socket.io/admin.js index d759e9cbb8..c55e04a5ad 100644 --- a/src/socket.io/admin.js +++ b/src/socket.io/admin.js @@ -299,4 +299,8 @@ SocketAdmin.getVoters = function(socket, pid, callback) { }); }; +SocketAdmin.takeHeapSnapshot = function(socket, data, callback) { + require('heapdump').writeSnapshot(callback); +}; + module.exports = SocketAdmin; diff --git a/src/views/admin/development/logger.tpl b/src/views/admin/development/logger.tpl index 4d23da5313..826f9e5bcc 100644 --- a/src/views/admin/development/logger.tpl +++ b/src/views/admin/development/logger.tpl @@ -2,7 +2,7 @@
Logger Settings
-
+

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.

@@ -31,6 +31,13 @@
+ +
+
Heap Snapshot
+
+ +
+
@@ -47,5 +54,14 @@