瀏覽代碼

fix(alerting): fixes bug in query conditions

bergquist 9 年之前
父節點
當前提交
9511f89a22
共有 2 個文件被更改,包括 15 次插入2 次删除
  1. 2 2
      pkg/services/alerting/conditions/query.go
  2. 13 0
      pkg/services/alerting/conditions/query_test.go

+ 2 - 2
pkg/services/alerting/conditions/query.go

@@ -55,13 +55,13 @@ func (c *QueryCondition) Eval(context *alerting.EvalContext) {
 			})
 		}
 
-		context.Firing = evalMatch
-
 		// handle no data scenario
 		if reducedValue == nil {
 			context.NoDataFound = true
 		}
 	}
+
+	context.Firing = len(context.EvalMatches) > 0
 }
 
 func (c *QueryCondition) executeQuery(context *alerting.EvalContext) (tsdb.TimeSeriesSlice, error) {

+ 13 - 0
pkg/services/alerting/conditions/query_test.go

@@ -59,6 +59,19 @@ func TestQueryCondition(t *testing.T) {
 				So(ctx.result.Error, ShouldBeNil)
 				So(ctx.result.Firing, ShouldBeFalse)
 			})
+
+			Convey("Should fire if only first serie matches", func() {
+				one := float64(120)
+				two := float64(0)
+				ctx.series = tsdb.TimeSeriesSlice{
+					tsdb.NewTimeSeries("test1", [][2]*float64{{&one, &two}}),
+					tsdb.NewTimeSeries("test2", [][2]*float64{{&two, &two}}),
+				}
+				ctx.exec()
+
+				So(ctx.result.Error, ShouldBeNil)
+				So(ctx.result.Firing, ShouldBeTrue)
+			})
 		})
 	})
 }