mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-08-30 17:13:08 +08:00
fix(monitor,host): replace space to '+' when write to influxdb and replace '+' to space when query
1.写入influxdb时tag 中不允许存在空格
This commit is contained in:
@@ -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) {
|
||||
|
||||
@@ -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, ",")
|
||||
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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,
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user