Migrate metrics to prometheus (#17810)

<img width="1316" height="611" alt="image"
src="https://github.com/user-attachments/assets/277a63ed-2a8b-41ff-be78-281de8891579"
/>
This commit is contained in:
Charles Bochet
2026-02-09 19:09:13 +01:00
committed by GitHub
parent aa7973e5b8
commit 37b9a55382
42 changed files with 391 additions and 180 deletions
@@ -52,15 +52,17 @@ export class BullMQDriver
) {}
onModuleInit() {
this.metricsService.createObservableGauge(
'twenty_queue_jobs_waiting_total',
{ description: 'Current number of jobs waiting in queue' },
async (observableResult) => {
this.metricsService.createObservableGauge({
metricName: 'twenty_queue_jobs_waiting_total',
options: { description: 'Current number of jobs waiting in queue' },
callback: async () => {
let totalWaiting = 0;
for (const [queueName, queue] of Object.entries(this.queueMap)) {
try {
const waitingCount = await queue.count();
observableResult.observe(waitingCount, { queue: queueName });
totalWaiting += waitingCount;
} catch (error) {
this.logger.error(
`Failed to collect waiting jobs metrics for queue ${queueName}`,
@@ -68,8 +70,10 @@ export class BullMQDriver
);
}
}
return totalWaiting;
},
);
});
}
register(queueName: MessageQueue): void {