Skip to main content

Module matching_filters

Module matching_filters 

Source
Expand description

Propagation of label matchers between the operands of a PromQL binary expression.

ConstantsΒ§

LABEL_PRESERVING_RANGE_FUNCTIONS πŸ”’
Rollup functions emitting at most one output series per input series, carrying the labels of the matrix selector they wrap. absent_over_time is excluded: it synthesizes a series from the matchers when its input has none.
MATCH_ALL_REGEX πŸ”’
super::PromPlanner::matchers_to_expr emits no filter for this, so copying it would only force a re-plan.

FunctionsΒ§

has_unique_aggregate_output πŸ”’
Whether a partitioning aggregate proves the operand emits at most one series per combination of its output labels; ranking narrows its input, so it inherits the proof. Uniqueness per match signature additionally requires every output label to be a matching label, which the caller checks.
matches_every_value πŸ”’
partitions_by_grouping_labels πŸ”’
Aggregations partitioning their input by the grouping labels, so that dropping input series by a grouping label drops exactly the matching output series and leaves the remaining aggregated values untouched.
preserves_filter πŸ”’
Whether adding a matcher on label to the scan selector_matchers finds leaves the operand’s output equal to the subset of its unfiltered output that satisfies the matcher. A filter may cross an aggregate only when it removes whole groups: in particular, a label retained by topk is not necessarily one of its partitioning labels.
propagate πŸ”’
Copies label matchers from one operand of binary to the other, so both scans discard non-joining series instead of the join.
ranks_by_grouping_labels πŸ”’
Ranking operators supported by the planner; limitk and limit_ratio are not implemented.
selector_matchers πŸ”’
Finds the scanned selector through label-preserving operations. Aggregate partitioning is checked separately for each propagated label.
single_matrix_argument πŸ”’
try_propagate πŸ”’
Err carries why the rewrite does not apply, for propagate to log.
vector_operand_is_lhs πŸ”’