-
Notifications
You must be signed in to change notification settings - Fork 76
/
metric.go
90 lines (85 loc) · 2.2 KB
/
metric.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
package dashboard_new
import (
"fmt"
"github.com/WeBankPartners/open-monitor/monitor-server/middleware"
"github.com/WeBankPartners/open-monitor/monitor-server/models"
"github.com/WeBankPartners/open-monitor/monitor-server/services/datasource"
"github.com/WeBankPartners/open-monitor/monitor-server/services/db"
"github.com/gin-gonic/gin"
)
func MetricList(c *gin.Context) {
id := c.Query("id")
endpointType := c.Query("endpointType")
serviceGroup := c.Query("serviceGroup")
result, err := db.MetricList(id, endpointType, serviceGroup)
if err != nil {
middleware.ReturnHandleError(c, err.Error(), err)
} else {
middleware.ReturnSuccessData(c, result)
}
}
func MetricCreate(c *gin.Context) {
var param []*models.MetricTable
if err := c.ShouldBindJSON(¶m); err != nil {
middleware.ReturnValidateError(c, err.Error())
return
}
var err error
for _, v := range param {
if middleware.IsIllegalName(v.Metric) {
err = fmt.Errorf("metric name illegal")
break
}
if err = datasource.CheckPrometheusQL(v.PromExpr); err != nil {
err = fmt.Errorf("表达式语法校验失败,%s", err.Error())
break
}
}
if err != nil {
middleware.ReturnValidateError(c, err.Error())
return
}
err = db.MetricCreate(param)
if err != nil {
middleware.ReturnHandleError(c, err.Error(), err)
} else {
middleware.ReturnSuccess(c)
}
}
func MetricUpdate(c *gin.Context) {
var param []*models.MetricTable
if err := c.ShouldBindJSON(¶m); err != nil {
middleware.ReturnValidateError(c, err.Error())
return
}
var err error
for _, v := range param {
if middleware.IsIllegalName(v.Metric) {
err = fmt.Errorf("metric name illegal")
break
}
if err = datasource.CheckPrometheusQL(v.PromExpr); err != nil {
err = fmt.Errorf("表达式语法校验失败,%s", err.Error())
break
}
}
if err != nil {
middleware.ReturnValidateError(c, err.Error())
return
}
err = db.MetricUpdate(param)
if err != nil {
middleware.ReturnHandleError(c, err.Error(), err)
} else {
middleware.ReturnSuccess(c)
}
}
func MetricDelete(c *gin.Context) {
id := c.Query("id")
err := db.MetricDelete(id)
if err != nil {
middleware.ReturnHandleError(c, err.Error(), err)
} else {
middleware.ReturnSuccess(c)
}
}