Fix jobmanager's metrics to use gauges

Using samples is better for a dynamic value such as the latency of
various jobs. For values such as total number of jobs and queue size,
using a gauge is better.

Signed-off-by: Alexander Scheel <ascheel@gitlab.com>
This commit is contained in:
Alexander Scheel
2025-12-16 13:46:32 -06:00
committed by Alexander Scheel
parent 9c23708d40
commit 7007e657f6

View File

@@ -121,8 +121,8 @@ func (j *JobManager) AddJob(job Job, queueID string) {
j.totalJobs++
if j.metricSink != nil {
j.metricSink.AddSampleWithLabels([]string{j.name, "job_manager", "queue_length"}, float32(j.queues[queueID].Len()), []metrics.Label{{Name: "queue_id", Value: queueID}})
j.metricSink.AddSample([]string{j.name, "job_manager", "total_jobs"}, float32(j.totalJobs))
j.metricSink.SetGaugeWithLabels([]string{j.name, "job_manager", "queue_length"}, float32(j.queues[queueID].Len()), []metrics.Label{{Name: "queue_id", Value: queueID}})
j.metricSink.SetGauge([]string{j.name, "job_manager", "total_jobs"}, float32(j.totalJobs))
}
}
@@ -181,8 +181,8 @@ func (j *JobManager) getNextJob() (Job, string) {
j.totalJobs--
if j.metricSink != nil {
j.metricSink.AddSampleWithLabels([]string{j.name, "job_manager", "queue_length"}, float32(j.queues[queueID].Len()), []metrics.Label{{Name: "queue_id", Value: queueID}})
j.metricSink.AddSample([]string{j.name, "job_manager", "total_jobs"}, float32(j.totalJobs))
j.metricSink.SetGaugeWithLabels([]string{j.name, "job_manager", "queue_length"}, float32(j.queues[queueID].Len()), []metrics.Label{{Name: "queue_id", Value: queueID}})
j.metricSink.SetGauge([]string{j.name, "job_manager", "total_jobs"}, float32(j.totalJobs))
}
if j.queues[queueID].Len() == 0 {