-
Notifications
You must be signed in to change notification settings - Fork 0
PromQL range warm path ignores step_ms and differential E2E does not detect it #487
Description
Context
Found while reviewing #478.
The new process differential test sends step=1 across a ten-second range, but only asserts that the returned matrix is non-empty and that every returned value equals the one-window oracle. It never checks returned timestamps or compares every requested range step against an independent instant query.
The production warm range path explicitly documents that step_ms is currently unused and returns native window-close timestamps instead of Prometheus's requested start, start+step, ..., end grid. Therefore ./scripts/e2e.sh differential passes while the advertised Prometheus instant/range parity is not actually satisfied.
Reproduction
./scripts/e2e.sh differential
Review locations:
data_plane/tests/promql_differential_process_e2e.rs: range assertions around lines 279-307data_plane/src/query_engines/asap_query_engine/engine.rs:execute_range_promql_moderndocuments unusedstep_ms
Expected
- The warm range engine evaluates or samples exactly at requested Prometheus step timestamps.
- The differential fixture contains multiple windows with distinct values.
- For every requested step
t, compare range-at-twith an independent instant query att. - Assert exact timestamp set/count, labels, error behavior, and value tolerance.
Done when
A process-level regression test fails if step_ms is ignored, points are missing/extra, or range-at-t differs from instant-at-t.