Skip to content

alirezameskin/logql-parser

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Simple LogQL parser

import logql.parser.LogQueryParser

val res1 = LogQueryParser.parse("""{label1="val"}""")
//res1: Right(LogQueryExpr(List(MatchEqual(label1,val)),List()))


val res2 = LogQueryParser.parse("""{label1="val", label2 =~ "v.*"} |= "plaintext" | (age = 10 and num > 10) or num2 <= 101s """)
/*
res2: Right(
        LogQueryExpr(
          List(
            MatchEqual("label1", "val"),
            MatchRegexp("label2", "v.*"),
          ),
          List(
            LineFilterExpr(ContainsString, "plaintext"),
            ConditionExpr(
                OrCondition(
                  AndCondition(
                    CompareCondition(AST.Equal, "age", NumberValue(10)),
                    CompareCondition(AST.GreaterThan, "num", NumberValue(10.0))
                  ),
                  CompareCondition(AST.LessEqual, "num2", DurationValue(101, TimeUnit.SECONDS))
                )
            )
          )
        )
      )
*/

About

Simple LogQL parser

Resources

Stars

Watchers

Forks

Releases

No releases published

Languages