From bbad7fc0f35de109f6cac1a60b69151b262c0dcb Mon Sep 17 00:00:00 2001 From: Dan Bryan Date: Tue, 16 Dec 2025 19:29:45 -0500 Subject: [PATCH] fix(rpc): use ResettingTimer for RPC duration metrics The rpc/duration/all metric was using metrics.NewRegisteredTimer which accumulates samples over the entire process lifetime. When exported to Prometheus, quantile values grow to millions of seconds (displayed as years). Switch to NewRegisteredResettingTimer which resets its sample buffer on each Prometheus scrape, ensuring quantile calculations use recent data only. --- rpc/metrics.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rpc/metrics.go b/rpc/metrics.go index ef7449ce05..6910c865cf 100644 --- a/rpc/metrics.go +++ b/rpc/metrics.go @@ -31,7 +31,7 @@ var ( // serveTimeHistName is the prefix of the per-request serving time histograms. serveTimeHistName = "rpc/duration" - rpcServingTimer = metrics.NewRegisteredTimer("rpc/duration/all", nil) + rpcServingTimer = metrics.NewRegisteredResettingTimer("rpc/duration/all", nil) ) // updateServeTimeHistogram tracks the serving time of a remote RPC call.