Przeglądaj źródła

feat(alerting): add frequency back to alert model

bergquist 9 lat temu
rodzic
commit
e8a324c7f5

+ 1 - 0
pkg/models/alert.go

@@ -16,6 +16,7 @@ type Alert struct {
 	State       string
 	Handler     int64
 	Enabled     bool
+	Frequency   int64
 
 	Created time.Time
 	Updated time.Time

+ 1 - 0
pkg/services/alerting/extractor.go

@@ -78,6 +78,7 @@ func (e *DashAlertExtractor) GetAlerts() ([]*m.Alert, error) {
 				Handler:     jsonAlert.Get("handler").MustInt64(),
 				Enabled:     jsonAlert.Get("enabled").MustBool(),
 				Description: jsonAlert.Get("description").MustString(),
+				Frequency:   getTimeDurationStringToSeconds(jsonAlert.Get("frequency").MustString()),
 			}
 
 			valueQuery := jsonAlert.Get("query")

+ 5 - 0
pkg/services/alerting/extractor_test.go

@@ -215,6 +215,11 @@ func TestAlertRuleExtraction(t *testing.T) {
 					So(alerts[1].Handler, ShouldEqual, 0)
 				})
 
+				Convey("should extract frequency in seconds", func() {
+					So(alerts[0].Frequency, ShouldEqual, 60)
+					So(alerts[1].Frequency, ShouldEqual, 60)
+				})
+
 				Convey("should extract panel idc", func() {
 					So(alerts[0].PanelId, ShouldEqual, 3)
 					So(alerts[1].PanelId, ShouldEqual, 4)

+ 2 - 0
pkg/services/sqlstore/alert_test.go

@@ -22,6 +22,7 @@ func TestAlertingDataAccess(t *testing.T) {
 				Name:        "Alerting title",
 				Description: "Alerting description",
 				Settings:    simplejson.New(),
+				Frequency:   1,
 			},
 		}
 
@@ -52,6 +53,7 @@ func TestAlertingDataAccess(t *testing.T) {
 			So(alert.Name, ShouldEqual, "Alerting title")
 			So(alert.Description, ShouldEqual, "Alerting description")
 			So(alert.State, ShouldEqual, "OK")
+			So(alert.Frequency, ShouldEqual, 1)
 		})
 
 		Convey("Alerts with same dashboard id and panel id should update", func() {

+ 1 - 0
pkg/services/sqlstore/migrations/alert_mig.go

@@ -17,6 +17,7 @@ func addAlertMigrations(mg *Migrator) {
 			{Name: "description", Type: DB_NVarchar, Length: 255, Nullable: false},
 			{Name: "state", Type: DB_NVarchar, Length: 255, Nullable: false},
 			{Name: "settings", Type: DB_Text, Nullable: false},
+			{Name: "frequency", Type: DB_BigInt, Nullable: false},
 			{Name: "handler", Type: DB_BigInt, Nullable: false},
 			{Name: "enabled", Type: DB_Bool, Nullable: false},
 			{Name: "created", Type: DB_DateTime, Nullable: false},