summaryrefslogtreecommitdiff
path: root/src/server/index.ts
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2018-09-15 05:40:58 +0900
committersyuilo <syuilotan@yahoo.co.jp>2018-09-15 05:40:58 +0900
commitc985fed3e43bae05f9e6e854f651f49f2bc3e83a (patch)
treee85c05f5192bef89b4380653b739db3a38804de2 /src/server/index.ts
parent8.39.0 (diff)
downloadsharkey-c985fed3e43bae05f9e6e854f651f49f2bc3e83a.tar.gz
sharkey-c985fed3e43bae05f9e6e854f651f49f2bc3e83a.tar.bz2
sharkey-c985fed3e43bae05f9e6e854f651f49f2bc3e83a.zip
Resolve #2328
Diffstat (limited to 'src/server/index.ts')
-rw-r--r--src/server/index.ts25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/server/index.ts b/src/server/index.ts
index f1fcf58c8d..dc60b0d9ec 100644
--- a/src/server/index.ts
+++ b/src/server/index.ts
@@ -11,11 +11,13 @@ import * as Router from 'koa-router';
import * as mount from 'koa-mount';
import * as compress from 'koa-compress';
import * as logger from 'koa-logger';
+const requestStats = require('request-stats');
//const slow = require('koa-slow');
import activityPub from './activitypub';
import webFinger from './webfinger';
import config from '../config';
+import { updateNetworkStats } from '../services/update-chart';
// Init app
const app = new Koa();
@@ -81,4 +83,27 @@ export default () => new Promise(resolve => {
// Listen
server.listen(config.port, resolve);
+
+ //#region Network stats
+ let queue: any[] = [];
+
+ requestStats(server, (stats: any) => {
+ if (stats.ok) {
+ queue.push(stats);
+ }
+ });
+
+ // Bulk write
+ setInterval(() => {
+ if (queue.length == 0) return;
+
+ const requests = queue.length;
+ const time = queue.reduce((a, b) => a + b.time, 0);
+ const incomingBytes = queue.reduce((a, b) => a + b.req.bytes, 0);
+ const outgoingBytes = queue.reduce((a, b) => a + b.res.bytes, 0);
+ queue = [];
+
+ updateNetworkStats(requests, time, incomingBytes, outgoingBytes);
+ }, 5000);
+ //#endregion
});