summaryrefslogtreecommitdiff
path: root/src/server/index.ts
diff options
context:
space:
mode:
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
});