fix(monitor,host): replace space to '+' when write to influxdb and replace '+' to space when query

1.写入influxdb时tag 中不允许存在空格
This commit is contained in:
zhaoxiangchun
2021-02-07 14:25:58 +08:00
parent 31854889db
commit c86dab4d6b
5 changed files with 17 additions and 4 deletions
+1 -1
View File
@@ -926,7 +926,7 @@ func (h *SHostInfo) getDomainInfo(hostId string) {
domain_id, _ := host.GetString("domain_id")
project_domain, _ := host.GetString("project_domain")
h.Domain_id = domain_id
h.Project_domain = project_domain
h.Project_domain = strings.ReplaceAll(project_domain, " ", "+")
}
func (h *SHostInfo) setHostname(name string) {
+1 -1
View File
@@ -289,7 +289,7 @@ func (s *SGuestMonitorCollector) addTelegrafLine(
var tagArr = []string{}
for k, v := range tags {
tagArr = append(tagArr, fmt.Sprintf("%s=%s", k, v))
tagArr = append(tagArr, fmt.Sprintf("%s=%s", k, strings.ReplaceAll(v, " ", "+")))
}
tagStr := strings.Join(tagArr, ",")
+4
View File
@@ -885,6 +885,7 @@ func (self *SDataSourceManager) getFilterMeasurementTagValue(tagValueChan *influ
tagMap, _ := rtn[rtnIndex][serieIndex].Tags.GetMap()
for key, valObj := range tagMap {
valStr, _ := valObj.GetString()
valStr = self._renderTagVal(valStr)
if len(valStr) == 0 || valStr == "null" || filterTagValue(valStr) {
continue
}
@@ -908,6 +909,9 @@ func (self *SDataSourceManager) getFilterMeasurementTagValue(tagValueChan *influ
return nil
}
func (self *SDataSourceManager) _renderTagVal(val string) string {
return strings.ReplaceAll(val, "+", " ")
}
func floatEquals(a, b float64) bool {
eps := 0.000000001
if math.Abs(a-b) < eps {
+5 -1
View File
@@ -85,13 +85,17 @@ func (query *Query) renderTags() []string {
textValue = fmt.Sprintf("'%s'", strings.Replace(tag.Value, `\`, `\\`, -1))
}
}
textValue = query.renderTagValue(textValue)
res = append(res, fmt.Sprintf(`%s"%s" %s %s`, str, tag.Key, tag.Operator, textValue))
}
return res
}
func (query *Query) renderTagValue(val string) string {
return strings.ReplaceAll(val, " ", "+")
}
func (query *Query) renderTimeFilter(queryCtx *tsdb.TsdbQuery) string {
from := ""
if strings.Contains(queryCtx.TimeRange.From, "now-") {
@@ -94,11 +94,16 @@ func (rp *ResponseParser) transformRowsV2(rows []Row, queryResult *tsdb.QueryRes
points = append(points, point)
}
}
tags := make(map[string]string)
for key, val := range row.Tags {
val_ := strings.ReplaceAll(val, "+", " ")
tags[key] = val_
}
result = append(result, &tsdb.TimeSeries{
Name: rp.formatSerieName(row, col, query),
Columns: columns,
Points: points,
Tags: row.Tags,
Tags: tags,
})
}