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:
parent
77c4bbcaa5
commit
5a45e7a631
@ -106,20 +106,18 @@ func (t *StandardTimer) Time(f func()) {
|
|||||||
t.Update(time.Since(ts))
|
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) {
|
func (t *StandardTimer) Update(d time.Duration) {
|
||||||
t.mutex.Lock()
|
t.mutex.Lock()
|
||||||
defer t.mutex.Unlock()
|
defer t.mutex.Unlock()
|
||||||
t.histogram.Update(int64(d))
|
t.histogram.Update(d.Nanoseconds())
|
||||||
t.meter.Mark(1)
|
t.meter.Mark(1)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Record the duration of an event that started at a time and ends now.
|
// 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) {
|
func (t *StandardTimer) UpdateSince(ts time.Time) {
|
||||||
t.mutex.Lock()
|
t.Update(time.Since(ts))
|
||||||
defer t.mutex.Unlock()
|
|
||||||
t.histogram.Update(int64(time.Since(ts)))
|
|
||||||
t.meter.Mark(1)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// timerSnapshot is a read-only copy of another Timer.
|
// timerSnapshot is a read-only copy of another Timer.
|
||||||
|
@ -46,5 +46,5 @@ func updateServeTimeHistogram(method string, success bool, elapsed time.Duration
|
|||||||
metrics.NewExpDecaySample(1028, 0.015),
|
metrics.NewExpDecaySample(1028, 0.015),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
metrics.GetOrRegisterHistogramLazy(h, nil, sampler).Update(elapsed.Microseconds())
|
metrics.GetOrRegisterHistogramLazy(h, nil, sampler).Update(elapsed.Nanoseconds())
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user