metrics: make meter updates lock-free (#21446)

This commit is contained in:
Marius van der Wijden
2020-08-18 11:27:04 +02:00
committed by GitHub
parent 54add42550
commit f3bafecef7
3 changed files with 37 additions and 38 deletions

View File

@ -17,7 +17,7 @@ func TestGetOrRegisterMeter(t *testing.T) {
r := NewRegistry()
NewRegisteredMeter("foo", r).Mark(47)
if m := GetOrRegisterMeter("foo", r); m.Count() != 47 {
t.Fatal(m)
t.Fatal(m.Count())
}
}
@ -29,10 +29,11 @@ func TestMeterDecay(t *testing.T) {
defer ma.ticker.Stop()
m := newStandardMeter()
ma.meters[m] = struct{}{}
go ma.tick()
m.Mark(1)
ma.tickMeters()
rateMean := m.RateMean()
time.Sleep(100 * time.Millisecond)
ma.tickMeters()
if m.RateMean() >= rateMean {
t.Error("m.RateMean() didn't decrease")
}