-
Notifications
You must be signed in to change notification settings - Fork 439
ci: add pre-release performance quality gates prototype #13506
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
Conversation
|
Bootstrap import analysisComparison of import times between this PR and base. SummaryThe average import time from this PR is: 270 ± 10 ms. The average import time from base is: 270 ± 10 ms. The import time difference between this PR and base is: -6.1 ± 0.5 ms. Import time breakdownThe following import paths have shrunk:
|
BenchmarksBenchmark execution time: 2025-05-29 19:10:39 Comparing candidate commit 02f0eaa in PR branch Found 1 performance improvements and 1 performance regressions! Performance is the same for 506 metrics, 8 unstable metrics. scenario:iastdjangostartup-iast
scenario:telemetryaddmetric-1-gauge-metric-1-times
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, just one NB question 👍
check-warning-breaches: | ||
extends: .check-threshold-breaches | ||
script: | ||
- cd platform && (git init && git remote add origin https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.ddbuild.io/DataDog/benchmarking-platform && git pull origin python/macrobenchmarks) | ||
- bp-runner bp-runner.fail-on-breach.warning.yml |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
NB: I saw in the last pipeline that the macrobenchmarks pipeline was triggered and the SLO warning job failed. Initially I thought that we should be setting this as allow_fail: true
so that a warning doesn't become a blocker for PRs... but then I realized that would make it silent on the main
branch, which is what we're trying to alleviate 😅 If the intention of these checks is only for pre-release gating, maybe we can make this only trigger on main
and release branches?
What are your thoughts? 🤔
check-warning-breaches: | |
extends: .check-threshold-breaches | |
script: | |
- cd platform && (git init && git remote add origin https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.ddbuild.io/DataDog/benchmarking-platform && git pull origin python/macrobenchmarks) | |
- bp-runner bp-runner.fail-on-breach.warning.yml | |
check-warning-breaches: | |
extends: .check-threshold-breaches | |
only: | |
- main | |
- /^v[0-9]+\.[0-9]+\.[0-9]+$/ | |
script: | |
- cd platform && (git init && git remote add origin https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.ddbuild.io/DataDog/benchmarking-platform && git pull origin python/macrobenchmarks) | |
- bp-runner bp-runner.fail-on-breach.warning.yml |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi!
so that a warning doesn't become a blocker for PRs
I've made some updates. In summary, only one check-slo-breaches
job is necessary, and it'll check for warnings with a range defined on the thresholds file (bp-runner.fail-on-breach.yml
). Warnings won't fail the job 👍
we can make this only trigger on main and release branches?
Exactly, benchmarks considered for gating releases should be run on main
and release branches.
This is not the case for Python macrobenchmarks, which only run on schedule: https://github.com/DataDog/dd-trace-py/blob/main/.gitlab-ci.yml#L91-L94
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
something we found, the main trigger job needs to be strategy: depend
for the trigger
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we might want to try and do similar as the microbenchmarks which will use the artifacts from the download_ddtrace_artifacts
and use the pre-built wheels instead of installing from source which takes a few minutes.
Closing this due to updates on how breaches are checked, and due to the example PR I've added: #13584 @erikayasuda, this example PR can be a basis for the PR you need to add for https://datadoghq.atlassian.net/browse/APMSP-2051. |
https://datadoghq.atlassian.net/browse/APMSP-2000
Overview
Add a prototype for pre-release performance quality gates. This prototype doesn't actually gate anything.
Motivation
Necessary to validate the approach proposed in the pre-release performance quality gates RFC.
Testing
Testing pipelines:
Threshold configuration files added in: https://github.com/DataDog/benchmarking-platform/pull/157
Notifications are correctly being sent to #pre-release-gates-prototype.
Checklist
Reviewer Checklist