Commit a7be3b91 by Carl Bergquist Committed by GitHub

Merge pull request #6499 from utkarshcmu/last

Added last function for alerting conditions
parents 5bbdd99d 841fb74b
...@@ -62,6 +62,15 @@ func (s *SimpleReducer) Reduce(series *tsdb.TimeSeries) null.Float { ...@@ -62,6 +62,15 @@ func (s *SimpleReducer) Reduce(series *tsdb.TimeSeries) null.Float {
case "count": case "count":
value = float64(len(series.Points)) value = float64(len(series.Points))
allNull = false allNull = false
case "last":
points := series.Points
for i := len(points) - 1; i >= 0; i-- {
if points[i][0].Valid {
value = points[i][0].Float64
allNull = false
break
}
}
} }
if allNull { if allNull {
......
...@@ -35,6 +35,12 @@ func TestSimpleReducer(t *testing.T) { ...@@ -35,6 +35,12 @@ func TestSimpleReducer(t *testing.T) {
result := testReducer("count", 1, 2, 3000) result := testReducer("count", 1, 2, 3000)
So(result, ShouldEqual, float64(3)) So(result, ShouldEqual, float64(3))
}) })
Convey("last", func() {
result := testReducer("last", 1, 2, 3000)
So(result, ShouldEqual, float64(3000))
})
}) })
} }
......
...@@ -34,6 +34,7 @@ var reducerTypes = [ ...@@ -34,6 +34,7 @@ var reducerTypes = [
{text: 'max()', value: 'max'}, {text: 'max()', value: 'max'},
{text: 'sum()' , value: 'sum'}, {text: 'sum()' , value: 'sum'},
{text: 'count()', value: 'count'}, {text: 'count()', value: 'count'},
{text: 'last()', value: 'last'},
]; ];
var noDataModes = [ var noDataModes = [
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment