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

Add performance and longevity testing validation to the release template #1752

Merged
merged 6 commits into from
Mar 17, 2022

Conversation

travisbenedict
Copy link
Contributor

@travisbenedict travisbenedict commented Mar 14, 2022

Signed-off-by: Travis Benedict benedtra@amazon.com

Description

Add steps to the release template for validating performance and longevity test results. These steps are not necessarily exhaustive but can serve as a starting point for our release process. Ultimately, these validations should be automated as our performance testing automation is built out more.

More details on the testing setup can be found in this issue outlining the results of performance experiments that I conducted - opensearch-project/OpenSearch#2461

Issues Resolved

Check List

  • Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Signed-off-by: Travis Benedict <benedtra@amazon.com>
@travisbenedict travisbenedict requested a review from a team as a code owner March 14, 2022 18:00
Copy link
Member

@dblock dblock left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the long page of details of how to identify regression tests doesn't belong here. We have a TODO in https://github.com/opensearch-project/opensearch-build/tree/main/src/test_workflow#performance-tests to fill out performance testing, care to move it there as part of this PR?

Signed-off-by: Travis Benedict <benedtra@amazon.com>
@@ -99,7 +99,65 @@ opensearch-dashboards=https://ci.opensearch.org/ci/dbc/bundle-build-dashboards/1

### Performance Tests

TODO
TODO: Add instructions on how run performance tests with `test.sh`
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These instructions can be updated with #1671 or after it's merged

Signed-off-by: Travis Benedict <benedtra@amazon.com>



#### How to identify regressions in performance tests
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add to TOC, cleanup capitalization to match other topics.

I would rename to "Identifying Regressions in Performance Tests"


Disclaimer: the guidelines listed below were determined based on empirical testing using OpenSearch Benchmark.
These tests were run against OpenSearch 1.2 build #762 and used the nyc_taxis workload with 2 warmup and 3 test iterations.
The values listed below are **not** applicable to other configurations. More details on the test setup can be found here: https://github.com/opensearch-project/OpenSearch/issues/2461
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This disclaimer is scary. It says that you cannot trust results. Try to be more prescriptive, remove that this is a disclaimer. What is one supposed to actually do? Run tests, then compare results. That's what this doc should say.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good points. I'll rewrite this section


Note that performance regressions are based on decreased indexing throughput and/or increased query latency.

Additionally, error rates on the order of 0.01% are acceptable, though higher ones may be cause for concern.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should be a section of its own. What happens if the error rates are higher? What does one do?




#### How to identify issues in longevity tests
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's zero information on what longevity tests are anywhere in these docs. To an uneducated reader it's impossible to understand what one does with it. Please provide context to all these things.

@codecov-commenter
Copy link

codecov-commenter commented Mar 16, 2022

Codecov Report

Merging #1752 (1841fc2) into main (faf26d1) will increase coverage by 5.20%.
The diff coverage is n/a.

@@              Coverage Diff              @@
##               main     #1752      +/-   ##
=============================================
+ Coverage     94.79%   100.00%   +5.20%     
=============================================
  Files           169         6     -163     
  Lines          3536       105    -3431     
  Branches         26        19       -7     
=============================================
- Hits           3352       105    -3247     
+ Misses          181         0     -181     
+ Partials          3         0       -3     
Impacted Files Coverage Δ
src/test_workflow/integ_test/integ_test_runner.py
...ests/jenkins/jobs/CopyContainer_docker_Jenkinsfile
...est_workflow/bwc_test/bwc_test_suite_opensearch.py
.../assemble_workflow/bundle_opensearch_dashboards.py
tests/jenkins/jobs/CreateReleaseTag_Jenkinsfile
...workflow/opensearch/build_artifact_check_plugin.py
src/run_manifests.py
src/ci_workflow/ci_check_list_dist.py
src/paths/tree_walker.py
...bs/PrintArtifactDownloadUrlsForStaging_Jenkinsfile
... and 153 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update faf26d1...1841fc2. Read the comment docs.

Signed-off-by: Travis Benedict <benedtra@amazon.com>
Signed-off-by: Travis Benedict <benedtra@amazon.com>
Copy link
Member

@dblock dblock left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a lot better, thank you! I went super nitpicky on the comments, feel free to make some/none/all the changes.

.github/ISSUE_TEMPLATE/release_template.md Outdated Show resolved Hide resolved
src/test_workflow/README.md Outdated Show resolved Hide resolved
@@ -3,6 +3,9 @@
- [Integration Tests](#integration-tests)
- [Backwards Compatibility Tests](#backwards-compatibility-tests)
- [Performance Tests](#performance-tests)
- [Identifying Regressions in Performance Tests](#identifying-regressions-in-performance-tests)
- [Identifying Regressions in Nightly Performance Tests](#identifying-regressions-in-nightly-performance-tests)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Did you mean all these to the at the same level?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I meant for the Nightly test section to be a subsection of performance tests in general, since it's worth reading that section first to get some background.

src/test_workflow/README.md Outdated Show resolved Hide resolved
src/test_workflow/README.md Outdated Show resolved Hide resolved
src/test_workflow/README.md Outdated Show resolved Hide resolved
Signed-off-by: Travis Benedict <benedtra@amazon.com>
@gaiksaya gaiksaya merged commit 087b64b into opensearch-project:main Mar 17, 2022
@travisbenedict
Copy link
Contributor Author

Thanks for the help on this @dblock. I really appreciate the feedback

@travisbenedict travisbenedict deleted the release_template branch March 17, 2022 17:27
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

Successfully merging this pull request may close these issues.

4 participants