-
Notifications
You must be signed in to change notification settings - Fork 0
feat(promql): compile and execute count/avg aggregation families from the ASAPQuery matrix #503
Open
Labels
area: control planePlanning, configuration, routing, and control-plane orchestration area: data planeRuntime ingestion, storage, and query-serving data paths area: physical compilerCompilation from selected logical plans to executable backend and Collector plans area: query enginePromQL lowering, execution, result shaping, and fallback behavior area: summary executionWarm-summary binding, readout, composition, and result decoding enhancementNew feature or request feature: PromQLPromQL compatibility and execution semantics feature: sketch algorithmsSketch-family configuration, lifecycle, merge, and readout behavior feature: warm summariesASAP warm-tier materialization, readiness, and serving integration: ASAPPlannerASAPPlanner API, IR, candidate, and selected-plan integration quality: accuracyExact and approximate accuracy contracts, error bounds, and routing
Description
Audit evidence
The PR-derived ASAPQuery PromQL matrix includes count, avg, count_over_time, and avg_over_time (especially ASAPQuery #700). Against current main, the backend-local physical compiler:
- compiles
count_over_time(m[1m]); - panics in stage config emission for
count(m)because the selected sketch algorithm has no backend mapping; - rejects
avg(m)andavg_over_time(m[1m])because no executable Collector lifecycle is selected.
This is a warm-path capability gap, not a parser gap. Parent matrix: #501.
Required behavior
- Compile and execute all four shapes for instant and range requests, with optional
by (...)where ASAPQuery supports it. - Represent
avgas a semantics-preserving sum/count composition and retain both materialization/readout dependencies. - Map count to an executable exact or sketch family without an
unreachable!panic; unknown families must fail closed. - Preserve labels, float result type, timestamps, empty-window behavior, and Prometheus NaN/divide-by-zero semantics.
Acceptance tests
Add these cases to the backend process differential E2E matrix, assert parity with Prometheus, and assert data_source: warm for both /api/v1/query and /api/v1/query_range.
Activity
Metadata
Metadata
Assignees
Labels
area: control planePlanning, configuration, routing, and control-plane orchestration area: data planeRuntime ingestion, storage, and query-serving data paths area: physical compilerCompilation from selected logical plans to executable backend and Collector plans area: query enginePromQL lowering, execution, result shaping, and fallback behavior area: summary executionWarm-summary binding, readout, composition, and result decoding enhancementNew feature or request feature: PromQLPromQL compatibility and execution semantics feature: sketch algorithmsSketch-family configuration, lifecycle, merge, and readout behavior feature: warm summariesASAP warm-tier materialization, readiness, and serving integration: ASAPPlannerASAPPlanner API, IR, candidate, and selected-plan integration quality: accuracyExact and approximate accuracy contracts, error bounds, and routing