promql: handle NaN in changes() correctly

This commit is contained in:
Fabian Reinartz 2016-09-30 10:46:58 +02:00
parent 0c64ad1a3d
commit ccbce0c51f
2 changed files with 10 additions and 1 deletions

View File

@ -788,7 +788,7 @@ func funcChanges(ev *evaluator, args Expressions) model.Value {
prev := model.SampleValue(samples.Values[0].Value)
for _, sample := range samples.Values[1:] {
current := sample.Value
if current != prev {
if current != prev && !(math.IsNaN(float64(current)) && math.IsNaN(float64(prev))) {
changes++
}
prev = current

View File

@ -50,6 +50,15 @@ eval instant at 50m changes(http_requests[50m])
eval instant at 50m changes(nonexistent_metric[50m])
clear
load 5m
x{a="b"} NaN NaN NaN
x{a="c"} 0 NaN 0
eval instant at 15m changes(x[15m])
{a="b"} 0
{a="c"} 2
clear