Skip to content

DEBS benchmark: Core Code for Accuracy Checking and Replay - #97

Merged
zzylol merged 1 commit into
mainfrom
debs_benchmark
Apr 4, 2026
Merged

zzylol merged 1 commit into
mainfrom
debs_benchmark

Conversation

@GnaneshGnani

@GnaneshGnani GnaneshGnani commented Apr 1, 2026

Copy link
Copy Markdown
Contributor

Benchmarking harness for DEBS 2022 queries under datasets_eval/debs/benchmark/.

  • common.py: DEBS_ROOT, data_path(), day_to_filename(), query group constants
  • replay.py: chunked CSV read, OTLP gauge replay
  • scrape.py: pull metrics from collector/Prometheus
  • compare.py: shared comparison infrastructure (get_best_snapshot_for_query, extract_ddsketch_median, _COMPARE_DISPATCH); per-query compare functions added by each debs_q* PR
  • analyze.py: latency/throughput report generation
  • run.py: orchestrates throughput / latency / compare modes
  • requirements.txt, .gitignore

Base: debs_gt (merge after PR #110).

@GnaneshGnani
GnaneshGnani changed the base branch from debs_controller to debs_gt April 1, 2026 01:05
@GnaneshGnani GnaneshGnani changed the title benchmark: core harness DEBS benchmark: Core Code for Verification and Replay Apr 1, 2026
@GnaneshGnani
GnaneshGnani requested a review from zzylol April 1, 2026 01:38
Comment thread datasets_eval/debs/benchmark/scrape.py
@zzylol

zzylol commented Apr 1, 2026

Copy link
Copy Markdown
Contributor

What do you mean by verification in the PR title?

@GnaneshGnani

Copy link
Copy Markdown
Contributor Author

Verification means comparing the ground truths for the statistical queries with the sketch output

@GnaneshGnani

Copy link
Copy Markdown
Contributor Author

@zzylol, added the README.md

You can just change the query number in the command it will run

@zzylol

zzylol commented Apr 4, 2026

Copy link
Copy Markdown
Contributor

Verification means comparing the ground truths for the statistical queries with the sketch output

Let's rename it as "accuracy check"

@zzylol zzylol changed the title DEBS benchmark: Core Code for Verification and Replay DEBS benchmark: Core Code for Accuracy Checking and Replay Apr 4, 2026

@zzylol zzylol left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let me resolve the updates in controller and I think the datasets/eval part is okay to merge.

Rebased on latest main. Dropped stale controller changes (already on
main via PRs #96, #116, #117, #119).

Only benchmark tooling remains:
- replay.py: replay DEBS dataset through OTel collector
- run.py: orchestrate benchmark runs
- scrape.py: collect Prometheus metrics during run
- analyze.py: parse benchmark results
- compare.py: compare sketch results to ground truth
- summarize.py: generate summary tables
- ground_truth/: ground truth computation for accuracy checking

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@zzylol
zzylol changed the base branch from debs_gt to main April 4, 2026 22:26
@zzylol
zzylol merged commit cf9a2cc into main Apr 4, 2026
@zzylol
zzylol deleted the debs_benchmark branch April 4, 2026 22:27
SieDeta pushed a commit that referenced this pull request Apr 17, 2026
Rebased on latest main. Dropped stale controller changes (already on
main via PRs #96, #116, #117, #119).

Only benchmark tooling remains:
- replay.py: replay DEBS dataset through OTel collector
- run.py: orchestrate benchmark runs
- scrape.py: collect Prometheus metrics during run
- analyze.py: parse benchmark results
- compare.py: compare sketch results to ground truth
- summarize.py: generate summary tables
- ground_truth/: ground truth computation for accuracy checking

Co-authored-by: zz_y <zeyingz@umd.edu>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
zzylol added a commit that referenced this pull request May 8, 2026
…rt + archive-tier accuracy ground truth (#332)

This is the Option-B-as-sole-path validation re-run. With PR #329
(controller bootstrap GET → typed-stage-split) merged, the driver's
post-stack-up `POST /api/v1/plan` workaround (PR #328) is redundant
for the bootstrap path. Default it OFF so we can verify the bootstrap
GET actually carries the load; operators can keep the safety belt by
setting `ENABLE_OPTION_A_DRIVER_POST=1`.

Three coupled fixes also land here so the demo's verdict matrix
returns to all-green:

1. Backend container was crashing immediately on startup because
   `deploy/docker-compose/base.yml` passed `--ingest-port=9090` to a
   binary (`precompute_engine`, the deployed Dockerfile.backend
   target) that has no such flag — clap exited with `unexpected
   argument` and every subsequent Connection refused / failed POST
   from the controller cascaded from there. Drop the invalid flag and
   the redundant `19090:9090` host publish (Prometheus remote-write
   was deleted in ASAPQuery-backend PR #100; OTLP-only ingest goes
   over 4317 intra-docker).

2. `accuracy_reduce.py` is ported off the deleted
   `/var/asap/cold/raw/` JSONL tee onto the archive-engine-via-header
   path: `--cell-dir` re-issues each replay PromQL with
   `X-ASAP-Engine: thanos_archive` (Step 2.3 / PR #97) for ground
   truth. The driver's accuracy phase is rewritten to drop the
   `docker cp cold-truth/` step that was failing silently and
   skipping the entire reduce. The legacy JSONL path is kept behind
   `--use-jsonl` / `--use-jsonl-truth`.

3. STATUS detection in `capture_emitted_configs()` recognises the
   bootstrap-time typed marker
   (`[USE_TYPED_STAGE_SPLIT] emitted bootstrap config from typed path`)
   so a successful Option-B bootstrap renders as `live-bootstrap`
   even when the Option-A POST is gated off and `pushing typed`
   never fires.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants