diff --git a/pkg/logql/optimize.go b/pkg/logql/optimize.go index 1f6ce77f06998..ffa0996cdcc9e 100644 --- a/pkg/logql/optimize.go +++ b/pkg/logql/optimize.go @@ -55,7 +55,7 @@ func removeLineformat(expr syntax.SampleExpr) { found = true break } - if _, ok := pipelineExpr.MultiStages[j].(*syntax.ParserExpr); ok { + if _, ok := pipelineExpr.MultiStages[j].(*syntax.LineParserExpr); ok { found = true break } diff --git a/pkg/logql/rangemapper.go b/pkg/logql/rangemapper.go index 451ac7b43c8ab..f33d50b0c5d92 100644 --- a/pkg/logql/rangemapper.go +++ b/pkg/logql/rangemapper.go @@ -208,7 +208,7 @@ func hasLabelExtractionStage(expr syntax.SampleExpr) bool { switch concrete := e.(type) { case *syntax.LogfmtParserExpr: found = true - case *syntax.ParserExpr: + case *syntax.LineParserExpr: // It will **not** return true for `regexp`, `unpack` and `pattern`, since these label extraction // stages can control how many labels, and therefore the resulting amount of series, are extracted. if concrete.Op == syntax.OpParserTypeJSON { diff --git a/pkg/logql/syntax/ast.go b/pkg/logql/syntax/ast.go index 93dba71315079..c7c3b45b865cd 100644 --- a/pkg/logql/syntax/ast.go +++ b/pkg/logql/syntax/ast.go @@ -44,7 +44,7 @@ func (VectorAggregationExpr) isExpr() {} func (LiteralExpr) isExpr() {} func (VectorExpr) isExpr() {} func (LabelReplaceExpr) isExpr() {} -func (ParserExpr) isExpr() {} +func (LineParserExpr) isExpr() {} func (LogfmtParserExpr) isExpr() {} func (LineFilterExpr) isExpr() {} func (LabelFilterExpr) isExpr() {} @@ -73,7 +73,7 @@ func (LiteralExpr) isSampleExpr() {} func (VectorExpr) isSampleExpr() {} func (LabelReplaceExpr) isSampleExpr() {} -func (ParserExpr) isStageExpr() {} +func (LineParserExpr) isStageExpr() {} func (LogfmtParserExpr) isStageExpr() {} func (LineFilterExpr) isStageExpr() {} func (LabelFilterExpr) isStageExpr() {} @@ -145,7 +145,7 @@ func ExtractLabelFiltersBeforeParser(e Expr) []*LabelFilterExpr { // misbehave. VisitLogfmtParserFn: func(_ RootVisitor, _ *LogfmtParserExpr) { foundParseStage = true }, - VisitLabelParserFn: func(_ RootVisitor, _ *ParserExpr) { foundParseStage = true }, + VisitLabelParserFn: func(_ RootVisitor, _ *LineParserExpr) { foundParseStage = true }, VisitJSONExpressionParserFn: func(_ RootVisitor, _ *JSONExpressionParserExpr) { foundParseStage = true }, VisitLogfmtExpressionParserFn: func(_ RootVisitor, _ *LogfmtExpressionParserExpr) { foundParseStage = true }, VisitLabelFmtFn: func(_ RootVisitor, _ *LabelFmtExpr) { foundParseStage = true }, @@ -258,7 +258,7 @@ func (m MultiStageExpr) reorderStages() []StageExpr { notLineFilters = append(notLineFilters, f) combineFilters() - case *ParserExpr: + case *LineParserExpr: notLineFilters = append(notLineFilters, f) // unpack modifies the contents of the line so any line filter @@ -707,12 +707,12 @@ func (e *LogfmtParserExpr) String() string { return sb.String() } -type ParserExpr struct { +type LineParserExpr struct { Op string Param string } -func newLabelParserExpr(op, param string) *ParserExpr { +func newLabelParserExpr(op, param string) *LineParserExpr { if op == OpParserTypeRegexp { _, err := log.NewRegexpParser(param) if err != nil { @@ -726,19 +726,19 @@ func newLabelParserExpr(op, param string) *ParserExpr { } } - return &ParserExpr{ + return &LineParserExpr{ Op: op, Param: param, } } -func (e *ParserExpr) Shardable(_ bool) bool { return true } +func (e *LineParserExpr) Shardable(_ bool) bool { return true } -func (e *ParserExpr) Walk(f WalkFn) { f(e) } +func (e *LineParserExpr) Walk(f WalkFn) { f(e) } -func (e *ParserExpr) Accept(v RootVisitor) { v.VisitLabelParser(e) } +func (e *LineParserExpr) Accept(v RootVisitor) { v.VisitLabelParser(e) } -func (e *ParserExpr) Stage() (log.Stage, error) { +func (e *LineParserExpr) Stage() (log.Stage, error) { switch e.Op { case OpParserTypeJSON: return log.NewJSONParser(), nil @@ -753,7 +753,7 @@ func (e *ParserExpr) Stage() (log.Stage, error) { } } -func (e *ParserExpr) String() string { +func (e *LineParserExpr) String() string { var sb strings.Builder sb.WriteString(OpPipe) sb.WriteString(" ") diff --git a/pkg/logql/syntax/ast_test.go b/pkg/logql/syntax/ast_test.go index b7e7e72fe5693..42dcbc897782e 100644 --- a/pkg/logql/syntax/ast_test.go +++ b/pkg/logql/syntax/ast_test.go @@ -887,7 +887,7 @@ func Test_parserExpr_Parser(t *testing.T) { } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - var e *ParserExpr + var e *LineParserExpr if tt.wantPanic { require.Panics(t, func() { e = newLabelParserExpr(tt.op, tt.param) }) return @@ -923,7 +923,7 @@ func Test_parserExpr_String(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - l := ParserExpr{ + l := LineParserExpr{ Op: tt.op, Param: tt.param, } diff --git a/pkg/logql/syntax/clone.go b/pkg/logql/syntax/clone.go index 53e31b6746f6e..d51601a291293 100644 --- a/pkg/logql/syntax/clone.go +++ b/pkg/logql/syntax/clone.go @@ -251,8 +251,8 @@ func (v *cloneVisitor) VisitLabelFmt(e *LabelFmtExpr) { v.cloned = copied } -func (v *cloneVisitor) VisitLabelParser(e *ParserExpr) { - v.cloned = &ParserExpr{ +func (v *cloneVisitor) VisitLabelParser(e *LineParserExpr) { + v.cloned = &LineParserExpr{ Op: e.Op, Param: e.Param, } diff --git a/pkg/logql/syntax/prettier.go b/pkg/logql/syntax/prettier.go index 6d26c2e00abc8..78f6376a6e1e1 100644 --- a/pkg/logql/syntax/prettier.go +++ b/pkg/logql/syntax/prettier.go @@ -109,7 +109,7 @@ func (e *LogfmtParserExpr) Pretty(level int) string { // `| regexp` // `| pattern` // `| unpack` -func (e *ParserExpr) Pretty(level int) string { +func (e *LineParserExpr) Pretty(level int) string { return commonPrefixIndent(level, e) } diff --git a/pkg/logql/syntax/serialize.go b/pkg/logql/syntax/serialize.go index 81b0a0527c137..d36aecd39174a 100644 --- a/pkg/logql/syntax/serialize.go +++ b/pkg/logql/syntax/serialize.go @@ -312,7 +312,7 @@ func (*JSONSerializer) VisitJSONExpressionParser(*JSONExpressionParserExpr) func (*JSONSerializer) VisitKeepLabel(*KeepLabelsExpr) {} func (*JSONSerializer) VisitLabelFilter(*LabelFilterExpr) {} func (*JSONSerializer) VisitLabelFmt(*LabelFmtExpr) {} -func (*JSONSerializer) VisitLabelParser(*ParserExpr) {} +func (*JSONSerializer) VisitLabelParser(*LineParserExpr) {} func (*JSONSerializer) VisitLineFilter(*LineFilterExpr) {} func (*JSONSerializer) VisitLineFmt(*LineFmtExpr) {} func (*JSONSerializer) VisitLogfmtExpressionParser(*LogfmtExpressionParserExpr) {} diff --git a/pkg/logql/syntax/visit.go b/pkg/logql/syntax/visit.go index de12b0de3daa3..818b7bd0cecfb 100644 --- a/pkg/logql/syntax/visit.go +++ b/pkg/logql/syntax/visit.go @@ -35,7 +35,7 @@ type StageExprVisitor interface { VisitKeepLabel(*KeepLabelsExpr) VisitLabelFilter(*LabelFilterExpr) VisitLabelFmt(*LabelFmtExpr) - VisitLabelParser(*ParserExpr) + VisitLabelParser(*LineParserExpr) VisitLineFilter(*LineFilterExpr) VisitLineFmt(*LineFmtExpr) VisitLogfmtExpressionParser(*LogfmtExpressionParserExpr) @@ -52,7 +52,7 @@ type DepthFirstTraversal struct { VisitKeepLabelFn func(v RootVisitor, e *KeepLabelsExpr) VisitLabelFilterFn func(v RootVisitor, e *LabelFilterExpr) VisitLabelFmtFn func(v RootVisitor, e *LabelFmtExpr) - VisitLabelParserFn func(v RootVisitor, e *ParserExpr) + VisitLabelParserFn func(v RootVisitor, e *LineParserExpr) VisitLabelReplaceFn func(v RootVisitor, e *LabelReplaceExpr) VisitLineFilterFn func(v RootVisitor, e *LineFilterExpr) VisitLineFmtFn func(v RootVisitor, e *LineFmtExpr) @@ -141,7 +141,7 @@ func (v *DepthFirstTraversal) VisitLabelFmt(e *LabelFmtExpr) { } // VisitLabelParser implements RootVisitor. -func (v *DepthFirstTraversal) VisitLabelParser(e *ParserExpr) { +func (v *DepthFirstTraversal) VisitLabelParser(e *LineParserExpr) { if e == nil { return } diff --git a/pkg/logql/syntax/visit_test.go b/pkg/logql/syntax/visit_test.go index 6c62dce039f88..fbdb5d4387dc7 100644 --- a/pkg/logql/syntax/visit_test.go +++ b/pkg/logql/syntax/visit_test.go @@ -12,7 +12,7 @@ func TestDepthFirstTraversalVisitor(t *testing.T) { visited := [][2]string{} visitor := &DepthFirstTraversal{ - VisitLabelParserFn: func(_ RootVisitor, e *ParserExpr) { + VisitLabelParserFn: func(_ RootVisitor, e *LineParserExpr) { visited = append(visited, [2]string{fmt.Sprintf("%T", e), e.String()}) }, VisitLineFilterFn: func(_ RootVisitor, e *LineFilterExpr) { @@ -33,7 +33,7 @@ func TestDepthFirstTraversalVisitor(t *testing.T) { {"*syntax.LogfmtParserExpr", `| logfmt`}, {"*syntax.MatchersExpr", `{env="dev"}`}, {"*syntax.LineFilterExpr", `|~ "(foo|bar)"`}, - {"*syntax.ParserExpr", `| json`}, + {"*syntax.LineParserExpr", `| json`}, } query := `