Fixes histograms becoming empty after loaded from checkpoints
This commit is contained in:
parent
200a292f8a
commit
d10948211f
|
|
@ -277,6 +277,7 @@ func (h *histogram) LoadFromCheckpoint(checkpoint *vpa_types.HistogramCheckpoint
|
|||
h.bucketWeight[bucket] += float64(weight) * ratio
|
||||
}
|
||||
h.totalWeight += checkpoint.TotalWeight
|
||||
h.updateMinAndMaxBucket()
|
||||
|
||||
return nil
|
||||
}
|
||||
|
|
|
|||
|
|
@ -264,6 +264,21 @@ func TestHistogramLoadFromCheckpointReturnsErrorOnNilInput(t *testing.T) {
|
|||
assert.Error(t, err)
|
||||
}
|
||||
|
||||
func TestHistogramIsNotEmptyAfterSavingAndLoadingCheckpointsWithBoundaryValues(t *testing.T) {
|
||||
histogram := NewHistogram(testHistogramOptions)
|
||||
histogram.AddSample(1, weightEpsilon, anyTime)
|
||||
histogram.AddSample(2, (float64(MaxCheckpointWeight)*weightEpsilon - weightEpsilon), anyTime)
|
||||
assert.False(t, histogram.IsEmpty())
|
||||
|
||||
checkpoint, err := histogram.SaveToChekpoint()
|
||||
assert.NoError(t, err)
|
||||
|
||||
newHistogram := NewHistogram(testHistogramOptions)
|
||||
err = newHistogram.LoadFromCheckpoint(checkpoint)
|
||||
assert.NoError(t, err)
|
||||
assert.False(t, newHistogram.IsEmpty())
|
||||
}
|
||||
|
||||
func areUnique(values ...interface{}) bool {
|
||||
dict := make(map[interface{}]bool)
|
||||
for i, v := range values {
|
||||
|
|
|
|||
Loading…
Reference in New Issue