From 47c581c5f864e535c7cc8552d2366a7bccfc0c4b Mon Sep 17 00:00:00 2001 From: Miodec Date: Thu, 9 Feb 2023 15:27:55 +0100 Subject: [PATCH] recording time to complete job closes #3965 --- backend/src/utils/prometheus.ts | 21 +++++++++++++++++++++ backend/src/workers/later-worker.ts | 3 ++- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/backend/src/utils/prometheus.ts b/backend/src/utils/prometheus.ts index b90a4bd8b..0f8e0b4bd 100644 --- a/backend/src/utils/prometheus.ts +++ b/backend/src/utils/prometheus.ts @@ -291,3 +291,24 @@ export function setQueueLength( ): void { queueLength.set({ queueName, countType }, length); } + +const timeToCompleteJobTotal = new Counter({ + name: "time_to_complete_job_total", + help: "Time to complete a job total", + labelNames: ["queueName", "jobName"], +}); + +const timeToCompleteJobCount = new Counter({ + name: "time_to_complete_job_count", + help: "Time to complete a job count", + labelNames: ["queueName", "jobName"], +}); + +export function recordTimeToCompleteJob( + queueName: string, + jobName: string, + time: number +): void { + timeToCompleteJobTotal.inc({ queueName, jobName }, time); + timeToCompleteJobCount.inc({ queueName, jobName }); +} diff --git a/backend/src/workers/later-worker.ts b/backend/src/workers/later-worker.ts index 2f8ac1514..db90eef40 100644 --- a/backend/src/workers/later-worker.ts +++ b/backend/src/workers/later-worker.ts @@ -9,6 +9,7 @@ import { DailyLeaderboard } from "../utils/daily-leaderboards"; import { getCachedConfiguration } from "../init/configuration"; import { getOrdinalNumberString, mapRange } from "../utils/misc"; import LaterQueue, { LaterTask } from "../queues/later-queue"; +import { recordTimeToCompleteJob } from "../utils/prometheus"; interface DailyLeaderboardMailContext { yesterdayTimestamp: number; @@ -110,7 +111,7 @@ async function jobHandler(job: Job): Promise { } const elapsed = performance.now() - start; - + recordTimeToCompleteJob(LaterQueue.queueName, taskName, elapsed); Logger.success(`Job: ${taskName} - completed in ${elapsed}ms`); }