benchmark: Adds TF modules, benchmark workspace#7966
Conversation
Adds two new modules under `infra/terraform/modules`: - `ec_deployment`: Provisions a new deployment in ESS / ECE. - `benchmark_executor`: Provisions a VM in the configured region and uploads a compiled version of `apmbench` to it with an `.envrc` file with credentials to index data into a configured deployment. Most of the codebase has been copied from `ecetest` and modified to work in a standalone module. Additionally, a new `testing/benchmark` workspace has been added which facilitates using the two modules with light automation via `make` and a few pre-configured settings. The result is a folder which can be used by devs or automation to create a configurable deployment (in ESS by default) which can be benchmarked using `apmbench` running in a remote VM which can also be configured. Signed-off-by: Marc Lopez Rubio <marc5.12@outlook.com>
|
This pull request does not have a backport label. Could you fix it @marclop? 🙏
NOTE: |
axw
left a comment
There was a problem hiding this comment.
LGTM.
Do you anticipate the TF modules being useful outside of benchmarking/performance testing? I wonder if we should move infra to testing/infra. Perhaps later we should also move apmbench so everything is close together.
Makefile
Outdated
|
|
||
| .PHONY: tf-docs | ||
| tf-docs: $(TERRAFORMDOCS) | ||
| @$(foreach dir, $(wildcard infra/terraform/modules/*),terraform-docs markdown --hide-empty --header-from header.md --output-file=README.md --output-mode replace $(dir);) |
There was a problem hiding this comment.
| @$(foreach dir, $(wildcard infra/terraform/modules/*),terraform-docs markdown --hide-empty --header-from header.md --output-file=README.md --output-mode replace $(dir);) | |
| @$(foreach dir, $(wildcard infra/terraform/modules/*),$(TERRAFORMDOCS) markdown --hide-empty --header-from header.md --output-file=README.md --output-mode replace $(dir);) |
I think?
There was a problem hiding this comment.
fixed and added a pattern rule to make it more "make"
|
That's a good point. Initially it probably makes sense to move it within the |
Signed-off-by: Marc Lopez Rubio <marc5.12@outlook.com>
🌐 Coverage report
|
Motivation/summary
Adds two new modules under
testing/infra/terraform/modules:ec_deployment: Provisions a new deployment in ESS / ECE.benchmark_executor: Provisions a VM in the configured region anduploads a compiled version of
apmbenchto it with an.envrcfilewith credentials to index data into a configured deployment.
Most of the codebase has been copied from
ecetestand modified to workin a standalone module.
Additionally, a new
testing/benchmarkworkspace has been added whichfacilitates using the two modules with light automation via
makeanda few pre-configured settings.
The result is a folder which can be used by devs or automation to create
a configurable deployment (in ESS by default) which can be benchmarked
using
apmbenchrunning in a remote VM which can also be configured.Checklist
- [ ] Update CHANGELOG.asciidoc- [ ] Update package changelog.yml (only if changes toapmpackagehave been made)How to test these changes
cd testing/benchmark && makemake run-benchmark BENCHMARK_RUN=BenchmarkAgent BENCHMARK_TIME=2mRelated issues