From 01d9879ebf84da3aece70437a0a2124f2191e799 Mon Sep 17 00:00:00 2001 From: undefined Date: Sun, 4 Sep 2022 23:20:47 +0800 Subject: [PATCH] core: telemetry: add dbVersion --- packages/center/handler.ts | 1 + packages/center/package.json | 2 +- packages/hydrooj/src/service/monitor.ts | 23 +++++++++++++---------- 3 files changed, 15 insertions(+), 11 deletions(-) diff --git a/packages/center/handler.ts b/packages/center/handler.ts index 8ad14e9f..5da14967 100644 --- a/packages/center/handler.ts +++ b/packages/center/handler.ts @@ -48,6 +48,7 @@ class DataReportHandler extends Handler { discussionCount: payload.discussionCount, recordCount: payload.recordCount, sandbox: payload.sandbox, + dbVersion: payload.dbVersion, }, }, { upsert: true }); bus.emit('center/report', this, installId, old, payload); diff --git a/packages/center/package.json b/packages/center/package.json index ec676a34..317e0b0d 100644 --- a/packages/center/package.json +++ b/packages/center/package.json @@ -1,6 +1,6 @@ { "name": "@hydrooj/center", - "version": "0.1.1", + "version": "0.1.2", "main": "package.json", "repository": "https://github.com/hydro-dev/Hydro.git", "author": "undefined ", diff --git a/packages/hydrooj/src/service/monitor.ts b/packages/hydrooj/src/service/monitor.ts index 8c888c65..b737e4bb 100644 --- a/packages/hydrooj/src/service/monitor.ts +++ b/packages/hydrooj/src/service/monitor.ts @@ -31,14 +31,7 @@ export async function feedback(): Promise<[string, StatusUpdate]> { document.coll.find({ docType: document.TYPE_DISCUSSION }).count(), record.coll.find().count(), ]); - let sandbox = ''; - try { - let host = system.get('hydrojudge.sandbox_host') || 'http://localhost:5050/'; - if (!host.endsWith('/')) host += '/'; - const res = await superagent.get(`${host}version`); - sandbox = res.body; - } catch (e) { } - const payload = crypt(dump({ + const info: Record = { mid: mid.toString(), version, name, @@ -52,8 +45,18 @@ export async function feedback(): Promise<[string, StatusUpdate]> { memory: inf.memory, osinfo: inf.osinfo, cpu: inf.cpu, - sandbox, - }, { + }; + try { + let host = system.get('hydrojudge.sandbox_host') || 'http://localhost:5050/'; + if (!host.endsWith('/')) host += '/'; + const res = await superagent.get(`${host}version`); + info.sandbox = res.body; + } catch (e) { } + try { + const status = await db.db.admin().serverStatus(); + info.dbVersion = status.version; + } catch (e) { } + const payload = crypt(dump(info, { replacer: (key, value) => { if (typeof value === 'function') return ''; return value;