Skip to content

Navigation Menu

Sign in
Sign up

PromQL range warm path ignores step_ms and differential E2E does not detect it #487

Open
Labels
area: data planeRuntime ingestion, storage, and query-serving data paths area: query enginePromQL lowering, execution, result shaping, and fallback behavior area: summary executionWarm-summary binding, readout, composition, and result decoding bugSomething isn't working feature: PromQLPromQL compatibility and execution semantics feature: range evaluationRange-query steps, windows, timestamps, and temporal evaluation feature: warm summariesASAP warm-tier materialization, readiness, and serving test: end-to-endProcess-boundary, differential, conformance, and full-stack tests

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-307
  • data_plane/src/query_engines/asap_query_engine/engine.rs: execute_range_promql_modern documents unused step_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-t with an independent instant query at t.
  • 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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area: data planeRuntime ingestion, storage, and query-serving data paths area: query enginePromQL lowering, execution, result shaping, and fallback behavior area: summary executionWarm-summary binding, readout, composition, and result decoding bugSomething isn't working feature: PromQLPromQL compatibility and execution semantics feature: range evaluationRange-query steps, windows, timestamps, and temporal evaluation feature: warm summariesASAP warm-tier materialization, readiness, and serving test: end-to-endProcess-boundary, differential, conformance, and full-stack tests

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

      AltStyle によって変換されたページ (->オリジナル) /