Summary
A long tail of PromQL functions parse but are rejected (UnsupportedFunction). Grouped here since each is individually small; split out if any one is prioritized.
Corpus impact
~51 rejections (2.6%) combined:
- Extra
*_over_time reducers — last_over_time, first_over_time, mad_over_time, ts_of_min_over_time/ts_of_max_over_time — 21
sort, sort_desc, sort_by_label, sort_by_label_desc — 16
min_of / max_of (n-ary element-wise) — 14
Examples
last_over_time(process_start_time_seconds[5m])
sort_by_label(node_filesystem_avail_bytes, "instance")
mad_over_time(latency_seconds[10m])
Notes
- Error variant:
LoweringError::UnsupportedFunction.
- The extra
*_over_time reducers are the closest to done — they slot into the same per-series windowed-reduction path as avg_over_time/max_over_time (see windowed_aggregate in crates/lower/src/promql.rs), just needing new AggFunc variants (last/first/mad/argmax-ts).
sort/sort_desc only reorder an instant vector (no Limit) — may be a no-op at the intent level.
Summary
A long tail of PromQL functions parse but are rejected (
UnsupportedFunction). Grouped here since each is individually small; split out if any one is prioritized.Corpus impact
~51 rejections (2.6%) combined:
*_over_timereducers —last_over_time,first_over_time,mad_over_time,ts_of_min_over_time/ts_of_max_over_time— 21sort,sort_desc,sort_by_label,sort_by_label_desc— 16min_of/max_of(n-ary element-wise) — 14Examples
Notes
LoweringError::UnsupportedFunction.*_over_timereducers are the closest to done — they slot into the same per-series windowed-reduction path asavg_over_time/max_over_time(seewindowed_aggregateincrates/lower/src/promql.rs), just needing newAggFuncvariants (last/first/mad/argmax-ts).sort/sort_desconly reorder an instant vector (noLimit) — may be a no-op at the intent level.