Sharkey/src/server/api/endpoints/stats.ts

59 lines
1.4 KiB
TypeScript
Raw Normal View History

2018-11-02 06:47:44 +02:00
import define from '../define';
import driveChart from '../../../services/chart/drive';
import federationChart from '../../../services/chart/federation';
import fetchMeta from '../../../misc/fetch-meta';
2017-08-12 09:17:03 +03:00
2018-11-02 06:47:44 +02:00
export const meta = {
requireCredential: false,
desc: {
'en-US': 'Get the instance\'s statistics'
},
tags: ['meta'],
2018-11-02 06:47:44 +02:00
params: {
2019-02-24 20:30:22 +02:00
},
res: {
type: 'object',
properties: {
notesCount: {
type: 'number',
description: 'The count of all (local/remote) notes of this instance.',
},
originalNotesCount: {
type: 'number',
description: 'The count of all local notes of this instance.',
},
usersCount: {
type: 'number',
description: 'The count of all (local/remote) accounts of this instance.',
},
originalUsersCount: {
type: 'number',
description: 'The count of all local accounts of this instance.',
},
instances: {
type: 'number',
description: 'The count of federated instances.',
},
}
2018-11-02 06:47:44 +02:00
}
};
export default define(meta, async () => {
const instance = await fetchMeta();
2017-08-12 09:17:03 +03:00
const stats: any = instance.stats;
2018-11-03 04:37:44 +02:00
const driveStats = await driveChart.getChart('hour', 1);
stats.driveUsageLocal = driveStats.local.totalSize[0];
stats.driveUsageRemote = driveStats.remote.totalSize[0];
const federationStats = await federationChart.getChart('hour', 1);
stats.instances = federationStats.instance.total[0];
return stats;
});