Commit Graph

349 Commits

Author SHA1 Message Date
Jan Tattermusch 7c10e1b9fe
stop running protobuf_async_streaming_from_server_qps_unconstrained_secure scenario on CI (#27346) 2021-09-15 10:00:51 +02:00
Donghao Qiu dc19d6c132
add file existance check (#27133) 2021-09-02 03:32:56 -07:00
Richard Belleville b6cc72f129
Revert "Run 2to3 on tools directory (#26002)" (#27183)
This reverts commit a388361c3d.
2021-08-30 12:29:20 -07:00
Richard Belleville a388361c3d
Run 2to3 on tools directory (#26002)
* Run 2to3 on tools directory

* Delete github_stats_tracking

* Re-run 2to3

* Remove unused script

* Remove unused script

* Remove unused line count utility

* Yapf. Isort

* Remove accidentally included file

* Restore line_count directory
2021-08-30 09:25:21 -07:00
Donghao Qiu 1e84143126
Save node info to BigQuery (#27113)
* save nodeinfo to bigquery

* correct format
2021-08-24 21:02:40 -07:00
Wanlin Du 971e95b906
Update related scripts to populate BigQuery fields (#26778)
* Update related scripts to populate BigQuery fields
2021-08-24 07:42:35 -07:00
Lidi Zheng 2231c2ba77
Introduce Python import sorting to our sanity test suite (#26768)
* Add isort_code.sh to sanity tests

* Run tools/distrib/isort_code.sh

* Fine tune the import order for relative imports

* Make pylint and project generation happy

* Fix a few corner cases

* Use --check instead of --diff

* The import order impacts test result somehow

* Make isort print diff and check output at the same time

* Let tools/run_tests/python_utils be firstparty library

* Run isort against latest HEAD
2021-07-26 12:31:21 -07:00
Paulo Castello da Costa 28ec34ac68
Update README. (#26572)
Updates the README file for performance tests.
2021-06-30 16:39:18 -07:00
Wanlin Du 82871fe497
Update templates for php7 and php7_protobuf_c examples (#26578)
* Update templates for php7 and php7_protobuf_c examples
* Update templates and loadtest_examples.sh
2021-06-29 20:51:07 -07:00
Wanlin Du d18b6f7df9
Fix executable path for Java workers (#26545)
This commit fix executable path in the prebuilt template for Java
tests.
2021-06-24 05:56:06 -07:00
Wanlin Du f133d8334d
Feature/updating templates to support worker timeouts. (#26516)
This PR update templates for both basic and prebuilt load tests to support worker timeouts.

See also #26505.
2021-06-23 15:02:11 -07:00
Paulo Castello da Costa 41d2db8cb0
Name driver when generating load test configs. (#26501)
This change ensures that a valid driver configuration is always included in generated load test configurations, and that the driver pod is named with an index (`0`, since there is only one driver), in the same way as client and server pods.

Generated examples can be found in https://github.com/grpc/test-infra/pull/189.

With this change, it is no longer necessary to specify a driver image in order to specify a driver name and pool, so that is removed from the kokoro jobs.
2021-06-22 09:15:00 -07:00
Paulo Castello da Costa 8c9f3c2b30
Update tools in preparation for load test timeouts. (#26505)
- Support multiline strings in template generation (as already supported in config generation, supporting roundtrip).
- Ignore substitution of variables that are set by the controller at runtime (`DRIVER_PORT`, `KILL_AFTER`, `POD_TIMEOUT`).
2021-06-21 12:06:30 -07:00
Paulo Castello da Costa 22cbc3a388
Ensure valid formatting of LoadTest names. (#26477)
Names must consist of lowercase alphanumeric characters and dashes, start with an alphabetical character, and not end with a dash.
2021-06-14 16:39:11 -07:00
Donghao Qiu 2d8546a3c4
Generate tests with the real names (#26427)
Generates performance tests with real names instead of uuids. This allows test names to be up to 253 characters long, which is now supported by the framework.
2021-06-14 12:58:11 -07:00
Paulo Castello da Costa e76afe5457
Update load test template and config generation. (#26398)
* Update load test template and config generation.

This change includes the following features and fixes:

* Add a script to generate load test examples.
* Update template generation logic to support round trip from configs to templates (handling of repeated clients and servers for the same language and of named clients and servers in source configs).
* Integrate safe language names from scenario config.
* Update template and config formatting (now that we generate in round trip).
* Fix shellcheck lint warnings.
* Update README.md.
2021-06-02 12:57:32 -07:00
Paulo Castello da Costa 8bdbb74425
Fix driver configuration in loadtest templates. (#26372)
This change fixes the format and location of the images in the driver configuration, so tests run with the proper driver configuration instead of a default.
2021-05-26 05:02:20 -07:00
Paulo Castello da Costa 28e73716c7
Support for multiple clients and other improvements in load test config generation. (#26350)
This change adds the following features and improvements to load test generation:

* Multiple client instances are supported by setting the option `--instances_per_client`.
* `python_asyncio` is supported as a separate language.
* `php` is renamed to `php7` to match the scenario language names.
* Client and server names are shortened by the introduction of an index (`0`, `1`, ... with an optional prefix). This index replaces the uuid added to pod names when no component name is specified.
* Driver pool and image substitution are added to template generation.
* Empty entries are removed from the final configuration.

NOTE: Controller is currently not respecting driver settings from configuration, so driver is still named with a uuid. This will be addressed separately.
2021-05-25 10:13:33 -07:00
AJ Heller 12372fb69f
Fix invalid argument in README example for loadtest_config.py (#26277)
This example crashes the driver process, since `bq_upload_result.py` expects
the `big_query_table` argument to have the format `<dataset name>.<table name>`.
The project ID is already encoded in the script.

```
+ python3 /src/code/tools/run_tests/performance/bq_upload_result.py --bq_result_table=grpc-testing.e2e_benchmarks.experimental_results_hork_x5
Traceback (most recent call last):
  File "/src/code/tools/run_tests/performance/bq_upload_result.py", line 177, in <module>
    dataset_id, table_id = args.bq_result_table.split('.', 2)
ValueError: too many values to unpack (expected 2)
```
2021-05-20 08:53:37 -07:00
Paulo Castello da Costa 1e187b58db
Run all kokoro performance tests on dedicated node pools. (#26286)
* Run all kokoro performance tests on dedicated node pools.

Both official and experimental tests run with kokoro are set to run on separate node pools with the suffix "-ci" (drivers-ci, workers-8core-ci, workers-32core-ci), separate from the default pools used for manual runs.
2021-05-18 22:49:23 -07:00
Wanlin Du 8a2754487c
Employ prebuilt images in continuous build. (#26184)
* Employ prebuilt images in continuous build.

This commits updated Kokoro build job to use prebuilt images to
run tests. The loadtest template was generated using
loadtest_template.py.
2021-05-11 15:08:41 -07:00
Paulo Castello da Costa 1c49176a24
Add load test that measures QPS for dashboard display. (#26153)
This changes adds a test that measures QPS. The tests currently running measure latency, which is more variable.
2021-05-04 10:46:29 +02:00
Paulo Castello da Costa 44a4a2ea62
Fix typos and format of LoadTest generator output. (#26149)
This change fixes typos and makes minor changes to the format of the generated yaml files for LoadTest configuration (embedded scenarios end in newline, and element lists are indented). The templates generated earlier are also updated.
2021-05-03 00:07:20 -07:00
Paulo Castello da Costa 2fc80c234b
Do not use flow style when dumping LoadTest configurations. (#26071) 2021-04-23 08:01:37 -07:00
Paulo Castello da Costa 4c7bd972d3
Fix saving results to BigQuery from Kokoro in OSS benchmarks. (#26049) 2021-04-22 09:41:09 +02:00
Paulo Castello da Costa 16897e94d3
Delete duplicate paragraph and fix typos in README. (#26052) 2021-04-22 09:39:30 +02:00
Paulo Castello da Costa bb418da2b5
Run example benchmarks v2 test in continuous build. (#25976)
This commit includes the following changes:

1. A new load test template generator (loadtest_template.py) is added. The template generator combines existing configurations or templates for several languages into a single template that can be used to generate configurations for different languages or combinations of languages.

2. A basic template generated from the example tests in grpc/test-infra (loadtest_template_basic_all_languages.yaml) is added.

3. The load test config generator is updated to use the combined template.

4. An example run consisting of a single test (generated from the combined template) is added and set up to run continuously.
2021-04-20 21:50:35 -07:00
Paulo Castello da Costa 3ad2e3185f
LoadTest generator for OSS benchmarks framework. (#25781)
* LoadTest generator for OSS benchmarks framework.

This change adds a LoadTest configuration generator for the OSS
benchmarks framework. The output of the generator is a multipart
YAML file that specifies uniquely named LoadTest resources that
can be applied to a kubernetes cluster.

For the benchmarks framework, see  https://github.com/github/test-infra.
2021-04-06 15:19:17 -07:00
Yash Tibrewal 13a4888183 Remove disrespectful terms 2021-02-08 14:51:06 -08:00
Sergii Tkachenko 8db79e2e71 Python style: reformat code using updated yapf 0.30.0 2021-01-13 14:00:12 -05:00
Jan Tattermusch 8b775834d6 add "scenarios" top level element 2020-12-02 10:56:41 +01:00
Jan Tattermusch 4dfd34f002 add a simple export tool for JSON performance scenarios 2020-10-28 13:05:58 +01:00
Patrice Chalin 891ca8a443 Guides links updates 2020-06-16 08:58:33 -04:00
Lidi Zheng d657d73565 Integrate existing gRPC Python stack benchmarks with Bazel 2020-02-26 16:56:12 -08:00
Lidi Zheng fdbeb3c5c3 Enforce 1 channel per client 2020-02-18 16:28:18 -08:00
Lidi Zheng c22b161d4e Improve benchmark automations:
1. Use monotonic time;
2. Improve readabilities;
3. Add two more fields for number of processes.
2020-02-18 16:28:18 -08:00
Lidi Zheng 50a7c863dd Add nto1 scenario between aio and C++ 2020-02-18 16:28:18 -08:00
Lidi Zheng 72514e9bf4 Adding more comments & fix the outstanding channel count 2020-02-18 16:27:29 -08:00
Lidi Zheng 4819d8ba6e Improve scenario configs & plumb through channel arguments 2020-02-18 16:27:29 -08:00
Lidi Zheng 68be8a7742 Improve log readability & polish scenario parameters 2020-02-18 16:27:29 -08:00
Lidi Zheng 03e1bf1071 Fix already cancelled RPC 2020-02-18 16:27:29 -08:00
Lidi Zheng df7d02c887 Make shellcheck happy 2020-02-18 16:27:29 -08:00
Lidi Zheng 32d83a9c28 Use tools/bazel instead of installed bazel 2020-02-18 16:27:29 -08:00
Lidi Zheng c702f7238e s/blaze/bazel/ 2020-02-18 16:27:29 -08:00
Lidi Zheng 3a46fc73dd Use Bazel to build and run aio qps worker 2020-02-18 16:27:29 -08:00
Lidi Zheng e9b1cddb97 Fix the cpp server scenarios 2020-02-18 16:27:29 -08:00
Lidi Zheng 88077403cb Add full capacity benchmark scenario 2020-02-18 16:27:29 -08:00
Lidi Zheng 8bede2fe91 Explicitly disable fork support 2020-02-18 16:27:29 -08:00
Lidi Zheng 8a70e757fa Re-enable all scenarios 2020-02-18 16:27:29 -08:00
Lidi Zheng 5e2114d92f Fix the sub worker 2020-02-18 16:27:29 -08:00