Repository navigation
eval: e2e block for multi-grouping and all tables - #209
Merged
Merged
Conversation
export_autosketch_eval_table.py --synthetic now writes workloads[0].e2e to every table. Schema templates have no PromQL (SQL is rendered downstream), so each schema RQE gets one structured query entry: table, value, capability, grouping, quantile (p99: 0.99), window_secs, interval_secs and its rqes. Each schema metric is a `records` table (`http`, `flows`; `data_i_http` under metric `data_i`) with SCHEMAS' labels, rate as records_per_sec, and values (scaled_by, anomaly, burst as in SCHEMAS). Classic entries are unchanged. The multigroup and all tables in autosketch-vs-asap-hydra/inputs/tables are regenerated; minus e2e they equal the committed ones byte for byte, and the classic tables are unchanged. Their roll-up plans were already exported by #203 (plans/*.plans.json.gz); a rerun of multigroup-shared1 and all-shared1 reproduces all 36 plans of each exactly, so the plans stand. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AnJ7LocWxguh3q4QWkCYae
Schema query entries identical apart from `rqes` (templates 14, 15 and 17 share some groupings) are merged into one entry whose `rqes` lists every RQE it reads, sorted, so each distinct SQL query appears once. Classic entries are unchanged. The multigroup and all tables are regenerated; minus e2e they still equal main's byte for byte. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AnJ7LocWxguh3q4QWkCYae
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AnJ7LocWxguh3q4QWkCYae
Contributor
|
@zzylol For ProjectASAP/ASAPQuery#856 ( {"sql": "SELECT service, QUANTILE(0.99, latency) FROM http WHERE ts BETWEEN DATEADD(s, -300, NOW()) AND NOW() GROUP BY service", ...}The planner would use it as written. ASAPQuery#844 would replace |
zzylol
added a commit
that referenced
this pull request
Oct 13, 2026
Table conflicts resolved by regenerating every table with the merged exporter and each table's original --revision (classic 44ac160, all and multigroup beacf68). Every structured e2e entry now has `sql`; the multigroup tables equal #209's byte for byte. Minus `e2e`, every table equals #210's previous head, so the plans and results stand. Templates 7 and 9 stay dropped and template 2's PromQL stays topk(32, sum_over_time(data[w])). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AnJ7LocWxguh3q4QWkCYae
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Every synthetic table now gets the
e2eblock that #208 added forclassictables, so ASAPQuery can run themultigroupandalltables end to end. Follow-up to #204, which left them out.The multi-grouping templates (11–17) have no PromQL form: their distinct counts are over a value field (
user_id,src_ip), and template 16's p99 pools every sample of a group over the window. ASAPQuery renders SQL for them from the structured fields below; classic templates keep their PromQL.metrics: each schema metric is arecordstable: SCHEMAS' labels (withchild_ofandskew),rateasrecords_per_sec, and itsvalues(withscaled_by,anomaly,burst). Under metricdata_1the table isdata_1_http.queries: one entry per distinct schema query,{table, value, capability, grouping, quantile (quantiles only), window_secs, interval_secs, rqes}. Entries identical but for their RQEs (templates 14, 15 and 17 share groupings) are merged into one entry that reads all of them, so each query string maps to its RQEs.(promql, interval)deduplication drops no RQE ids: the dropped duplicates read the same RQEs as the kept entry.No plans are regenerated. Nothing in the runner or scripts excluded
multigrouporallfrom the plan export, so #203 already committed their roll-up plans (each rolled-up RQE carriesdeployment_grouping).Example (
multigroup-shared1, template 16):{"capability": "quantile", "grouping": ["region", "service", "endpoint"], "interval_secs": 60, "quantile": 0.99, "rqes": ["synthetic/templates=multigroup/shared=1/t16_p99_latency_by_region,service,endpoint/values/15m"], "table": "http", "value": "latency", "window_secs": 900}Testing
e2eremoved, the 8 regeneratedmultigroupandalltables are byte-identical tomain's. The 4 classic tables regenerate byte-identical includinge2e.plan.tsvis unchanged.autosketch_vs_asapon the regeneratedmultigroup-shared1andall-shared1tables reproduces all 36 committed plans.metrics=2each query'stablenames one ofdata_0_http,data_1_flows, …; no two entries match apart fromrqes. The Python suite passes (28 tests);cargo test --release -p rqe-optimizerpasses.🤖 Generated with Claude Code
https://claude.ai/code/session_01AnJ7LocWxguh3q4QWkCYae