Browse Source

adds db migration for debounce_duration

bergquist 7 years ago
parent
commit
2d3a575489
3 changed files with 19 additions and 14 deletions
  1. 14 13
      pkg/models/alert.go
  2. 1 1
      pkg/services/alerting/rule.go
  3. 4 0
      pkg/services/sqlstore/migrations/alert_mig.go

+ 14 - 13
pkg/models/alert.go

@@ -59,19 +59,20 @@ func (s ExecutionErrorOption) ToAlertState() AlertStateType {
 }
 
 type Alert struct {
-	Id             int64
-	Version        int64
-	OrgId          int64
-	DashboardId    int64
-	PanelId        int64
-	Name           string
-	Message        string
-	Severity       string
-	State          AlertStateType
-	Handler        int64
-	Silenced       bool
-	ExecutionError string
-	Frequency      int64
+	Id               int64
+	Version          int64
+	OrgId            int64
+	DashboardId      int64
+	PanelId          int64
+	Name             string
+	Message          string
+	Severity         string //Unused
+	State            AlertStateType
+	Handler          int64 //Unused
+	Silenced         bool
+	ExecutionError   string
+	Frequency        int64
+	DebounceDuration time.Duration
 
 	EvalData     *simplejson.Json
 	NewStateDate time.Time

+ 1 - 1
pkg/services/alerting/rule.go

@@ -104,7 +104,7 @@ func NewRuleFromDBAlert(ruleDef *m.Alert) (*Rule, error) {
 	model.Frequency = ruleDef.Frequency
 	model.State = ruleDef.State
 	model.LastStateChange = ruleDef.NewStateDate
-	model.DebounceDuration = time.Minute * 2 // hard coded for now
+	model.DebounceDuration = time.Duration(ruleDef.DebounceDuration)
 	model.NoDataState = m.NoDataOption(ruleDef.Settings.Get("noDataState").MustString("no_data"))
 	model.ExecutionErrorState = m.ExecutionErrorOption(ruleDef.Settings.Get("executionErrorState").MustString("alerting"))
 	model.StateChanges = ruleDef.StateChanges

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

@@ -133,4 +133,8 @@ func addAlertMigrations(mg *Migrator) {
 	mg.AddMigration("create alert_notification_state table v1", NewAddTableMigration(alert_notification_state))
 	mg.AddMigration("add index alert_notification_state org_id & alert_id & notifier_id",
 		NewAddIndexMigration(alert_notification_state, alert_notification_state.Indices[0]))
+
+	mg.AddMigration("Add decounce_duration to alert table", NewAddColumnMigration(alertV1, &Column{
+		Name: "debounce_duration", Type: DB_BigInt, Nullable: true,
+	}))
 }