1
0
Fork 0
mirror of https://github.com/Chocobozzz/PeerTube.git synced 2025-10-03 09:49:20 +02:00
Peertube/server/core/lib/opentelemetry/metric-helpers/job-queue-observers-builder.ts
2023-10-04 15:13:25 +02:00

24 lines
649 B
TypeScript

import { Meter } from '@opentelemetry/api'
import { JobQueue } from '@server/lib/job-queue/index.js'
export class JobQueueObserversBuilder {
constructor (private readonly meter: Meter) {
}
buildObservers () {
this.meter.createObservableGauge('peertube_job_queue_total', {
description: 'Total jobs in the PeerTube job queue'
}).addCallback(async observableResult => {
const stats = await JobQueue.Instance.getStats()
for (const { jobType, counts } of stats) {
for (const state of Object.keys(counts)) {
observableResult.observe(counts[state], { jobType, state })
}
}
})
}
}