feat(viz): rework the benchmark report's controls, axes and export - #4
Open
4D0R wants to merge 1 commit into
Open
feat(viz): rework the benchmark report's controls, axes and export#44D0R wants to merge 1 commit into
4D0R wants to merge 1 commit into
Conversation
- name response time as TTLT; drop "Show " from control labels - derive the latency axis from the drawn percentile lines, and hold it steady when layers are toggled - reserve space for the cache-mix bands so other layers can't cross them - give totals a right-hand axis in token units, shown with the layer - draw requests as a p10-p90 band, falling back to individual dots once the view is zoomed in enough to read them - split Select All between layers and variants, and sync the legend, modal and summary from one state pass - replace native title help with a styled, keyboard-reachable tooltip - exit zoom with Esc; drop the Reset Zoom button - export per-request and summary CSV from the report itself - start with errors and totals off; drop the variant filter box and the per-tick x-axis value rows
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.
What
Reworks the generated HTML report (
benchmark/visualize.go). No change tobenchmark execution, the JSONL schema, or the CLI.
Axes
rather than raw per-request extremes, and stays put when layers are
toggled — ticking a layer reveals a line instead of rescaling the chart.
longer draw through them.
is shown, replacing an unlabelled 0-1 fraction that shared the latency
scale.
Requests layer
falling back to dots once the view is zoomed in enough to read them. The
threshold is evaluated once per chart, so arms cannot render in different
styles at the same zoom.
Controls
moved into the filter modal beside the checkboxes it controls, where it
previously drove a widget in another panel and appeared to do nothing.
Response Time / TTLT, noShowprefix).latency lines without the ingest area over them.
already cover variant visibility) and the per-tick x-axis value rows.
Help
title: styled, prompt, keyboard reachable,and not clipped by a scrolling panel. The affordance is a dotted underline
on the label rather than an added glyph.
Zoom
Escexits a zoom. Double-click retained;Reset Zoombutton removed.Export
(zoom window, hidden arms, filters), with a commented provenance header.
Generated client side, so a report that has been copied elsewhere still
yields its data without network access.
Testing
gofmt,go vet, and the suite under-race.benchmark/visualize_samples_test.go.tooltip placement and keyboard paths,
Escprecedence, axis stabilityacross layer permutations, the band/dots threshold, and CSV row counts and
scoping.
Notes
benchmark/visualize_samples_test.godrops assertions for the removedx-axis-values control and updates two label strings.
TestNoDatasetAxisRowsJSkeeps its real assertion — that the cache-mixoverlay must not grow the bottom margin — now that the bottom margin is a
fixed constant.
the header says so and points to the full CSV written alongside a run.