2016-06-10 03:00:00 -05:00
|
|
|
package sqlstore
|
|
|
|
|
|
|
|
import (
|
|
|
|
"testing"
|
|
|
|
|
|
|
|
"github.com/grafana/grafana/pkg/components/simplejson"
|
|
|
|
m "github.com/grafana/grafana/pkg/models"
|
|
|
|
"github.com/grafana/grafana/pkg/services/alerting"
|
|
|
|
. "github.com/smartystreets/goconvey/convey"
|
|
|
|
)
|
|
|
|
|
|
|
|
func TestAlertRuleModelParsing(t *testing.T) {
|
|
|
|
|
|
|
|
Convey("Parsing alertRule from expression", t, func() {
|
2016-06-11 03:26:48 -05:00
|
|
|
alertRuleDAO := &m.Alert{}
|
2016-06-10 03:00:00 -05:00
|
|
|
json, _ := simplejson.NewJson([]byte(`
|
|
|
|
{
|
2016-06-10 06:13:23 -05:00
|
|
|
"frequency": 10,
|
|
|
|
"warning": {
|
|
|
|
"op": ">",
|
|
|
|
"level": 10
|
|
|
|
},
|
2016-06-10 03:00:00 -05:00
|
|
|
"critical": {
|
2016-06-10 06:13:23 -05:00
|
|
|
"op": ">",
|
|
|
|
"level": 20
|
2016-06-10 03:00:00 -05:00
|
|
|
},
|
2016-06-10 06:13:23 -05:00
|
|
|
"query": {
|
2016-06-10 06:41:01 -05:00
|
|
|
"refId": "A",
|
2016-06-10 03:00:00 -05:00
|
|
|
"from": "5m",
|
2016-06-10 06:13:23 -05:00
|
|
|
"to": "now",
|
|
|
|
"datasourceId": 1,
|
|
|
|
"query": "aliasByNode(statsd.fakesite.counters.session_start.*.count, 4)"
|
2016-06-10 03:00:00 -05:00
|
|
|
},
|
2016-06-10 06:13:23 -05:00
|
|
|
"transform": {
|
2016-06-10 06:41:01 -05:00
|
|
|
"type": "aggregation",
|
2016-06-10 06:13:23 -05:00
|
|
|
"method": "avg"
|
2016-06-10 06:41:01 -05:00
|
|
|
}
|
|
|
|
}`))
|
2016-06-10 03:00:00 -05:00
|
|
|
|
|
|
|
alertRuleDAO.Name = "Test"
|
|
|
|
alertRuleDAO.Expression = json
|
2016-06-10 06:41:01 -05:00
|
|
|
rule, _ := alerting.ConvetAlertModelToAlertRule(alertRuleDAO)
|
2016-06-10 03:00:00 -05:00
|
|
|
|
|
|
|
Convey("Confirm that all properties are set", func() {
|
2016-06-10 06:13:23 -05:00
|
|
|
So(rule.Query.Query, ShouldEqual, "aliasByNode(statsd.fakesite.counters.session_start.*.count, 4)")
|
|
|
|
So(rule.Query.From, ShouldEqual, "5m")
|
|
|
|
So(rule.Query.To, ShouldEqual, "now")
|
|
|
|
So(rule.Query.DatasourceId, ShouldEqual, 1)
|
2016-06-10 03:00:00 -05:00
|
|
|
So(rule.Warning.Level, ShouldEqual, 10)
|
|
|
|
So(rule.Warning.Operator, ShouldEqual, ">")
|
|
|
|
So(rule.Critical.Level, ShouldEqual, 20)
|
|
|
|
So(rule.Critical.Operator, ShouldEqual, ">")
|
|
|
|
})
|
|
|
|
})
|
|
|
|
}
|