diff --git a/pkg/logql/log/parser.go b/pkg/logql/log/parser.go index afc70b63400d..659e2e154896 100644 --- a/pkg/logql/log/parser.go +++ b/pkg/logql/log/parser.go @@ -164,6 +164,9 @@ func readValue(iter *jsoniter.Iterator) string { func addLabel(lbs *LabelsBuilder, key, value string) { key = sanitizeLabelKey(key, true) + if len(key) == 0 { + return + } if lbs.BaseHas(key) { key = fmt.Sprintf("%s%s", key, duplicateSuffix) } @@ -266,7 +269,7 @@ type JSONExpressionParser struct { } func NewJSONExpressionParser(expressions []JSONExpression) (*JSONExpressionParser, error) { - var paths = make(map[string][]interface{}) + paths := make(map[string][]interface{}) for _, exp := range expressions { path, err := jsonexpr.Parse(exp.Expression, false) diff --git a/pkg/logql/log/util.go b/pkg/logql/log/util.go index d12ed21525f7..eb7eb33120aa 100644 --- a/pkg/logql/log/util.go +++ b/pkg/logql/log/util.go @@ -23,6 +23,9 @@ func sanitizeLabelKey(key string, isPrefix bool) string { return key } key = strings.TrimSpace(key) + if len(key) == 0 { + return key + } if isPrefix && key[0] >= '0' && key[0] <= '9' { key = "_" + key } diff --git a/pkg/logql/log/util_test.go b/pkg/logql/log/util_test.go index b16172abf9e2..beb9e2d3ae0e 100644 --- a/pkg/logql/log/util_test.go +++ b/pkg/logql/log/util_test.go @@ -7,6 +7,7 @@ func Test_sanitizeLabelKey(t *testing.T) { key string want string }{ + {" ", ""}, {"1", "_1"}, {"1 1 1", "_1_1_1"}, {"abc", "abc"},