diff options
| author | syuilo <Syuilotan@yahoo.co.jp> | 2021-03-18 11:17:05 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-03-18 11:17:05 +0900 |
| commit | 4f249159d310d4296753fcfe8e2bbd390fd9002b (patch) | |
| tree | 9b483af801a15048265531bcba811c5eb185fb2d /src/services/chart/charts/classes/instance.ts | |
| parent | add note (diff) | |
| download | misskey-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.ts | 44 |
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, |