From 52458a485837d635c515093ddab9b94c7f26b030 Mon Sep 17 00:00:00 2001 From: akrem-chabchoub Date: Fri, 31 Jul 2026 13:54:38 +0200 Subject: [PATCH] feat(puller): add pullsync rate metric --- pkg/puller/metrics.go | 9 ++++++++- pkg/puller/puller.go | 5 +++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/pkg/puller/metrics.go b/pkg/puller/metrics.go index bfa546f26e0..952f8f6967e 100644 --- a/pkg/puller/metrics.go +++ b/pkg/puller/metrics.go @@ -15,9 +15,10 @@ type metrics struct { SyncedCounter *prometheus.CounterVec // number of synced chunks SyncWorkerErrCounter prometheus.Counter // count number of errors MaxUintErrCounter prometheus.Counter // how many times we got maxuint as topmost + PullsyncRate prometheus.GaugeFunc // rate of historical syncing } -func newMetrics() metrics { +func newMetrics(pullsyncRate func() float64) metrics { subsystem := "puller" return metrics{ @@ -51,6 +52,12 @@ func newMetrics() metrics { Name: "max_uint_errors", Help: "Total max uint errors.", }), + PullsyncRate: prometheus.NewGaugeFunc(prometheus.GaugeOpts{ + Namespace: m.Namespace, + Subsystem: subsystem, + Name: "pullsync_rate", + Help: "Rate of historical syncing in chunks.", + }, pullsyncRate), } } diff --git a/pkg/puller/puller.go b/pkg/puller/puller.go index 9248f82ec7c..012af8d5759 100644 --- a/pkg/puller/puller.go +++ b/pkg/puller/puller.go @@ -124,18 +124,19 @@ func New( if o.Bins != 0 { bins = o.Bins } + histRate := rate.New(DefaultHistRateWindow) p := &Puller{ base: addr, statestore: stateStore, topology: topology, radius: reserveState, syncer: pullSync, - metrics: newMetrics(), + metrics: newMetrics(histRate.Rate), logger: logger.WithName(loggerName).Register(), syncPeers: make(map[string]*syncPeer), bins: bins, blockLister: blockLister, - rate: rate.New(DefaultHistRateWindow), + rate: histRate, cancel: func() { /* Noop, since the context is initialized in the Start(). */ }, limiter: ratelimit.NewLimiter(ratelimit.Every(time.Second/maxChunksPerSecond), maxChunksPerSecond), }