mirror of https://github.com/grafana/grafana
parent
6b8921c8c5
commit
91a1a823e2
@ -0,0 +1,50 @@ |
||||
package models |
||||
|
||||
import ( |
||||
//"github.com/grafana/grafana/pkg/components/simplejson"
|
||||
) |
||||
|
||||
type Alert struct { |
||||
Id int64 |
||||
DashboardId int64 |
||||
PanelId int64 |
||||
Query string |
||||
QueryRefId string |
||||
WarnLevel int64 |
||||
ErrorLevel int64 |
||||
CheckInterval string |
||||
Title string |
||||
Description string |
||||
QueryRange string |
||||
} |
||||
|
||||
func (cmd *SaveDashboardCommand) GetAlertModels() *[]Alert { |
||||
dash := NewDashboardFromJson(cmd.Dashboard) |
||||
|
||||
alerts := make([]Alert, 0) |
||||
|
||||
alerts = append(alerts, Alert{ |
||||
DashboardId: dash.Id, |
||||
Id: 1, |
||||
PanelId: 1, |
||||
Query: "", |
||||
QueryRefId: "", |
||||
WarnLevel: 0, |
||||
ErrorLevel: 0, |
||||
CheckInterval: "5s", |
||||
Title: dash.Title + " Alert", |
||||
Description: dash.Title + " Description", |
||||
QueryRange: "10m", |
||||
}) |
||||
|
||||
return &alerts |
||||
} |
||||
|
||||
// Commands
|
||||
type SaveAlertsCommand struct { |
||||
DashboardId int64 |
||||
UserId int64 |
||||
OrgId int64 |
||||
|
||||
Alerts *[]Alert |
||||
} |
||||
@ -0,0 +1,28 @@ |
||||
package sqlstore |
||||
|
||||
import ( |
||||
"fmt" |
||||
|
||||
"github.com/go-xorm/xorm" |
||||
"github.com/grafana/grafana/pkg/bus" |
||||
m "github.com/grafana/grafana/pkg/models" |
||||
) |
||||
|
||||
func init() { |
||||
bus.AddHandler("sql", SaveAlerts) |
||||
} |
||||
|
||||
func SaveAlerts(cmd *m.SaveAlertsCommand) error { |
||||
return inTransaction(func(sess *xorm.Session) error { |
||||
fmt.Printf("Saving alerts for dashboard %v\n", cmd.DashboardId) |
||||
|
||||
for _, alert := range *cmd.Alerts { |
||||
_, err := x.Insert(&alert) |
||||
if err != nil { |
||||
return err |
||||
} |
||||
} |
||||
|
||||
return nil |
||||
}) |
||||
} |
||||
@ -0,0 +1,27 @@ |
||||
package migrations |
||||
|
||||
import . "github.com/grafana/grafana/pkg/services/sqlstore/migrator" |
||||
|
||||
func addAlertMigrations(mg *Migrator) { |
||||
mg.AddMigration("Drop old table alert table", NewDropTableMigration("alert")) |
||||
|
||||
alertV1 := Table{ |
||||
Name: "alert", |
||||
Columns: []*Column{ |
||||
{Name: "id", Type: DB_BigInt, IsPrimaryKey: true, IsAutoIncrement: true}, |
||||
{Name: "dashboard_id", Type: DB_BigInt, Nullable: false}, |
||||
{Name: "panel_id", Type: DB_BigInt, Nullable: false}, |
||||
{Name: "query", Type: DB_Text, Nullable: false}, |
||||
{Name: "query_ref_id", Type: DB_NVarchar, Length: 255, Nullable: false}, |
||||
{Name: "warn_level", Type: DB_NVarchar, Length: 255, Nullable: false}, |
||||
{Name: "error_level", Type: DB_NVarchar, Length: 255, Nullable: false}, |
||||
{Name: "check_interval", Type: DB_NVarchar, Length: 255, Nullable: false}, |
||||
{Name: "title", Type: DB_NVarchar, Length: 255, Nullable: false}, |
||||
{Name: "description", Type: DB_NVarchar, Length: 255, Nullable: false}, |
||||
{Name: "query_range", Type: DB_NVarchar, Length: 255, Nullable: false}, |
||||
}, |
||||
} |
||||
|
||||
// create table
|
||||
mg.AddMigration("create alert table v1", NewAddTableMigration(alertV1)) |
||||
} |
||||
Loading…
Reference in new issue