Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement per-benchmark over-time plots in comparison view #106

Merged
merged 28 commits into from
Aug 1, 2022

Conversation

smarr
Copy link
Owner

@smarr smarr commented Jul 31, 2022

This PR implements (part of) #104.

The comparison report now has an extra button to request the timeline/over-time plot for the benchmark.

It will show the data from the baseline and change branch, and highlight the current commit for both branches on the plot.

It will also indicate the 95th bootstrap confidence interval.

The implementation handles the cases where both commits are on the same branch, too.
Here, only the change commit is currently highlighted.

For the plots, I am using the uPlot library, instead of plot.ly.
It's more light-weight, which is likely of benefit for the already large report pages.

Other Changes

  • For debugging in production, this PR also introduces the use of tslog as library for more readable logs (Make log files more readable #72).
  • Introduce an assert() method that gives a stack trace instead of just printing Assertion Failed into the log
  • for initializing the database, I renamed a parameter to numBootstrapSamples, it was very cryptic and ambiguous before (numReplicates)

smarr added 18 commits July 28, 2022 19:48
…source

Fix naming of pretest script, was prep-resource before, which doesn’t make sense anymore.

Signed-off-by: Stefan Marr <[email protected]>
- also adjust button size to be slightly smaller

Signed-off-by: Stefan Marr <[email protected]>
This encodes the parameters of the benchmark on the button, and uses project name and baseline and change commit ids from the meta data of the page.

To distinguish the baseline and change branches, we request them first based on the commit ids.

The response to the UI is already prepared for display.

The plots are generated with uPlot, a lightweight canvas-based library. This seems more scalable than plot.ly.

To make TypeScript happy about uPlot, added path mappings, which makes the code work in the browser, too.

Signed-off-by: Stefan Marr <[email protected]>
…the command line

- align whitespace

Signed-off-by: Stefan Marr <[email protected]>
Signed-off-by: Stefan Marr <[email protected]>
- in the database, also determine whether a datapoint is the current one
- send the time stamp details to the client. this avoids having to send a lot of nulls in arrays
- on client, add data series that only contain the point to highlight, and display that one larger and filled with the light color

Signed-off-by: Stefan Marr <[email protected]>
- make the legend a proper table, that doesn’t jiggle as much around

Signed-off-by: Stefan Marr <[email protected]>
In the comparison view we however still want the current data point then being indicated as changed data point.

Strictly speaking, we’re missing the current data point for the baseline, though, well, that’s something for another day…

Signed-off-by: Stefan Marr <[email protected]>
@smarr
Copy link
Owner Author

smarr commented Jul 31, 2022

Some examples:
Screen Shot 2022-07-31 at 23 51 37
Screen Shot 2022-07-31 at 23 58 16

@smarr smarr mentioned this pull request Aug 1, 2022
@smarr smarr merged commit 06c6965 into master Aug 1, 2022
@smarr smarr deleted the time-line-plots-on-comparison-report branch August 1, 2022 09:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant