mirror of
https://git.mirrors.martin98.com/https://github.com/SigNoz/signoz
synced 2025-08-13 20:35:56 +08:00
fix: regex support updated in logs (#3392)
This commit is contained in:
parent
5ae4a59060
commit
a75f4f02d6
@ -44,8 +44,8 @@ var logOperators = map[v3.FilterOperator]string{
|
|||||||
v3.FilterOperatorNotLike: "NOT ILIKE",
|
v3.FilterOperatorNotLike: "NOT ILIKE",
|
||||||
v3.FilterOperatorContains: "ILIKE",
|
v3.FilterOperatorContains: "ILIKE",
|
||||||
v3.FilterOperatorNotContains: "NOT ILIKE",
|
v3.FilterOperatorNotContains: "NOT ILIKE",
|
||||||
v3.FilterOperatorRegex: "REGEXP",
|
v3.FilterOperatorRegex: "match(%s, %s)",
|
||||||
v3.FilterOperatorNotRegex: "NOT REGEXP",
|
v3.FilterOperatorNotRegex: "NOT match(%s, %s)",
|
||||||
v3.FilterOperatorIn: "IN",
|
v3.FilterOperatorIn: "IN",
|
||||||
v3.FilterOperatorNotIn: "NOT IN",
|
v3.FilterOperatorNotIn: "NOT IN",
|
||||||
v3.FilterOperatorExists: "has(%s_%s_key, '%s')",
|
v3.FilterOperatorExists: "has(%s_%s_key, '%s')",
|
||||||
@ -130,6 +130,10 @@ func buildLogsTimeSeriesFilterQuery(fs *v3.FilterSet, groupBy []v3.AttributeKey)
|
|||||||
columnType := getClickhouseLogsColumnType(item.Key.Type)
|
columnType := getClickhouseLogsColumnType(item.Key.Type)
|
||||||
columnDataType := getClickhouseLogsColumnDataType(item.Key.DataType)
|
columnDataType := getClickhouseLogsColumnDataType(item.Key.DataType)
|
||||||
conditions = append(conditions, fmt.Sprintf(logsOp, columnType, columnDataType, item.Key.Key))
|
conditions = append(conditions, fmt.Sprintf(logsOp, columnType, columnDataType, item.Key.Key))
|
||||||
|
case v3.FilterOperatorRegex, v3.FilterOperatorNotRegex:
|
||||||
|
columnName := getClickhouseColumnName(item.Key)
|
||||||
|
fmtVal := utils.ClickHouseFormattedValue(value)
|
||||||
|
conditions = append(conditions, fmt.Sprintf(logsOp, columnName, fmtVal))
|
||||||
case v3.FilterOperatorContains, v3.FilterOperatorNotContains:
|
case v3.FilterOperatorContains, v3.FilterOperatorNotContains:
|
||||||
columnName := getClickhouseColumnName(item.Key)
|
columnName := getClickhouseColumnName(item.Key)
|
||||||
conditions = append(conditions, fmt.Sprintf("%s %s '%%%s%%'", columnName, logsOp, item.Value))
|
conditions = append(conditions, fmt.Sprintf("%s %s '%%%s%%'", columnName, logsOp, item.Value))
|
||||||
|
@ -179,6 +179,20 @@ var timeSeriesFilterQueryData = []struct {
|
|||||||
}},
|
}},
|
||||||
ExpectedFilter: " AND attributes_string_value[indexOf(attributes_string_key, 'host')] NOT ILIKE '%102.%'",
|
ExpectedFilter: " AND attributes_string_value[indexOf(attributes_string_key, 'host')] NOT ILIKE '%102.%'",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
Name: "Test regex",
|
||||||
|
FilterSet: &v3.FilterSet{Operator: "AND", Items: []v3.FilterItem{
|
||||||
|
{Key: v3.AttributeKey{Key: "host", DataType: v3.AttributeKeyDataTypeString, Type: v3.AttributeKeyTypeTag, IsColumn: true}, Value: "host: \"(?P<host>\\S+)\"", Operator: "regex"},
|
||||||
|
}},
|
||||||
|
ExpectedFilter: " AND match(host, 'host: \"(?P<host>\\\\S+)\"')",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Name: "Test not regex",
|
||||||
|
FilterSet: &v3.FilterSet{Operator: "AND", Items: []v3.FilterItem{
|
||||||
|
{Key: v3.AttributeKey{Key: "host", DataType: v3.AttributeKeyDataTypeString, Type: v3.AttributeKeyTypeTag}, Value: "102.", Operator: "nregex"},
|
||||||
|
}},
|
||||||
|
ExpectedFilter: " AND NOT match(attributes_string_value[indexOf(attributes_string_key, 'host')], '102.')",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
Name: "Test groupBy",
|
Name: "Test groupBy",
|
||||||
FilterSet: &v3.FilterSet{Operator: "AND", Items: []v3.FilterItem{
|
FilterSet: &v3.FilterSet{Operator: "AND", Items: []v3.FilterItem{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user