diff --git a/packages/hydrooj/package.json b/packages/hydrooj/package.json index 1b350afc2..42c9c362a 100644 --- a/packages/hydrooj/package.json +++ b/packages/hydrooj/package.json @@ -1,6 +1,6 @@ { "name": "hydrooj", - "version": "3.15.17", + "version": "3.15.18", "bin": "bin/hydrooj.js", "main": "src/loader", "module": "src/loader", diff --git a/packages/hydrooj/src/service/server.ts b/packages/hydrooj/src/service/server.ts index 369c2b49c..df14af2ce 100644 --- a/packages/hydrooj/src/service/server.ts +++ b/packages/hydrooj/src/service/server.ts @@ -416,9 +416,10 @@ export function Connection( }; } conn.onclose = () => { - h.cleanup?.(args); bus.emit('connection/close', h); + h.cleanup?.(args); }; + bus.emit('connection/active', h); } catch (e) { await h.onerror(e); } diff --git a/packages/prom-client/metrics.ts b/packages/prom-client/metrics.ts index a66ff8161..e8483eeb2 100644 --- a/packages/prom-client/metrics.ts +++ b/packages/prom-client/metrics.ts @@ -8,7 +8,7 @@ export const registry = new Registry(); registry.setDefaultLabels({ instanceid: process.env.NODE_APP_INSTANCE }); function createMetric Metric)>( C: T, name: string, help: string, extra?: T extends new (a: infer R) => any ? Partial : never, -): T extends new (a) => Counter ? Counter : T extends new (a) => Gauge ? Gauge : Metric { +): T extends (new (a) => Gauge) ? Gauge : T extends (new (a) => Counter) ? Counter : Metric { const metric = new C({ name, help, ...(extra || {}) }); registry.registerMetric(metric); return metric as any; @@ -38,11 +38,11 @@ bus.on('handler/after/ProblemSubmit', (that) => { const connectionGauge = createMetric(Gauge, 'hydro_connection', 'connectioncount', { labelNames: ['domainId'], }); -bus.on('connection/create', (h) => { +bus.on('connection/active', (h) => { connectionGauge.inc({ domainId: h.args.domainId }); }); bus.on('connection/close', (h) => { - connectionGauge.inc({ domainId: h.args.domainId }, -1); + connectionGauge.dec({ domainId: h.args.domainId }); }); const taskColl = db.collection('task'); diff --git a/packages/prom-client/package.json b/packages/prom-client/package.json index 819400e33..3e5c576da 100644 --- a/packages/prom-client/package.json +++ b/packages/prom-client/package.json @@ -1,6 +1,6 @@ { "name": "@hydrooj/prom-client", - "version": "0.0.2", + "version": "0.0.3", "dependencies": { "prom-client": "^14.0.1" }