feat(middleware): export clientqueue_enqueued_total counter

Counts every request placed in a wait queue regardless of outcome, so the
total ever queued no longer has to be summed from queued, timeout and
canceled.
This commit is contained in:
Hein
2026-09-30 16:16:25 +02:00
parent 89a58ab3a0
commit 1214f69e0c
3 changed files with 35 additions and 0 deletions
+6
View File
@@ -70,6 +70,11 @@ var (
Help: "Requests currently waiting for a slot",
})
queueEnqueued = promauto.NewCounter(prometheus.CounterOpts{
Name: "clientqueue_enqueued_total",
Help: "Requests ever placed in a wait queue, whatever their outcome (ran, timed out or cancelled)",
})
queueWaitingClients = promauto.NewGauge(prometheus.GaugeOpts{
Name: "clientqueue_waiting_clients",
Help: "Clients currently with at least one request waiting for a slot",
@@ -286,6 +291,7 @@ func (q *ClientQueue) acquire(ctx context.Context, key string) error {
c.enter()
q.mu.Unlock()
queueDepth.Inc()
queueEnqueued.Inc()
timer := time.NewTimer(q.cfg.MaxWait)
defer timer.Stop()