Expand description
Subquery expression parsing for PromQL.
Subqueries allow evaluating an instant vector expression over a time range,
producing a range vector. This is useful for applying range vector functions
(like avg_over_time) to expressions that would otherwise produce instant vectors.
§Syntax
expr[range:step] # With explicit step
expr[range:] # With default step- range: The lookback window (required)
- step: The evaluation interval (optional; uses default if omitted)
§Examples
some_metric[5m:1m] # Evaluate every minute over 5 minutes
rate(http_requests[5m])[30m:1m] # Rate over 5m, sampled every minute for 30m
avg_over_time(metric[5m:]) # Average using default step§Code Example
use rusty_promql_parser::parser::subquery::subquery_range;
let (rest, (range, step)) = subquery_range("[5m:1m]").unwrap();
assert!(rest.is_empty());
assert_eq!(range.as_millis(), 5 * 60 * 1000);
assert_eq!(step.unwrap().as_millis(), 60 * 1000);Functions§
- subquery_
range - Parse a subquery range:
[range:step]or[range:]