Documentation
¶
Overview ¶
Package query parses LogQL strings and provides pipeline types that process log entries through Loki-compatible log and metric pipelines.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type LogPipeline ¶
type LogPipeline struct {
// contains filtered or unexported fields
}
LogPipeline processes log entries through a parsed LogQL log selector.
func LogQL ¶
func LogQL(query string) (*LogPipeline, error)
LogQL parses a LogQL log selector query and returns a LogPipeline.
func (*LogPipeline) Matchers ¶
func (lp *LogPipeline) Matchers() []*labels.Matcher
Matchers returns the stream selectors from the parsed query.
type MetricPipeline ¶
type MetricPipeline struct {
// contains filtered or unexported fields
}
MetricPipeline processes log entries through a parsed LogQL metric query, extracting numeric samples from matching entries.
func MetricQL ¶
func MetricQL(query string) (*MetricPipeline, error)
MetricQL parses a LogQL metric query and returns a MetricPipeline.
func (*MetricPipeline) EvaluateLiteral ¶
func (mp *MetricPipeline) EvaluateLiteral() (float64, error)
EvaluateLiteral evaluates a metric expression that has no real stream selector (e.g. vector(1)+vector(1)) and returns the resulting scalar value.
func (*MetricPipeline) HasRealSelector ¶
func (mp *MetricPipeline) HasRealSelector() bool
HasRealSelector reports whether the metric query contains at least one non-empty stream selector. Expressions like vector(1)+vector(1) have no real selectors and should be evaluated as literals rather than matched against journal entries.
func (*MetricPipeline) Matchers ¶
func (mp *MetricPipeline) Matchers() []*labels.Matcher
Matchers returns the stream selectors from the parsed metric query.
func (*MetricPipeline) Process ¶
func (mp *MetricPipeline) Process(entry model.Entry) ([]float64, bool)
Process feeds a single log entry through the metric pipeline and returns the extracted sample values and whether the entry matched the selector. Each extractor produces its own set of samples; results are concatenated.
func (*MetricPipeline) Range ¶
func (mp *MetricPipeline) Range() time.Duration
Range returns the range duration from the metric query's range selector (e.g., the `5m` in `count_over_time({job="sshd"}[5m])`). Recursively unwraps wrapper expressions (VectorAggregationExpr, BinOpExpr) to find the innermost RangeAggregationExpr. Returns 0 if the expression does not contain a range selector.