ServerStatsStore.ts 1.3 KB

123456789101112131415161718192021222324
  1. import { types, getEnv, flow } from 'mobx-state-tree';
  2. import { ServerStat } from './ServerStat';
  3. export const ServerStatsStore = types
  4. .model('ServerStatsStore', {
  5. stats: types.array(ServerStat),
  6. error: types.optional(types.string, ''),
  7. })
  8. .actions(self => ({
  9. load: flow(function* load() {
  10. const backendSrv = getEnv(self).backendSrv;
  11. const res = yield backendSrv.get('/api/admin/stats');
  12. self.stats.clear();
  13. self.stats.push(ServerStat.create({ name: 'Total dashboards', value: res.dashboards }));
  14. self.stats.push(ServerStat.create({ name: 'Total users', value: res.users }));
  15. self.stats.push(ServerStat.create({ name: 'Active users (seen last 30 days)', value: res.activeUsers }));
  16. self.stats.push(ServerStat.create({ name: 'Total orgs', value: res.orgs }));
  17. self.stats.push(ServerStat.create({ name: 'Total playlists', value: res.playlists }));
  18. self.stats.push(ServerStat.create({ name: 'Total snapshots', value: res.snapshots }));
  19. self.stats.push(ServerStat.create({ name: 'Total dashboard tags', value: res.tags }));
  20. self.stats.push(ServerStat.create({ name: 'Total starred dashboards', value: res.stars }));
  21. self.stats.push(ServerStat.create({ name: 'Total alerts', value: res.alerts }));
  22. }),
  23. }));