From 204ec415b46a137b2a50be2f25e37102eae2b87a Mon Sep 17 00:00:00 2001 From: Aliaksandr Valialkin Date: Fri, 11 Sep 2020 11:29:55 +0300 Subject: [PATCH] app/vmselect: skip infinite values when calculating smooth_exponential Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/757 --- app/vmselect/promql/transform.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/app/vmselect/promql/transform.go b/app/vmselect/promql/transform.go index f900b51991..b1e3e18660 100644 --- a/app/vmselect/promql/transform.go +++ b/app/vmselect/promql/transform.go @@ -1030,6 +1030,12 @@ func transformSmoothExponential(tfa *transformFuncArg) ([]*timeseries, error) { rvs := args[0] for _, ts := range rvs { values := skipLeadingNaNs(ts.Values) + for i, v := range values { + if !math.IsInf(v, 0) { + values = values[i:] + break + } + } if len(values) == 0 { continue } @@ -1037,7 +1043,7 @@ func transformSmoothExponential(tfa *transformFuncArg) ([]*timeseries, error) { values = values[1:] sfsX := sfs[len(ts.Values)-len(values):] for i, v := range values { - if math.IsNaN(v) { + if math.IsNaN(v) || math.IsInf(v, 0) { continue } sf := sfsX[i]