forked from mirrors/misskey
* wip * wip * wip * wip * wip * Update chart.ts * wip * Improve server performance * wip * wip
46 lines
1.2 KiB
TypeScript
46 lines
1.2 KiB
TypeScript
import autobind from 'autobind-decorator';
|
|
import Chart, { DeepPartial } from '../../core';
|
|
import { SchemaType } from '../../../../misc/schema';
|
|
import { name, schema } from '../schemas/network';
|
|
|
|
type NetworkLog = SchemaType<typeof schema>;
|
|
|
|
export default class NetworkChart extends Chart<NetworkLog> {
|
|
constructor() {
|
|
super(name, schema);
|
|
}
|
|
|
|
@autobind
|
|
protected genNewLog(latest: NetworkLog): DeepPartial<NetworkLog> {
|
|
return {};
|
|
}
|
|
|
|
@autobind
|
|
protected aggregate(logs: NetworkLog[]): NetworkLog {
|
|
return {
|
|
incomingRequests: logs.reduce((a, b) => a + b.incomingRequests, 0),
|
|
outgoingRequests: logs.reduce((a, b) => a + b.outgoingRequests, 0),
|
|
totalTime: logs.reduce((a, b) => a + b.totalTime, 0),
|
|
incomingBytes: logs.reduce((a, b) => a + b.incomingBytes, 0),
|
|
outgoingBytes: logs.reduce((a, b) => a + b.outgoingBytes, 0),
|
|
};
|
|
}
|
|
|
|
@autobind
|
|
protected async fetchActual(): Promise<DeepPartial<NetworkLog>> {
|
|
return {};
|
|
}
|
|
|
|
@autobind
|
|
public async update(incomingRequests: number, time: number, incomingBytes: number, outgoingBytes: number) {
|
|
const inc: DeepPartial<NetworkLog> = {
|
|
incomingRequests: incomingRequests,
|
|
totalTime: time,
|
|
incomingBytes: incomingBytes,
|
|
outgoingBytes: outgoingBytes
|
|
};
|
|
|
|
await this.inc(inc);
|
|
}
|
|
}
|