scylladb / argus

Apache License 2.0
4 stars 11 forks source link

Filter graphs data by release #473

Closed soyacz closed 4 weeks ago

soyacz commented 1 month ago

In performance regression tests we mix release version with 'master' versions. We'd like to filter per release/master all the points to see regressions for specified release.

soyacz commented 1 month ago

I got 2 ideas:

  1. One series for all release versions:

    • Each point on chart will also contain version info (e.g. 2024.1.10, dev, etc.).
    • new filter buttons will be added to filter 'major' releases e.g. 2024.1 2024.2 dev (for master). rc versions also will be put under major release. Selecting filter will hide points accordingly.
    • each point marker for 'official' release will get different point marker (e.g x) (I didn't confirm yet if can be done) while 'dev' ones will be marked by circle pros: will have less lines on graphs cons: hard to compare version to version as all points belong to one line
  2. One series per each release:

    • Series will be segregated by version (e.g. 2024.1, 2024.2, dev), basically adding new series for each release.
    • no filtering needed, on graphs user may click on series legend to hide it
    • distinction by point markers (chartjs have options: circle', 'rect', 'triangle', 'star', 'cross' - so max 5 versions on one graph) , colors the same pros: nicer comparison version to version (both visible on graph as separate lines), cons: for graphs where we have 3 series (e.g. 3 cycles) each version will duplicate that so can get messy after having 3 releases on one graph (9 data series + 3 limit series). also hiding will be more problematic as will require to click on each graph (unless we create also filters for bulk 'hide'/'show')

@israel I'm opting for option 2, but wanted to know your opinion and if I understand the problem&solution correctly.

fruch commented 1 month ago

seems like options 1 is simpler to achieve, maybe coloring differently the dot ?

and option 2 can get quite messy quite fast, and we will need lots handy quick filter to help us tame it to our needs.

I would suggest starting with option one, and let talk with @roydahan tomorrow about this one