summaryrefslogtreecommitdiff
path: root/src/services/chart/charts/classes/instance.ts
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2021-03-18 11:17:05 +0900
committerGitHub <noreply@github.com>2021-03-18 11:17:05 +0900
commit4f249159d310d4296753fcfe8e2bbd390fd9002b (patch)
tree9b483af801a15048265531bcba811c5eb185fb2d /src/services/chart/charts/classes/instance.ts
parentadd note (diff)
downloadmisskey-4f249159d310d4296753fcfe8e2bbd390fd9002b.tar.gz
misskey-4f249159d310d4296753fcfe8e2bbd390fd9002b.tar.bz2
misskey-4f249159d310d4296753fcfe8e2bbd390fd9002b.zip
Improve chart performance (#7360)
* wip * wip * wip * wip * wip * Update chart.ts * wip * Improve server performance * wip * wip
Diffstat (limited to 'src/services/chart/charts/classes/instance.ts')
-rw-r--r--src/services/chart/charts/classes/instance.ts44
1 files changed, 44 insertions, 0 deletions
diff --git a/src/services/chart/charts/classes/instance.ts b/src/services/chart/charts/classes/instance.ts
index 7575abfb6f..c32b864d87 100644
--- a/src/services/chart/charts/classes/instance.ts
+++ b/src/services/chart/charts/classes/instance.ts
@@ -37,6 +37,50 @@ export default class InstanceChart extends Chart<InstanceLog> {
}
@autobind
+ protected aggregate(logs: InstanceLog[]): InstanceLog {
+ return {
+ requests: {
+ failed: logs.reduce((a, b) => a + b.requests.failed, 0),
+ succeeded: logs.reduce((a, b) => a + b.requests.succeeded, 0),
+ received: logs.reduce((a, b) => a + b.requests.received, 0),
+ },
+ notes: {
+ total: logs[0].notes.total,
+ inc: logs.reduce((a, b) => a + b.notes.inc, 0),
+ dec: logs.reduce((a, b) => a + b.notes.dec, 0),
+ diffs: {
+ reply: logs.reduce((a, b) => a + b.notes.diffs.reply, 0),
+ renote: logs.reduce((a, b) => a + b.notes.diffs.renote, 0),
+ normal: logs.reduce((a, b) => a + b.notes.diffs.normal, 0),
+ },
+ },
+ users: {
+ total: logs[0].users.total,
+ inc: logs.reduce((a, b) => a + b.users.inc, 0),
+ dec: logs.reduce((a, b) => a + b.users.dec, 0),
+ },
+ following: {
+ total: logs[0].following.total,
+ inc: logs.reduce((a, b) => a + b.following.inc, 0),
+ dec: logs.reduce((a, b) => a + b.following.dec, 0),
+ },
+ followers: {
+ total: logs[0].followers.total,
+ inc: logs.reduce((a, b) => a + b.followers.inc, 0),
+ dec: logs.reduce((a, b) => a + b.followers.dec, 0),
+ },
+ drive: {
+ totalFiles: logs[0].drive.totalFiles,
+ totalUsage: logs[0].drive.totalUsage,
+ incFiles: logs.reduce((a, b) => a + b.drive.incFiles, 0),
+ incUsage: logs.reduce((a, b) => a + b.drive.incUsage, 0),
+ decFiles: logs.reduce((a, b) => a + b.drive.decFiles, 0),
+ decUsage: logs.reduce((a, b) => a + b.drive.decUsage, 0),
+ },
+ };
+ }
+
+ @autobind
protected async fetchActual(group: string): Promise<DeepPartial<InstanceLog>> {
const [
notesCount,