summaryrefslogtreecommitdiff
path: root/src/chart/network.ts
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2018-10-23 05:36:35 +0900
committersyuilo <syuilotan@yahoo.co.jp>2018-10-23 05:36:35 +0900
commit7c7f32d9a6597fdc7bea02da0cfd4a843fd32d22 (patch)
treea67396d881993b4240b49f288594b827ef58531c /src/chart/network.ts
parentfix(package): update file-type to version 10.1.0 (#2984) (diff)
downloadsharkey-7c7f32d9a6597fdc7bea02da0cfd4a843fd32d22.tar.gz
sharkey-7c7f32d9a6597fdc7bea02da0cfd4a843fd32d22.tar.bz2
sharkey-7c7f32d9a6597fdc7bea02da0cfd4a843fd32d22.zip
Refactoring
Diffstat (limited to 'src/chart/network.ts')
-rw-r--r--src/chart/network.ts64
1 files changed, 64 insertions, 0 deletions
diff --git a/src/chart/network.ts b/src/chart/network.ts
new file mode 100644
index 0000000000..fce47099d1
--- /dev/null
+++ b/src/chart/network.ts
@@ -0,0 +1,64 @@
+import autobind from 'autobind-decorator';
+import Chart, { Partial } from './';
+
+/**
+ * ネットワークに関するチャート
+ */
+type NetworkLog = {
+ /**
+ * 受信したリクエスト数
+ */
+ incomingRequests: number;
+
+ /**
+ * 送信したリクエスト数
+ */
+ outgoingRequests: number;
+
+ /**
+ * 応答時間の合計
+ * TIP: (totalTime / incomingRequests) でひとつのリクエストに平均でどれくらいの時間がかかったか知れる
+ */
+ totalTime: number;
+
+ /**
+ * 合計受信データ量
+ */
+ incomingBytes: number;
+
+ /**
+ * 合計送信データ量
+ */
+ outgoingBytes: number;
+};
+
+class NetworkChart extends Chart<NetworkLog> {
+ constructor() {
+ super('network');
+ }
+
+ @autobind
+ protected async getTemplate(init: boolean, latest?: NetworkLog): Promise<NetworkLog> {
+ return {
+ incomingRequests: 0,
+ outgoingRequests: 0,
+ totalTime: 0,
+ incomingBytes: 0,
+ outgoingBytes: 0
+ };
+ }
+
+ @autobind
+ public async update(incomingRequests: number, time: number, incomingBytes: number, outgoingBytes: number) {
+ const inc: Partial<NetworkLog> = {
+ incomingRequests: incomingRequests,
+ totalTime: time,
+ incomingBytes: incomingBytes,
+ outgoingBytes: outgoingBytes
+ };
+
+ await this.inc(inc);
+ }
+}
+
+export default new NetworkChart();