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

feature request: Per-benchmark thresholds #520

Open
ollie-etl opened this issue Oct 18, 2024 · 1 comment
Open

feature request: Per-benchmark thresholds #520

ollie-etl opened this issue Oct 18, 2024 · 1 comment

Comments

@ollie-etl
Copy link

ollie-etl commented Oct 18, 2024

Currently thresholds are specified per testbed, measure, and branch. I'm requesting that it is also extend to include (maybe optional) benchmark

if I generate report which looks like this

{   "benchmark 1": {
            "foo": 17.0,
            "bar": 42.0
     },
     "benchmark 2": {
            "foo": 450000.0,
            "bar": 10000000.0
     }
}

Lets say I'd like to be able to determine that "benchmark 1". "foo" doesn't exceed 20, and "benchmark 2"."foo"` doesn't exceed 50000. I currently can't, or at least it would require normalising the results. If the units have physical significance, this isn't desirable.

@epompeii
Copy link
Member

epompeii commented Oct 19, 2024

@ollie-etl you are correct, a Threshold is currently tied to the combination of Branch, Testbed, and Measure and then it is applied to all Benchmarks within that set.

Lets say I'd like to be able to determine that "benchmark 1". "foo" doesn't exceed 20, and "benchmark 2". "foo" doesn't exceed 50000.

This should currently be possible using a Percentage Test (percentage) with an Upper Boundary set to 0.0. Likewise, you can also guarantee it doesn't go below that set value by setting a Lower Boundary of 0.0.

You will also want to set the Max Sample Size to 2 so that it is only ever comparing against the most recent historical result.

Better filtering for which Benchmarks to apply a Threshold to is something that I've been putting some thought towards: #366
However, I think the above solution should be sufficient to handle your example use case.

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

No branches or pull requests

2 participants