app/vmselect/promql: do not return 0 value from sum_over_time(m[d]) when there are no samples on the given d window.

This aligns the behaviour of `sum_over_time()` with other `_over_time()` functions and with Prometheus behavior.
This commit is contained in:
Aliaksandr Valialkin 2020-12-02 13:11:32 +02:00
parent 490c70a958
commit def513355e

View File

@ -1142,11 +1142,11 @@ func rollupSum(rfa *rollupFuncArg) float64 {
// before calling rollup funcs.
values := rfa.values
if len(values) == 0 {
if math.IsNaN(rfa.prevValue) {
// Do not take into account rfa.prevValue, since it may lead
// to inconsistent results comparing to Prometheus on broken time series
// with irregular data points.
return nan
}
return 0
}
var sum float64
for _, v := range values {
sum += v