1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-09-10 17:53:36 +02:00

Use Map and Set

This commit is contained in:
Gastón Fournier 2024-10-15 10:44:15 +02:00
parent 3cbbefff1d
commit d16b17b2bd
No known key found for this signature in database
GPG Key ID: AF45428626E17A8E

View File

@ -15,16 +15,17 @@ type GaugeDefinition<T> = {
map: MapResult<T>; map: MapResult<T>;
}; };
type Task = () => Promise<void>;
export class DbMetricsMonitor { export class DbMetricsMonitor {
private tasks: (() => Promise<void>)[] = []; private tasks: Set<Task> = new Set();
private gauges: Record<string, Gauge<string>> = {}; private gauges: Map<string, Gauge<string>> = new Map();
constructor() {} constructor() {}
registerGaugeDbMetric<T>(definition: GaugeDefinition<T>) { registerGaugeDbMetric<T>(definition: GaugeDefinition<T>) {
const gauge = createGauge(definition); const gauge = createGauge(definition);
this.gauges[definition.name] = gauge; this.gauges.set(definition.name, gauge);
this.tasks.push(async () => { this.tasks.add(async () => {
const result = await definition.query(); const result = await definition.query();
if (result) { if (result) {
const { count, labels } = definition.map(result); const { count, labels } = definition.map(result);