summaryrefslogtreecommitdiff
path: root/src/server-stats.ts
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2018-06-09 01:45:25 +0900
committersyuilo <syuilotan@yahoo.co.jp>2018-06-09 01:45:25 +0900
commit6eff8fde74e01fa3527585ec1fbd3629d51bc97a (patch)
tree55c39e88edb7e68f1928554b85bd036c96bc7ed8 /src/server-stats.ts
parentMerge pull request #1685 from 2vg/patch-1 (diff)
downloadmisskey-6eff8fde74e01fa3527585ec1fbd3629d51bc97a.tar.gz
misskey-6eff8fde74e01fa3527585ec1fbd3629d51bc97a.tar.bz2
misskey-6eff8fde74e01fa3527585ec1fbd3629d51bc97a.zip
サーバーの統計情報をメモリに記憶するようにするなど
Diffstat (limited to 'src/server-stats.ts')
-rw-r--r--src/server-stats.ts36
1 files changed, 36 insertions, 0 deletions
diff --git a/src/server-stats.ts b/src/server-stats.ts
new file mode 100644
index 0000000000..85aa85b682
--- /dev/null
+++ b/src/server-stats.ts
@@ -0,0 +1,36 @@
+import * as os from 'os';
+const osUtils = require('os-utils');
+import * as diskusage from 'diskusage';
+import Xev from 'xev';
+
+const ev = new Xev();
+
+/**
+ * Report stats regularly
+ */
+export default function() {
+ const log = [];
+
+ ev.on('requestServerStatsLog', id => {
+ ev.emit('serverStatsLog:' + id, log);
+ });
+
+ setInterval(() => {
+ osUtils.cpuUsage(cpuUsage => {
+ const disk = diskusage.checkSync(os.platform() == 'win32' ? 'c:' : '/');
+ const stats = {
+ cpu_usage: cpuUsage,
+ mem: {
+ total: os.totalmem(),
+ free: os.freemem()
+ },
+ disk,
+ os_uptime: os.uptime(),
+ process_uptime: process.uptime()
+ };
+ ev.emit('serverStats', stats);
+ log.push(stats);
+ if (log.length > 50) log.shift();
+ });
+ }, 1000);
+}