Documentation ¶
Overview ¶
This file is taken from the golang text/scanner package so `bufLen` can be set to `maxInputSize`.
Index ¶
- Constants
- func IsComparisonOperator(op string) bool
- func IsLogicalBinOp(op string) bool
- func MatchersString(xs []*labels.Matcher) string
- func MergeBinOp(op string, left, right *promql.Sample, filter, isVectorComparison bool) (*promql.Sample, error)
- func ParseLabels(lbs string) (labels.Labels, error)
- func ParseMatchers(input string) ([]*labels.Matcher, error)
- func Prettify(e Expr) string
- func TokenString(tok rune) string
- type BinOpExpr
- type BinOpOptions
- type DecolorizeExpr
- type DistinctFilterExpr
- type DropLabelsExpr
- type Expr
- type Grouping
- type JSONExpressionParser
- type LabelFilterExpr
- type LabelFmtExpr
- type LabelParserExpr
- type LabelReplaceExpr
- func (e *LabelReplaceExpr) Extractor() (SampleExtractor, error)
- func (e *LabelReplaceExpr) MatcherGroups() ([]MatcherRange, error)
- func (e *LabelReplaceExpr) Pretty(level int) string
- func (e *LabelReplaceExpr) Selector() (LogSelectorExpr, error)
- func (e *LabelReplaceExpr) Shardable() bool
- func (e *LabelReplaceExpr) String() string
- func (e *LabelReplaceExpr) Walk(f WalkFn)
- type LineFilterExpr
- type LineFmtExpr
- type LiteralExpr
- func (e *LiteralExpr) Extractor() (log.SampleExtractor, error)
- func (e *LiteralExpr) HasFilter() bool
- func (e *LiteralExpr) MatcherGroups() ([]MatcherRange, error)
- func (e *LiteralExpr) Matchers() []*labels.Matcher
- func (e *LiteralExpr) Pipeline() (log.Pipeline, error)
- func (e *LiteralExpr) Pretty(level int) string
- func (e *LiteralExpr) Selector() (LogSelectorExpr, error)
- func (e *LiteralExpr) Shardable() bool
- func (e *LiteralExpr) String() string
- func (e *LiteralExpr) Value() (float64, error)
- func (e *LiteralExpr) Walk(f WalkFn)
- type LogPipelineExpr
- type LogRange
- type LogSelectorExpr
- type LogfmtExpressionParser
- type MatcherRange
- type MatchersExpr
- func (e *MatchersExpr) AppendMatchers(m []*labels.Matcher)
- func (e *MatchersExpr) HasFilter() bool
- func (e *MatchersExpr) Matchers() []*labels.Matcher
- func (e *MatchersExpr) Pipeline() (log.Pipeline, error)
- func (e *MatchersExpr) Pretty(level int) string
- func (e *MatchersExpr) Shardable() bool
- func (e *MatchersExpr) String() string
- func (e *MatchersExpr) Walk(f WalkFn)
- type MultiStageExpr
- type OffsetExpr
- type Pipeline
- type PipelineExpr
- func (e *PipelineExpr) HasFilter() bool
- func (e *PipelineExpr) Matchers() []*labels.Matcher
- func (e *PipelineExpr) Pipeline() (log.Pipeline, error)
- func (e *PipelineExpr) Pretty(level int) string
- func (e *PipelineExpr) Shardable() bool
- func (e *PipelineExpr) String() string
- func (e *PipelineExpr) Walk(f WalkFn)
- type Position
- type RangeAggregationExpr
- func (r RangeAggregationExpr) Extractor() (log.SampleExtractor, error)
- func (e *RangeAggregationExpr) MatcherGroups() ([]MatcherRange, error)
- func (e *RangeAggregationExpr) Pretty(level int) string
- func (e *RangeAggregationExpr) Selector() (LogSelectorExpr, error)
- func (e *RangeAggregationExpr) Shardable() bool
- func (e *RangeAggregationExpr) String() string
- func (e RangeAggregationExpr) Validate() error
- func (e *RangeAggregationExpr) Walk(f WalkFn)
- type SampleExpr
- type SampleExtractor
- type Scanner
- type StageExpr
- type UnwrapExpr
- type VectorAggregationExpr
- func (e *VectorAggregationExpr) Extractor() (log.SampleExtractor, error)
- func (e *VectorAggregationExpr) MatcherGroups() ([]MatcherRange, error)
- func (e *VectorAggregationExpr) Pretty(level int) string
- func (e *VectorAggregationExpr) Selector() (LogSelectorExpr, error)
- func (e *VectorAggregationExpr) Shardable() bool
- func (e *VectorAggregationExpr) String() string
- func (e *VectorAggregationExpr) Walk(f WalkFn)
- type VectorExpr
- func (e *VectorExpr) Err() error
- func (e *VectorExpr) Extractor() (log.SampleExtractor, error)
- func (e *VectorExpr) HasFilter() bool
- func (e *VectorExpr) MatcherGroups() ([]MatcherRange, error)
- func (e *VectorExpr) Matchers() []*labels.Matcher
- func (e *VectorExpr) Pipeline() (log.Pipeline, error)
- func (e *VectorExpr) Pretty(level int) string
- func (e *VectorExpr) Selector() (LogSelectorExpr, error)
- func (e *VectorExpr) Shardable() bool
- func (e *VectorExpr) String() string
- func (e *VectorExpr) Value() (float64, error)
- func (e *VectorExpr) Walk(f WalkFn)
- type VectorMatchCardinality
- type VectorMatching
- type WalkFn
- type Walkable
Constants ¶
const ( // vector ops OpTypeSum = "sum" OpTypeAvg = "avg" OpTypeMax = "max" OpTypeMin = "min" OpTypeCount = "count" OpTypeStddev = "stddev" OpTypeStdvar = "stdvar" OpTypeBottomK = "bottomk" OpTypeTopK = "topk" OpTypeSort = "sort" OpTypeSortDesc = "sort_desc" // range vector ops OpRangeTypeCount = "count_over_time" OpRangeTypeRate = "rate" OpRangeTypeRateCounter = "rate_counter" OpRangeTypeBytes = "bytes_over_time" OpRangeTypeBytesRate = "bytes_rate" OpRangeTypeAvg = "avg_over_time" OpRangeTypeSum = "sum_over_time" OpRangeTypeMin = "min_over_time" OpRangeTypeMax = "max_over_time" OpRangeTypeStdvar = "stdvar_over_time" OpRangeTypeStddev = "stddev_over_time" OpRangeTypeQuantile = "quantile_over_time" OpRangeTypeFirst = "first_over_time" OpRangeTypeLast = "last_over_time" OpRangeTypeAbsent = "absent_over_time" //vector OpTypeVector = "vector" // binops - logical/set OpTypeOr = "or" OpTypeAnd = "and" OpTypeUnless = "unless" // binops - arithmetic OpTypeAdd = "+" OpTypeSub = "-" OpTypeMul = "*" OpTypeDiv = "/" OpTypeMod = "%" OpTypePow = "^" // binops - comparison OpTypeCmpEQ = "==" OpTypeNEQ = "!=" OpTypeGT = ">" OpTypeGTE = ">=" OpTypeLT = "<" OpTypeLTE = "<=" // parsers OpParserTypeJSON = "json" OpParserTypeLogfmt = "logfmt" OpParserTypeRegexp = "regexp" OpParserTypeUnpack = "unpack" OpParserTypePattern = "pattern" OpFmtLine = "line_format" OpFmtLabel = "label_format" OpDecolorize = "decolorize" OpPipe = "|" OpUnwrap = "unwrap" OpOffset = "offset" OpOn = "on" OpIgnoring = "ignoring" OpGroupLeft = "group_left" OpGroupRight = "group_right" // conversion Op OpConvBytes = "bytes" OpConvDuration = "duration" OpConvDurationSeconds = "duration_seconds" OpLabelReplace = "label_replace" // function filters OpFilterIP = "ip" OpFilterDistinct = "distinct" // drop labels OpDrop = "drop" )
const ( ScanIdents = 1 << -Ident ScanInts = 1 << -Int ScanFloats = 1 << -Float // includes Ints and hexadecimal floats ScanChars = 1 << -Char ScanStrings = 1 << -String ScanRawStrings = 1 << -RawString ScanComments = 1 << -Comment SkipComments = 1 << -skipComment // if set with ScanComments, comments become white space GoTokens = ScanIdents | ScanFloats | ScanChars | ScanStrings | ScanRawStrings | ScanComments | SkipComments )
Predefined mode bits to control recognition of tokens. For instance, to configure a Scanner such that it only recognizes (Go) identifiers, integers, and skips comments, set the Scanner's Mode field to:
ScanIdents | ScanInts | SkipComments
With the exceptions of comments, which are skipped if SkipComments is set, unrecognized tokens are not ignored. Instead, the scanner simply returns the respective individual characters (or possibly sub-tokens). For instance, if the mode is ScanIdents (not ScanStrings), the string "foo" is scanned as the token sequence '"' Ident '"'.
Use GoTokens to configure the Scanner such that it accepts all Go literal tokens including Go identifiers. Comments will be skipped.
const ( EOF = -(iota + 1) Ident Int Float Char String RawString Comment )
The result of Scan is one of these tokens or a Unicode character.
const ABSENT_OVER_TIME = 57406
const ADD = 57428
const AND = 57420
const AVG = 57375
const AVG_OVER_TIME = 57394
const BOOL = 57385
const BOTTOMK = 57381
const BY = 57367
const BYTES = 57346
const BYTES_CONV = 57401
const BYTES_OVER_TIME = 57383
const BYTES_RATE = 57384
const CLOSE_BRACE = 57358
const CLOSE_BRACKET = 57360
const CLOSE_PARENTHESIS = 57366
const CMP_EQ = 57422
const COMMA = 57361
const COUNT = 57378
const COUNT_OVER_TIME = 57369
const DECOLORIZE = 57417
const DISTINCT = 57387
const DIV = 57431
const DOT = 57362
const DROP = 57418
const DURATION = 57350
const DURATION_CONV = 57402
const DURATION_SECONDS_CONV = 57403
const EQ = 57354
const (
EmptyMatchers = "{}"
)
const FIRST_OVER_TIME = 57404
const GROUP_LEFT = 57415
const GROUP_RIGHT = 57416
const GT = 57426
const GTE = 57427
const GoWhitespace = 1<<'\t' | 1<<'\n' | 1<<'\r' | 1<<' '
GoWhitespace is the default value for the Scanner's Whitespace field. Its value selects Go's white space characters.
const IDENTIFIER = 57347
const IGNORING = 57414
const IP = 57412
const JSON = 57386
const LABELS = 57353
const LABEL_FMT = 57392
const LABEL_REPLACE = 57408
const LAST_OVER_TIME = 57405
const LINE_FMT = 57391
const LOGFMT = 57389
const LT = 57424
const LTE = 57425
const MATCHERS = 57352
const MAX = 57376
const MAX_OVER_TIME = 57397
const MIN = 57377
const MIN_OVER_TIME = 57396
const MOD = 57432
const MUL = 57430
const NEQ = 57423
const NRE = 57356
const NUMBER = 57349
const OFFSET = 57410
const ON = 57413
const OPEN_BRACE = 57357
const OPEN_BRACKET = 57359
const OPEN_PARENTHESIS = 57365
const OR = 57419
const PATTERN = 57411
const PIPE = 57390
const PIPE_EXACT = 57364
const PIPE_MATCH = 57363
const POW = 57433
const QUANTILE_OVER_TIME = 57400
const RANGE = 57351
const RATE = 57370
const RATE_COUNTER = 57371
const RE = 57355
const REGEXP = 57388
const SORT = 57373
const SORT_DESC = 57374
const STDDEV = 57379
const STDDEV_OVER_TIME = 57399
const STDVAR = 57380
const STDVAR_OVER_TIME = 57398
const STRING = 57348
const SUB = 57429
const SUM = 57372
const SUM_OVER_TIME = 57395
const TOPK = 57382
const UNLESS = 57421
const UNPACK = 57409
const UNWRAP = 57393
const UnsupportedErr = "unsupported range vector aggregation operation: %s"
const VECTOR = 57407
const WITHOUT = 57368
Variables ¶
This section is empty.
Functions ¶
func IsComparisonOperator ¶
func IsLogicalBinOp ¶
IsLogicalBinOp tests whether an operation is a logical/set binary operation
func MatchersString ¶
func MergeBinOp ¶
func ParseLabels ¶
ParseLabels parses labels from a string using logql parser.
func ParseMatchers ¶
ParseMatchers parses a string and returns labels matchers, if the expression contains anything else it will return an error.
func TokenString ¶
TokenString returns a printable string for a token or Unicode character.
Types ¶
type BinOpExpr ¶
type BinOpExpr struct { SampleExpr RHS SampleExpr Op string Opts *BinOpOptions // contains filtered or unexported fields }
func (*BinOpExpr) MatcherGroups ¶
func (e *BinOpExpr) MatcherGroups() ([]MatcherRange, error)
type BinOpOptions ¶
type BinOpOptions struct { ReturnBool bool VectorMatching *VectorMatching }
type DecolorizeExpr ¶
type DecolorizeExpr struct {
// contains filtered or unexported fields
}
func (*DecolorizeExpr) Shardable ¶
func (e *DecolorizeExpr) Shardable() bool
func (*DecolorizeExpr) String ¶
func (e *DecolorizeExpr) String() string
func (*DecolorizeExpr) Walk ¶
func (e *DecolorizeExpr) Walk(f WalkFn)
type DistinctFilterExpr ¶
type DistinctFilterExpr struct {
// contains filtered or unexported fields
}
func (*DistinctFilterExpr) Pretty ¶
func (e *DistinctFilterExpr) Pretty(level int) string
func (*DistinctFilterExpr) Shardable ¶
func (e *DistinctFilterExpr) Shardable() bool
func (*DistinctFilterExpr) String ¶
func (e *DistinctFilterExpr) String() string
func (*DistinctFilterExpr) Walk ¶
func (e *DistinctFilterExpr) Walk(f WalkFn)
type DropLabelsExpr ¶
type DropLabelsExpr struct {
// contains filtered or unexported fields
}
func (*DropLabelsExpr) Pretty ¶
func (e *DropLabelsExpr) Pretty(level int) string
func (*DropLabelsExpr) Shardable ¶
func (e *DropLabelsExpr) Shardable() bool
func (*DropLabelsExpr) String ¶
func (e *DropLabelsExpr) String() string
func (*DropLabelsExpr) Walk ¶
func (e *DropLabelsExpr) Walk(f WalkFn)
type Expr ¶
type Expr interface { Shardable() bool // A recursive check on the AST to see if it's shardable. Walkable fmt.Stringer // Pretty prettyfies any LogQL expression at given `level` of the whole LogQL query. Pretty(level int) string // contains filtered or unexported methods }
Expr is the root expression which can be a SampleExpr or LogSelectorExpr
type JSONExpressionParser ¶
type JSONExpressionParser struct { Expressions []log.LabelExtractionExpr // contains filtered or unexported fields }
func (*JSONExpressionParser) Pretty ¶
func (e *JSONExpressionParser) Pretty(level int) string
e.g: | json label="expression", another="expression"
func (*JSONExpressionParser) Shardable ¶
func (j *JSONExpressionParser) Shardable() bool
func (*JSONExpressionParser) String ¶
func (j *JSONExpressionParser) String() string
func (*JSONExpressionParser) Walk ¶
func (j *JSONExpressionParser) Walk(f WalkFn)
type LabelFilterExpr ¶
type LabelFilterExpr struct { log.LabelFilterer // contains filtered or unexported fields }
func (*LabelFilterExpr) Pretty ¶
func (e *LabelFilterExpr) Pretty(level int) string
e.g: | level!="error"
func (*LabelFilterExpr) Shardable ¶
func (e *LabelFilterExpr) Shardable() bool
func (*LabelFilterExpr) String ¶
func (e *LabelFilterExpr) String() string
func (*LabelFilterExpr) Walk ¶
func (e *LabelFilterExpr) Walk(f WalkFn)
type LabelFmtExpr ¶
func (*LabelFmtExpr) Pretty ¶
func (e *LabelFmtExpr) Pretty(level int) string
e.g: | label_format dst="{{ .src }}"
func (*LabelFmtExpr) Shardable ¶
func (e *LabelFmtExpr) Shardable() bool
func (*LabelFmtExpr) String ¶
func (e *LabelFmtExpr) String() string
func (*LabelFmtExpr) Walk ¶
func (e *LabelFmtExpr) Walk(f WalkFn)
type LabelParserExpr ¶
func (*LabelParserExpr) Pretty ¶
func (e *LabelParserExpr) Pretty(level int) string
e.g: `| logfmt` `| json` `| regexp` `| pattern` `| unpack`
func (*LabelParserExpr) Shardable ¶
func (e *LabelParserExpr) Shardable() bool
func (*LabelParserExpr) String ¶
func (e *LabelParserExpr) String() string
func (*LabelParserExpr) Walk ¶
func (e *LabelParserExpr) Walk(f WalkFn)
type LabelReplaceExpr ¶
type LabelReplaceExpr struct { Left SampleExpr Dst string Replacement string Src string Regex string Re *regexp.Regexp // contains filtered or unexported fields }
func (*LabelReplaceExpr) Extractor ¶
func (e *LabelReplaceExpr) Extractor() (SampleExtractor, error)
func (*LabelReplaceExpr) MatcherGroups ¶
func (e *LabelReplaceExpr) MatcherGroups() ([]MatcherRange, error)
func (*LabelReplaceExpr) Pretty ¶
func (e *LabelReplaceExpr) Pretty(level int) string
e.g: label_replace(rate({job="api-server",service="a:c"}[5m]), "foo", "$1", "service", "(.*):.*")
func (*LabelReplaceExpr) Selector ¶
func (e *LabelReplaceExpr) Selector() (LogSelectorExpr, error)
func (*LabelReplaceExpr) Shardable ¶
func (e *LabelReplaceExpr) Shardable() bool
func (*LabelReplaceExpr) String ¶
func (e *LabelReplaceExpr) String() string
func (*LabelReplaceExpr) Walk ¶
func (e *LabelReplaceExpr) Walk(f WalkFn)
type LineFilterExpr ¶
type LineFilterExpr struct { Left *LineFilterExpr Ty labels.MatchType Match string Op string // contains filtered or unexported fields }
func (*LineFilterExpr) Pretty ¶
func (e *LineFilterExpr) Pretty(level int) string
e.g: `|= "error" != "memcache" |= ip("192.168.0.1")` NOTE: here `ip` is Op in this expression.
func (*LineFilterExpr) Shardable ¶
func (e *LineFilterExpr) Shardable() bool
func (*LineFilterExpr) String ¶
func (e *LineFilterExpr) String() string
func (*LineFilterExpr) Walk ¶
func (e *LineFilterExpr) Walk(f WalkFn)
type LineFmtExpr ¶
type LineFmtExpr struct { Value string // contains filtered or unexported fields }
func (*LineFmtExpr) Pretty ¶
func (e *LineFmtExpr) Pretty(level int) string
e.g: | line_format "{{ .label }}"
func (*LineFmtExpr) Shardable ¶
func (e *LineFmtExpr) Shardable() bool
func (*LineFmtExpr) String ¶
func (e *LineFmtExpr) String() string
func (*LineFmtExpr) Walk ¶
func (e *LineFmtExpr) Walk(f WalkFn)
type LiteralExpr ¶
type LiteralExpr struct { Val float64 // contains filtered or unexported fields }
func (*LiteralExpr) Extractor ¶
func (e *LiteralExpr) Extractor() (log.SampleExtractor, error)
func (*LiteralExpr) HasFilter ¶
func (e *LiteralExpr) HasFilter() bool
func (*LiteralExpr) MatcherGroups ¶
func (e *LiteralExpr) MatcherGroups() ([]MatcherRange, error)
func (*LiteralExpr) Matchers ¶
func (e *LiteralExpr) Matchers() []*labels.Matcher
func (*LiteralExpr) Selector ¶
func (e *LiteralExpr) Selector() (LogSelectorExpr, error)
literlExpr impls SampleExpr & LogSelectorExpr mainly to reduce the need for more complicated typings to facilitate sum types. We'll be type switching when evaluating them anyways and they will only be present in binary operation legs.
func (*LiteralExpr) Shardable ¶
func (e *LiteralExpr) Shardable() bool
func (*LiteralExpr) String ¶
func (e *LiteralExpr) String() string
func (*LiteralExpr) Value ¶
func (e *LiteralExpr) Value() (float64, error)
func (*LiteralExpr) Walk ¶
func (e *LiteralExpr) Walk(f WalkFn)
type LogPipelineExpr ¶
LogPipelineExpr is an expression defining a log pipeline.
type LogRange ¶
type LogRange struct { Left LogSelectorExpr Interval time.Duration Offset time.Duration Unwrap *UnwrapExpr // contains filtered or unexported fields }
type LogSelectorExpr ¶
type LogSelectorExpr interface { Matchers() []*labels.Matcher LogPipelineExpr HasFilter() bool Expr }
LogSelectorExpr is a LogQL expression filtering and returning logs.
func AddFilterExpr ¶
func AddFilterExpr(expr LogSelectorExpr, ty labels.MatchType, op, match string) (LogSelectorExpr, error)
AddFilterExpr adds a filter expression to a logselector expression.
func ParseLogSelector ¶
func ParseLogSelector(input string, validate bool) (LogSelectorExpr, error)
ParseLogSelector parses a log selector expression `{app="foo"} |= "filter"`
type LogfmtExpressionParser ¶
type LogfmtExpressionParser struct { Expressions []log.LabelExtractionExpr // contains filtered or unexported fields }
func (*LogfmtExpressionParser) Pretty ¶
func (e *LogfmtExpressionParser) Pretty(level int) string
e.g: | logfmt label="expression", another="expression"
func (*LogfmtExpressionParser) Shardable ¶
func (l *LogfmtExpressionParser) Shardable() bool
func (*LogfmtExpressionParser) String ¶
func (l *LogfmtExpressionParser) String() string
func (*LogfmtExpressionParser) Walk ¶
func (l *LogfmtExpressionParser) Walk(f WalkFn)
type MatcherRange ¶
func MatcherGroups ¶
func MatcherGroups(expr Expr) ([]MatcherRange, error)
type MatchersExpr ¶
func (*MatchersExpr) AppendMatchers ¶
func (e *MatchersExpr) AppendMatchers(m []*labels.Matcher)
func (*MatchersExpr) HasFilter ¶
func (e *MatchersExpr) HasFilter() bool
func (*MatchersExpr) Matchers ¶
func (e *MatchersExpr) Matchers() []*labels.Matcher
func (*MatchersExpr) Shardable ¶
func (e *MatchersExpr) Shardable() bool
func (*MatchersExpr) String ¶
func (e *MatchersExpr) String() string
func (*MatchersExpr) Walk ¶
func (e *MatchersExpr) Walk(f WalkFn)
type MultiStageExpr ¶
type MultiStageExpr []StageExpr
MultiStageExpr is multiple stages which implement a PipelineExpr.
func (MultiStageExpr) String ¶
func (m MultiStageExpr) String() string
type OffsetExpr ¶
func (*OffsetExpr) Pretty ¶
func (e *OffsetExpr) Pretty(_ int) string
e.g: count_over_time({foo="bar"}[5m] offset 3h) TODO(kavi): why does offset not work in log queries? e.g: `{foo="bar"} offset 1h`? is it bug? or anything else? NOTE: Also offset expression never to be indented. It always goes with its parent expression (usually RangeExpr).
func (*OffsetExpr) String ¶
func (o *OffsetExpr) String() string
type PipelineExpr ¶
type PipelineExpr struct { MultiStages MultiStageExpr Left *MatchersExpr // contains filtered or unexported fields }
func (*PipelineExpr) HasFilter ¶
func (e *PipelineExpr) HasFilter() bool
HasFilter returns true if the pipeline contains stage that can filter out lines.
func (*PipelineExpr) Matchers ¶
func (e *PipelineExpr) Matchers() []*labels.Matcher
func (*PipelineExpr) Pretty ¶
func (e *PipelineExpr) Pretty(level int) string
e.g: `{foo="bar"} | logfmt | level="error"` Here, left = `{foo="bar"}` and multistages would collection of each stage in pipeline, here `logfmt` and `level="error"`
func (*PipelineExpr) Shardable ¶
func (e *PipelineExpr) Shardable() bool
func (*PipelineExpr) String ¶
func (e *PipelineExpr) String() string
func (*PipelineExpr) Walk ¶
func (e *PipelineExpr) Walk(f WalkFn)
type Position ¶
type Position struct { Filename string // filename, if any Offset int // byte offset, starting at 0 Line int // line number, starting at 1 Column int // column number, starting at 1 (character count per line) }
Position is a value that represents a source position. A position is valid if Line > 0.
type RangeAggregationExpr ¶
type RangeAggregationExpr struct { Left *LogRange Operation string Params *float64 Grouping *Grouping // contains filtered or unexported fields }
func (RangeAggregationExpr) Extractor ¶
func (r RangeAggregationExpr) Extractor() (log.SampleExtractor, error)
func (*RangeAggregationExpr) MatcherGroups ¶
func (e *RangeAggregationExpr) MatcherGroups() ([]MatcherRange, error)
func (*RangeAggregationExpr) Pretty ¶
func (e *RangeAggregationExpr) Pretty(level int) string
e.g: count_over_time({foo="bar"}[5m])
func (*RangeAggregationExpr) Selector ¶
func (e *RangeAggregationExpr) Selector() (LogSelectorExpr, error)
func (*RangeAggregationExpr) Shardable ¶
func (e *RangeAggregationExpr) Shardable() bool
impl SampleExpr
func (RangeAggregationExpr) Validate ¶
func (e RangeAggregationExpr) Validate() error
func (*RangeAggregationExpr) Walk ¶
func (e *RangeAggregationExpr) Walk(f WalkFn)
type SampleExpr ¶
type SampleExpr interface { // Selector is the LogQL selector to apply when retrieving logs. Selector() (LogSelectorExpr, error) Extractor() (SampleExtractor, error) MatcherGroups() ([]MatcherRange, error) Expr }
SampleExpr is a LogQL expression filtering logs and returning metric samples.
func ParseSampleExpr ¶
func ParseSampleExpr(input string) (SampleExpr, error)
ParseSampleExpr parses a string and returns the sampleExpr
type SampleExtractor ¶
type SampleExtractor = log.SampleExtractor
Type alias for backward compatibility
type Scanner ¶
type Scanner struct { // Error is called for each error encountered. If no Error // function is set, the error is reported to os.Stderr. Error func(s *Scanner, msg string) // ErrorCount is incremented by one for each error encountered. ErrorCount int // The Mode field controls which tokens are recognized. For instance, // to recognize Ints, set the ScanInts bit in Mode. The field may be // changed at any time. Mode uint // The Whitespace field controls which characters are recognized // as white space. To recognize a character ch <= ' ' as white space, // set the ch'th bit in Whitespace (the Scanner's behavior is undefined // for values ch > ' '). The field may be changed at any time. Whitespace uint64 // IsIdentRune is a predicate controlling the characters accepted // as the ith rune in an identifier. The set of valid characters // must not intersect with the set of white space characters. // If no IsIdentRune function is set, regular Go identifiers are // accepted instead. The field may be changed at any time. IsIdentRune func(ch rune, i int) bool // Start position of most recently scanned token; set by Scan. // Calling Init or Next invalidates the position (Line == 0). // The Filename field is always left untouched by the Scanner. // If an error is reported (via Error) and Position is invalid, // the scanner is not inside a token. Call Pos to obtain an error // position in that case, or to obtain the position immediately // after the most recently scanned token. Position // contains filtered or unexported fields }
A Scanner implements reading of Unicode characters and tokens from an io.Reader.
func (*Scanner) Init ¶
Init initializes a Scanner with a new source and returns s. Error is set to nil, ErrorCount is set to 0, Mode is set to GoTokens, and Whitespace is set to GoWhitespace.
func (*Scanner) Next ¶
Next reads and returns the next Unicode character. It returns EOF at the end of the source. It reports a read error by calling s.Error, if not nil; otherwise it prints an error message to os.Stderr. Next does not update the Scanner's Position field; use Pos() to get the current position.
func (*Scanner) Peek ¶
Peek returns the next Unicode character in the source without advancing the scanner. It returns EOF if the scanner's position is at the last character of the source.
func (*Scanner) Pos ¶
Pos returns the position of the character immediately after the character or token returned by the last call to Next or Scan. Use the Scanner's Position field for the start position of the most recently scanned token.
func (*Scanner) Scan ¶
Scan reads the next token or Unicode character from source and returns it. It only recognizes tokens t for which the respective Mode bit (1<<-t) is set. It returns EOF at the end of the source. It reports scanner errors (read and token errors) by calling s.Error, if not nil; otherwise it prints an error message to os.Stderr.
type UnwrapExpr ¶
type UnwrapExpr struct { Identifier string Operation string PostFilters []log.LabelFilterer }
func (*UnwrapExpr) Pretty ¶
func (e *UnwrapExpr) Pretty(level int) string
e.g: sum_over_time({foo="bar"} | logfmt | unwrap bytes_processed [5m])
func (UnwrapExpr) String ¶
func (u UnwrapExpr) String() string
type VectorAggregationExpr ¶
type VectorAggregationExpr struct { Left SampleExpr Grouping *Grouping Params int Operation string // contains filtered or unexported fields }
func (*VectorAggregationExpr) Extractor ¶
func (e *VectorAggregationExpr) Extractor() (log.SampleExtractor, error)
func (*VectorAggregationExpr) MatcherGroups ¶
func (e *VectorAggregationExpr) MatcherGroups() ([]MatcherRange, error)
func (*VectorAggregationExpr) Pretty ¶
func (e *VectorAggregationExpr) Pretty(level int) string
Syntax: <aggr-op>([parameter,] <vector expression>) [without|by (<label list>)] <aggr-op> - sum, avg, bottomk, topk, etc. [parameters,] - optional params, used only by bottomk and topk for now. <vector expression> - vector on which aggregation is done. [without|by (<label list)] - optional labels to aggregate either with `by` or `without` clause.
func (*VectorAggregationExpr) Selector ¶
func (e *VectorAggregationExpr) Selector() (LogSelectorExpr, error)
func (*VectorAggregationExpr) Shardable ¶
func (e *VectorAggregationExpr) Shardable() bool
impl SampleExpr
func (*VectorAggregationExpr) String ¶
func (e *VectorAggregationExpr) String() string
func (*VectorAggregationExpr) Walk ¶
func (e *VectorAggregationExpr) Walk(f WalkFn)
type VectorExpr ¶
type VectorExpr struct { Val float64 // contains filtered or unexported fields }
func NewVectorExpr ¶
func NewVectorExpr(scalar string) *VectorExpr
func (*VectorExpr) Err ¶
func (e *VectorExpr) Err() error
func (*VectorExpr) Extractor ¶
func (e *VectorExpr) Extractor() (log.SampleExtractor, error)
func (*VectorExpr) HasFilter ¶
func (e *VectorExpr) HasFilter() bool
func (*VectorExpr) MatcherGroups ¶
func (e *VectorExpr) MatcherGroups() ([]MatcherRange, error)
func (*VectorExpr) Matchers ¶
func (e *VectorExpr) Matchers() []*labels.Matcher
func (*VectorExpr) Selector ¶
func (e *VectorExpr) Selector() (LogSelectorExpr, error)
func (*VectorExpr) Shardable ¶
func (e *VectorExpr) Shardable() bool
func (*VectorExpr) String ¶
func (e *VectorExpr) String() string
func (*VectorExpr) Value ¶
func (e *VectorExpr) Value() (float64, error)
func (*VectorExpr) Walk ¶
func (e *VectorExpr) Walk(f WalkFn)
type VectorMatchCardinality ¶
type VectorMatchCardinality int
VectorMatchCardinality describes the cardinality relationship of two Vectors in a binary operation.
const ( CardOneToOne VectorMatchCardinality = iota CardManyToOne CardOneToMany )
func (VectorMatchCardinality) String ¶
func (vmc VectorMatchCardinality) String() string
type VectorMatching ¶
type VectorMatching struct { // The cardinality of the two Vectors. Card VectorMatchCardinality // MatchingLabels contains the labels which define equality of a pair of // elements from the Vectors. MatchingLabels []string // On includes the given label names from matching, // rather than excluding them. On bool // Include contains additional labels that should be included in // the result from the side with the lower cardinality. Include []string }
VectorMatching describes how elements from two Vectors in a binary operation are supposed to be matched.