Skip to content

Commit a91c61c

Browse files
author
tangjiawei
committed
#830 custom template add string_code_map
1 parent be3fdcb commit a91c61c

File tree

4 files changed

+44
-14
lines changed

4 files changed

+44
-14
lines changed

monitor-server/api/v2/service/log_metric.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -661,7 +661,7 @@ func CheckLogMonitorRegExpMatch(c *gin.Context) {
661661
middleware.ReturnValidateError(c, err.Error())
662662
return
663663
}
664-
result := []*models.LogParamTemplateObj{}
664+
var result []*models.LogParamTemplateObj
665665
for _, v := range param.ParamList {
666666
_, v.DemoMatchValue = db.CheckRegExpMatchPCRE(models.CheckRegExpParam{RegString: v.Regular, TestContext: param.DemoLog})
667667
result = append(result, v)
@@ -985,7 +985,7 @@ func LogMonitorTemplateExport(c *gin.Context) {
985985
middleware.ReturnHandleError(c, err.Error(), err)
986986
return
987987
}
988-
resultData := []*models.LogMonitorTemplateDto{}
988+
var resultData []*models.LogMonitorTemplateDto
989989
for _, v := range param.GuidList {
990990
templateObj, tmpErr := db.GetLogMonitorTemplate(v)
991991
if tmpErr != nil {

monitor-server/models/log_metric.go

+10-9
Original file line numberDiff line numberDiff line change
@@ -77,15 +77,16 @@ type LogMetricConfigDto struct {
7777
}
7878

7979
type LogMetricStringMapTable struct {
80-
Guid string `json:"guid" xorm:"guid"`
81-
LogMetricConfig string `json:"log_metric_config" xorm:"log_metric_config"`
82-
LogMetricGroup string `json:"log_metric_group" xorm:"log_metric_group"`
83-
LogParamName string `json:"log_param_name" xorm:"log_param_name"`
84-
ValueType string `json:"value_type" xorm:"value_type"`
85-
SourceValue string `json:"source_value" xorm:"source_value"`
86-
Regulative int `json:"regulative" xorm:"regulative"`
87-
TargetValue string `json:"target_value" xorm:"target_value"`
88-
UpdateTime string `json:"update_time" xorm:"update_time"`
80+
Guid string `json:"guid" xorm:"guid"`
81+
LogMetricConfig string `json:"log_metric_config" xorm:"log_metric_config"`
82+
LogMetricGroup string `json:"log_metric_group" xorm:"log_metric_group"`
83+
LogMonitorTemplate string `json:"log_monitor_template" xorm:"log_monitor_template"`
84+
LogParamName string `json:"log_param_name" xorm:"log_param_name"`
85+
ValueType string `json:"value_type" xorm:"value_type"`
86+
SourceValue string `json:"source_value" xorm:"source_value"`
87+
Regulative int `json:"regulative" xorm:"regulative"`
88+
TargetValue string `json:"target_value" xorm:"target_value"`
89+
UpdateTime string `json:"update_time" xorm:"update_time"`
8990
}
9091

9192
type LogMetricEndpointRelTable struct {

monitor-server/models/log_template.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ func (l *LogMetricTemplate) TransToLogMetric() (output *LogMetricConfigDto) {
9797
type LogMonitorTemplateDto struct {
9898
LogMonitorTemplate
9999
CalcResultObj *CheckRegExpResult `json:"calc_result"`
100-
ParamList []*LogParamTemplate `json:"param_list"`
100+
ParamList []*LogParamTemplateObj `json:"param_list"`
101101
MetricList []*LogMetricTemplate `json:"metric_list"`
102102
Permission *LogMonitorTemplatePermission `json:"permission"`
103103
LogMonitorTemplateVersion string `json:"log_monitor_template_version"`

monitor-server/services/db/log_template.go

+31-2
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ func GetLogMonitorTemplate(logMonitorTemplateGuid string) (result *models.LogMon
5959
}
6060
logMonitorTemplateRow.CreateTimeString = logMonitorTemplateRow.CreateTime.Format(models.DatetimeFormat)
6161
logMonitorTemplateRow.UpdateTimeString = logMonitorTemplateRow.UpdateTime.Format(models.DatetimeFormat)
62-
result = &models.LogMonitorTemplateDto{LogMonitorTemplate: *logMonitorTemplateRow, CalcResultObj: &models.CheckRegExpResult{}, ParamList: []*models.LogParamTemplate{}, MetricList: []*models.LogMetricTemplate{}}
62+
result = &models.LogMonitorTemplateDto{LogMonitorTemplate: *logMonitorTemplateRow, CalcResultObj: &models.CheckRegExpResult{}, ParamList: []*models.LogParamTemplateObj{}, MetricList: []*models.LogMetricTemplate{}}
6363
result.LogMonitorTemplateVersion = logMonitorTemplateRow.UpdateTime.Format(models.DatetimeDigitFormat)
6464
if result.CalcResult != "" {
6565
if err = json.Unmarshal([]byte(result.CalcResult), result.CalcResultObj); err != nil {
@@ -73,8 +73,31 @@ func GetLogMonitorTemplate(logMonitorTemplateGuid string) (result *models.LogMon
7373
err = fmt.Errorf("query log_param_template table fail,%s ", err.Error())
7474
return
7575
}
76+
var logMetricStringMaps []*models.LogMetricStringMapTable
77+
var stringCodeMap = make(map[string][]*models.LogMetricStringMapTable)
78+
err = x.SQL("select * from log_metric_string_map where log_monitor_template=?", logMonitorTemplateGuid).Find(&logMetricStringMaps)
79+
if err != nil {
80+
err = fmt.Errorf("query log_metric_string_map table fail,%s ", err.Error())
81+
return
82+
}
83+
for _, logMetricString := range logMetricStringMaps {
84+
if arr, ok := stringCodeMap[logMetricString.LogParamName]; ok {
85+
arr = append(arr, logMetricString)
86+
} else {
87+
stringCodeMap[logMetricString.LogParamName] = []*models.LogMetricStringMapTable{logMetricString}
88+
}
89+
}
7690
for _, row := range logParamRows {
77-
result.ParamList = append(result.ParamList, row)
91+
if row == nil {
92+
continue
93+
}
94+
logParamTemplateObj := &models.LogParamTemplateObj{
95+
LogParamTemplate: *row,
96+
}
97+
if v, ok := stringCodeMap[row.Name]; ok {
98+
logParamTemplateObj.StringMap = v
99+
}
100+
result.ParamList = append(result.ParamList, logParamTemplateObj)
78101
}
79102
var logMetricRows []*models.LogMetricTemplate
80103
if logMetricRows, err = getLogMetricTemplateWithMonitor(logMonitorTemplateGuid); err != nil {
@@ -136,6 +159,12 @@ func getCreateLogMonitorTemplateActions(param *models.LogMonitorTemplateDto, ope
136159
actions = append(actions, &Action{Sql: "insert into log_param_template(guid,log_monitor_template,name,display_name,json_key,regular,demo_match_value,create_user,update_user,create_time,update_time) values (?,?,?,?,?,?,?,?,?,?,?)", Param: []interface{}{
137160
"lpt_" + logParamGuidList[i], param.Guid, logParamObj.Name, logParamObj.DisplayName, logParamObj.JsonKey, logParamObj.Regular, logParamObj.DemoMatchValue, operator, operator, nowTime, nowTime,
138161
}})
162+
tmpStringMapGuidList := guid.CreateGuidList(len(logParamObj.StringMap))
163+
for stringMapIndex, stringMapObj := range logParamObj.StringMap {
164+
actions = append(actions, &Action{Sql: "insert into log_metric_string_map(guid,log_monitor_template,log_param_name,value_type,source_value,regulative,target_value,update_time) values (?,?,?,?,?,?,?,?)", Param: []interface{}{
165+
"lmsm_" + tmpStringMapGuidList[stringMapIndex], param.Guid, logParamObj.Name, stringMapObj.ValueType, stringMapObj.SourceValue, stringMapObj.Regulative, stringMapObj.TargetValue, nowTime.Format(models.DatetimeFormat),
166+
}})
167+
}
139168
}
140169
logMetricGuidList := guid.CreateGuidList(len(param.MetricList))
141170
for i, logMetricObj := range param.MetricList {

0 commit comments

Comments
 (0)