mirror of
https://github.com/VictoriaMetrics/VictoriaMetrics.git
synced 2024-11-21 14:44:00 +00:00
app/vmselect/promql: fix when the parameter of maxValue()
, minValue()
leading by NaN
. it will cause {top,bottom}k_{max,min}
return inappropriate result (#883)
This commit is contained in:
parent
5943f49f60
commit
43823addea
1 changed files with 24 additions and 6 deletions
|
@ -740,12 +740,21 @@ func minValue(values []float64) float64 {
|
|||
if len(values) == 0 {
|
||||
return nan
|
||||
}
|
||||
min := values[0]
|
||||
for _, v := range values[1:] {
|
||||
if v < min {
|
||||
aNumberFounded := false
|
||||
var min float64
|
||||
for _, v := range values {
|
||||
if !math.IsNaN(v) && !aNumberFounded {
|
||||
min = v
|
||||
aNumberFounded = true
|
||||
continue
|
||||
}
|
||||
if !math.IsNaN(v) && v < min {
|
||||
min = v
|
||||
}
|
||||
}
|
||||
if !aNumberFounded {
|
||||
return nan
|
||||
}
|
||||
return min
|
||||
}
|
||||
|
||||
|
@ -753,12 +762,21 @@ func maxValue(values []float64) float64 {
|
|||
if len(values) == 0 {
|
||||
return nan
|
||||
}
|
||||
max := values[0]
|
||||
for _, v := range values[1:] {
|
||||
if v > max {
|
||||
aNumberFounded := false
|
||||
var max float64
|
||||
for _, v := range values {
|
||||
if !math.IsNaN(v) && !aNumberFounded {
|
||||
max = v
|
||||
aNumberFounded = true
|
||||
continue
|
||||
}
|
||||
if !math.IsNaN(v) && v > max {
|
||||
max = v
|
||||
}
|
||||
}
|
||||
if !aNumberFounded {
|
||||
return nan
|
||||
}
|
||||
return max
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue