vmagent: add metric for persistentqueue capacity

This commit adds new metric `vm_persistentqueue_free_disk_space_bytes`, which helps
to track free space for persistent queue.

part of implementation for
https://github.com/VictoriaMetrics/VictoriaMetrics/issues/10193
This commit is contained in:
JAYICE
2026-01-08 18:07:28 +08:00
committed by GitHub
parent 46e13fe0ca
commit 89f95f74ed
2 changed files with 11 additions and 0 deletions

View File

@@ -7,6 +7,7 @@ import (
"github.com/VictoriaMetrics/VictoriaMetrics/lib/bytesutil"
"github.com/VictoriaMetrics/VictoriaMetrics/lib/fasttime"
"github.com/VictoriaMetrics/VictoriaMetrics/lib/fs"
"github.com/VictoriaMetrics/VictoriaMetrics/lib/logger"
"github.com/VictoriaMetrics/metrics"
)
@@ -63,6 +64,15 @@ func MustOpenFastQueue(path, name string, maxInmemoryBlocks int, maxPendingBytes
return float64(n)
})
_ = metrics.GetOrCreateGauge(fmt.Sprintf(`vm_persistentqueue_free_disk_space_bytes{path=%q}`, path), func() float64 {
freeSpaceBytes := fs.MustGetFreeSpace(path)
// Limited by disk space if remoteWrite.maxDiskUsagePerURL wasn't set
if maxPendingBytes == 0 {
return float64(freeSpaceBytes)
}
return min(float64(maxPendingBytes), float64(freeSpaceBytes))
})
pendingBytes := fq.GetPendingBytes()
persistenceStatus := "enabled"
if isPQDisabled {