parent
7209da192f
commit
3a3ad5d9d9
|
@ -74,7 +74,62 @@ func ConfigsSet(ckey, cval string) error {
|
|||
return err
|
||||
}
|
||||
|
||||
func ConfigsGets(ckeys []string) (map[string]string, error) {
|
||||
func ConfigGet(id int64) (*Configs, error) {
|
||||
var objs []*Configs
|
||||
err := DB().Where("id=?", id).Find(&objs).Error
|
||||
|
||||
if len(objs) == 0 {
|
||||
return nil, nil
|
||||
}
|
||||
return objs[0], err
|
||||
}
|
||||
|
||||
func ConfigsGets(prefix string, limit, offset int) ([]*Configs, error) {
|
||||
var objs []*Configs
|
||||
session := DB()
|
||||
if prefix != "" {
|
||||
session = session.Where("ckey like ?", prefix+"%")
|
||||
}
|
||||
|
||||
err := session.Order("id desc").Limit(limit).Offset(offset).Find(&objs).Error
|
||||
return objs, err
|
||||
}
|
||||
|
||||
func (c *Configs) Add() error {
|
||||
num, err := Count(DB().Model(&Configs{}).Where("ckey=?", c.Ckey))
|
||||
if err != nil {
|
||||
return errors.WithMessage(err, "failed to count configs")
|
||||
}
|
||||
if num > 0 {
|
||||
return errors.WithMessage(err, "key is exists")
|
||||
}
|
||||
|
||||
// insert
|
||||
err = DB().Create(&Configs{
|
||||
Ckey: c.Ckey,
|
||||
Cval: c.Cval,
|
||||
}).Error
|
||||
return err
|
||||
}
|
||||
|
||||
func (c *Configs) Update() error {
|
||||
num, err := Count(DB().Model(&Configs{}).Where("id<>? and ckey=?", c.Id, c.Ckey))
|
||||
if err != nil {
|
||||
return errors.WithMessage(err, "failed to count configs")
|
||||
}
|
||||
if num > 0 {
|
||||
return errors.WithMessage(err, "key is exists")
|
||||
}
|
||||
|
||||
err = DB().Model(&Configs{}).Where("id=?", c.Id).Updates(c).Error
|
||||
return err
|
||||
}
|
||||
|
||||
func ConfigsDel(ids []int64) error {
|
||||
return DB().Where("id in ?", ids).Delete(&Configs{}).Error
|
||||
}
|
||||
|
||||
func ConfigsGetsByKey(ckeys []string) (map[string]string, error) {
|
||||
var objs []Configs
|
||||
err := DB().Where("ckey in ?", ckeys).Find(&objs).Error
|
||||
if err != nil {
|
||||
|
|
|
@ -175,7 +175,7 @@ func (r *RuleEval) Work() {
|
|||
|
||||
var value model.Value
|
||||
var err error
|
||||
if r.rule.Algorithm == "" && (r.rule.Cate == "" || r.rule.Cate == "prometheus") {
|
||||
if r.rule.Algorithm == "" && (r.rule.Cate == "" || strings.ToLower(r.rule.Cate) == "prometheus") {
|
||||
var warnings prom.Warnings
|
||||
value, warnings, err = readerClient.Query(context.Background(), promql, time.Now())
|
||||
if err != nil {
|
||||
|
|
|
@ -324,5 +324,11 @@ func configRoute(r *gin.Engine, version string) {
|
|||
service.GET("/alert-cur-events", alertCurEventsList)
|
||||
service.GET("/alert-his-events", alertHisEventsList)
|
||||
service.GET("/alert-his-event/:eid", alertHisEventGet)
|
||||
|
||||
service.GET("/config/:id", configGet)
|
||||
service.GET("/configs", configsGet)
|
||||
service.PUT("/configs", configsPut)
|
||||
service.POST("/configs", configsPost)
|
||||
service.DELETE("/configs", configsDel)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,49 @@
|
|||
package router
|
||||
|
||||
import (
|
||||
"github.com/didi/nightingale/v5/src/models"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/toolkits/pkg/ginx"
|
||||
)
|
||||
|
||||
func configsGet(c *gin.Context) {
|
||||
prefix := ginx.QueryStr(c, "prefix", "")
|
||||
limit := ginx.QueryInt(c, "limit", 10)
|
||||
configs, err := models.ConfigsGets(prefix, limit, ginx.Offset(c, limit))
|
||||
ginx.NewRender(c).Data(configs, err)
|
||||
}
|
||||
|
||||
func configGet(c *gin.Context) {
|
||||
id := ginx.UrlParamInt64(c, "id")
|
||||
configs, err := models.ConfigGet(id)
|
||||
ginx.NewRender(c).Data(configs, err)
|
||||
}
|
||||
|
||||
func configsDel(c *gin.Context) {
|
||||
var f idsForm
|
||||
ginx.BindJSON(c, &f)
|
||||
ginx.NewRender(c).Message(models.ConfigsDel(f.Ids))
|
||||
}
|
||||
|
||||
func configsPut(c *gin.Context) {
|
||||
var arr []models.Configs
|
||||
ginx.BindJSON(c, &arr)
|
||||
|
||||
for i := 0; i < len(arr); i++ {
|
||||
ginx.Dangerous(arr[i].Update())
|
||||
}
|
||||
|
||||
ginx.NewRender(c).Message(nil)
|
||||
}
|
||||
|
||||
func configsPost(c *gin.Context) {
|
||||
var arr []models.Configs
|
||||
ginx.BindJSON(c, &arr)
|
||||
|
||||
for i := 0; i < len(arr); i++ {
|
||||
ginx.Dangerous(arr[i].Add())
|
||||
}
|
||||
|
||||
ginx.NewRender(c).Message(nil)
|
||||
}
|
Loading…
Reference in New Issue