rpc: fix ns/µs mismatch in metrics (#28649)

The rpc/duration/all meter was in nanoseconds, the individual meter in microseconds.
This PR changes it so both of them use nanoseconds.
This commit is contained in:
Martin HS 2023-12-08 09:40:50 +01:00 committed by zzzckck
parent 01a4b00a2b
commit 9badb15e80
2 changed files with 5 additions and 7 deletions

@ -225,20 +225,18 @@ func (t *StandardTimer) Time(f func()) {
t.Update(time.Since(ts))
}
// Record the duration of an event.
// Record the duration of an event, in nanoseconds.
func (t *StandardTimer) Update(d time.Duration) {
t.mutex.Lock()
defer t.mutex.Unlock()
t.histogram.Update(int64(d))
t.histogram.Update(d.Nanoseconds())
t.meter.Mark(1)
}
// Record the duration of an event that started at a time and ends now.
// The record uses nanoseconds.
func (t *StandardTimer) UpdateSince(ts time.Time) {
t.mutex.Lock()
defer t.mutex.Unlock()
t.histogram.Update(int64(time.Since(ts)))
t.meter.Mark(1)
t.Update(time.Since(ts))
}
// Variance returns the variance of the values in the sample.

@ -46,7 +46,7 @@ func updateServeTimeHistogram(method string, success bool, elapsed time.Duration
metrics.NewExpDecaySample(1028, 0.015),
)
}
metrics.GetOrRegisterHistogramLazy(h, nil, sampler).Update(elapsed.Microseconds())
metrics.GetOrRegisterHistogramLazy(h, nil, sampler).Update(elapsed.Nanoseconds())
}
func newRPCRequestGauge(method string) metrics.Gauge {