Skip to content

Commit 317bfb6

Browse files
committed
feat: querier supports custom_tag type
1 parent 63d7497 commit 317bfb6

File tree

3 files changed

+12
-7
lines changed

3 files changed

+12
-7
lines changed

server/querier/engine/clickhouse/filter.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -915,10 +915,11 @@ func (t *WhereTag) Trans(expr sqlparser.Expr, w *Where, e *CHEngine) (view.Node,
915915
}
916916
} else if strings.HasPrefix(tagName, "custom_tag.") {
917917
tagItem, ok = tag.GetTag("custom_tag.", db, table, "default")
918+
tagNameNoPrefix := strings.TrimPrefix(tagName, "custom_tag.")
918919
if strings.Contains(op, "match") {
919-
filter = fmt.Sprintf(tagItem.WhereRegexpTranslator, op, tagName, t.Value)
920+
filter = fmt.Sprintf(tagItem.WhereRegexpTranslator, op, tagNameNoPrefix, t.Value)
920921
} else {
921-
filter = fmt.Sprintf(tagItem.WhereTranslator, tagName, op, t.Value)
922+
filter = fmt.Sprintf(tagItem.WhereTranslator, tagNameNoPrefix, op, t.Value)
922923
}
923924
} else {
924925
switch strings.Trim(t.Tag, "`") {

server/querier/engine/clickhouse/tag.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,8 @@ func GetTagTranslator(name, alias string, e *CHEngine) ([]Statement, string, err
113113
stmts = append(stmts, &SelectTag{Value: TagTranslatorStr, Alias: selectTag})
114114
} else if strings.HasPrefix(nameNoBackQuote, "custom_tag.") {
115115
tagItem, ok = tag.GetTag("custom_tag.", db, table, "default")
116-
TagTranslatorStr := fmt.Sprintf(tagItem.TagTranslator, nameNoBackQuote, nameNoBackQuote)
116+
nameNoPrefix := strings.TrimPrefix(nameNoBackQuote, "custom_tag.")
117+
TagTranslatorStr := fmt.Sprintf(tagItem.TagTranslator, nameNoPrefix, nameNoPrefix)
117118
stmts = append(stmts, &SelectTag{Value: TagTranslatorStr, Alias: selectTag})
118119
} else {
119120
stmts = append(stmts, &SelectTag{Value: name, Alias: alias})

server/querier/engine/clickhouse/tag/description.go

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -991,7 +991,7 @@ func GetDynamicTagDescriptions(db, table, rawSql, queryCacheTTL, orgID string, u
991991
} else if table == "" {
992992
externalSql = fmt.Sprintf("SELECT field_name AS tag_name, table FROM flow_tag.%s_custom_field WHERE field_type='tag' AND (%s) GROUP BY tag_name, table ORDER BY tag_name ASC LIMIT %s", db, whereSql, limit)
993993
} else if table == "alert_event" {
994-
externalSql = fmt.Sprintf("SELECT field_name AS tag_name, table, field_value_type FROM flow_tag.%s_custom_field WHERE table='%s' AND field_type='tag' AND (%s) GROUP BY tag_name, table, field_value_type ORDER BY tag_name ASC LIMIT %s", db, table, whereSql, limit)
994+
externalSql = fmt.Sprintf("SELECT field_name AS tag_name, table, field_type FROM flow_tag.%s_custom_field WHERE table='%s' AND field_type in ('tag', 'custom_tag') AND (%s) GROUP BY tag_name, table, field_type ORDER BY tag_name ASC LIMIT %s", db, table, whereSql, limit)
995995
} else {
996996
externalSql = fmt.Sprintf("SELECT field_name AS tag_name, table FROM flow_tag.%s_custom_field WHERE table='%s' AND field_type='tag' AND (%s) GROUP BY tag_name, table ORDER BY tag_name ASC LIMIT %s", db, table, whereSql, limit)
997997
}
@@ -1001,7 +1001,7 @@ func GetDynamicTagDescriptions(db, table, rawSql, queryCacheTTL, orgID string, u
10011001
} else if table == "" {
10021002
externalSql = fmt.Sprintf("SELECT field_name AS tag_name, table FROM flow_tag.%s_custom_field WHERE field_type='tag' GROUP BY tag_name, table ORDER BY tag_name ASC LIMIT %s", db, limit)
10031003
} else if table == "alert_event" {
1004-
externalSql = fmt.Sprintf("SELECT field_name AS tag_name, table, field_value_type FROM flow_tag.%s_custom_field WHERE table='%s' AND field_type='tag' GROUP BY tag_name, table, field_value_type ORDER BY tag_name ASC LIMIT %s", db, table, limit)
1004+
externalSql = fmt.Sprintf("SELECT field_name AS tag_name, table, field_type FROM flow_tag.%s_custom_field WHERE table='%s' AND field_type in ('tag', 'custom_tag') GROUP BY tag_name, table, field_type ORDER BY tag_name ASC LIMIT %s", db, table, limit)
10051005
} else {
10061006
externalSql = fmt.Sprintf("SELECT field_name AS tag_name, table FROM flow_tag.%s_custom_field WHERE table='%s' AND field_type='tag' GROUP BY tag_name, table ORDER BY tag_name ASC LIMIT %s", db, table, limit)
10071007
}
@@ -1026,9 +1026,12 @@ func GetDynamicTagDescriptions(db, table, rawSql, queryCacheTTL, orgID string, u
10261026
} else if table == "alert_event" {
10271027
externalTag := tagName.(string)
10281028
var categoryValue string
1029-
// fieltValueType := _tagName.([]interface{})[2]
1030-
if strings.HasPrefix(externalTag, "cloud.tag.") || strings.HasPrefix(externalTag, "k8s.label.") || strings.HasPrefix(externalTag, "os.app.") || strings.HasPrefix(externalTag, "k8s.annotation.") || strings.HasPrefix(externalTag, "k8s.env.") || strings.HasPrefix(externalTag, "custom_tag.") {
1029+
fieldType := _tagName.([]interface{})[2]
1030+
if strings.HasPrefix(externalTag, "cloud.tag.") || strings.HasPrefix(externalTag, "k8s.label.") || strings.HasPrefix(externalTag, "os.app.") || strings.HasPrefix(externalTag, "k8s.annotation.") || strings.HasPrefix(externalTag, "k8s.env.") || fieldType == "custom_tag" {
10311031
categoryValue = "Custom Tag"
1032+
if fieldType == "custom_tag" {
1033+
externalTag = "custom_tag." + externalTag
1034+
}
10321035
response.Values = append(response.Values, []interface{}{
10331036
externalTag, externalTag, externalTag, externalTag, externalTag, externalTag, "map_item",
10341037
categoryValue, tagTypeToOperators["string"], []bool{true, true, true}, externalTag, externalTag, externalTag, "", false, notSupportOperator, tableName,

0 commit comments

Comments
 (0)