metrics: zero temp variable in updateMeter (#21470)
* metrics: zero temp variable in updateMeter Previously the temp variable was not updated properly after summing it to count. This meant we had astronomically high metrics, now we zero out the temp whenever we sum it onto the snapshot count * metrics: move temp variable to be aligned, unit tests Moves the temp variable in MeterSnapshot to be 64-bit aligned because of the atomic bug. Adds a unit test, that catches the previous bug.
This commit is contained in:
committed by
GitHub
parent
a70a79b285
commit
4e54b1a45e
@ -73,3 +73,19 @@ func TestMeterZero(t *testing.T) {
|
||||
t.Errorf("m.Count(): 0 != %v\n", count)
|
||||
}
|
||||
}
|
||||
|
||||
func TestMeterRepeat(t *testing.T) {
|
||||
m := NewMeter()
|
||||
for i := 0; i < 101; i++ {
|
||||
m.Mark(int64(i))
|
||||
}
|
||||
if count := m.Count(); count != 5050 {
|
||||
t.Errorf("m.Count(): 5050 != %v\n", count)
|
||||
}
|
||||
for i := 0; i < 101; i++ {
|
||||
m.Mark(int64(i))
|
||||
}
|
||||
if count := m.Count(); count != 10100 {
|
||||
t.Errorf("m.Count(): 10100 != %v\n", count)
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user