Add nightly and on-demand gRPC benchmark triggers for OpenSearch 3.x#5955
Add nightly and on-demand gRPC benchmark triggers for OpenSearch 3.x#5955priyansh3006 wants to merge 4 commits intoopensearch-project:mainfrom
Conversation
📝 WalkthroughWalkthroughAdds ADDITIONAL_CONFIG parameter to the GenericTrigger variables block in the pull-request pipeline and introduces new Jenkins cron schedules with expanded workload scenarios (including GRPC-based testing) to the benchmark-test pipeline. Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Possibly related PRs
Suggested labels
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing touches
🧪 Generate unit tests (beta)
Comment |
Signed-off-by: Priyansh Gupta <priyansh3006@example.com>
Signed-off-by: Priyansh Gupta <priyansh3006@example.com>
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Fix all issues with AI agents
In `@jenkins/opensearch/benchmark-pull-request.jenkinsfile`:
- Around line 198-199: Remove the duplicate environment mapping for
ADDITIONAL_CONFIG: locate the array entries where [key: 'TELEMETRY_PARAMS',
value: '$.TELEMETRY_PARAMS'] and two [key: 'ADDITIONAL_CONFIG', value:
'$.ADDITIONAL_CONFIG'] entries appear (the duplicate ADDITIONAL_CONFIG should be
removed), leaving a single ADDITIONAL_CONFIG mapping; verify the remaining
mapping is the intended one and update any surrounding comments if necessary to
avoid future duplication.
🧹 Nitpick comments (2)
jenkins/opensearch/benchmark-test.jenkinsfile (2)
64-64: Consider addinginstance-typeto USER_TAGS for consistency.Most other nightly benchmark entries include
instance-type:...in USER_TAGS for tracking and filtering metrics. This entry usesr5.xlargebut doesn't include it in the tags.- H 2 * * * %DISTRIBUTION_URL=https://ci.opensearch.org/ci/dbc/distribution-build-opensearch/3.5.0/latest/linux/x64/tar/dist/opensearch/opensearch-3.5.0-linux-x64.tar.gz;DISTRIBUTION_VERSION=3.5.0;TEST_WORKLOAD=grpc_bulk;SINGLE_NODE_CLUSTER=true;DATA_INSTANCE_TYPE=r5.xlarge;USER_TAGS=run-type:nightly,transport-type:grpc,api-type:grpc-bulk,arch:x64;WORKLOAD_PARAMS={"number_of_replicas":"0","number_of_shards":"1"};TEST_PROCEDURE=default;CAPTURE_NODE_STAT=true;MIN_DISTRIBUTION=true;ADDITIONAL_CONFIG=aux.transport.types:transport-grpc,aux.transport.transport-grpc.port:9400-9500 + H 2 * * * %DISTRIBUTION_URL=https://ci.opensearch.org/ci/dbc/distribution-build-opensearch/3.5.0/latest/linux/x64/tar/dist/opensearch/opensearch-3.5.0-linux-x64.tar.gz;DISTRIBUTION_VERSION=3.5.0;TEST_WORKLOAD=grpc_bulk;SINGLE_NODE_CLUSTER=true;DATA_INSTANCE_TYPE=r5.xlarge;USER_TAGS=run-type:nightly,transport-type:grpc,api-type:grpc-bulk,arch:x64,instance-type:r5.xlarge;WORKLOAD_PARAMS={"number_of_replicas":"0","number_of_shards":"1"};TEST_PROCEDURE=default;CAPTURE_NODE_STAT=true;MIN_DISTRIBUTION=true;ADDITIONAL_CONFIG=aux.transport.types:transport-grpc,aux.transport.transport-grpc.port:9400-9500
75-75: Same suggestion: addinstance-typeto USER_TAGS.For consistency with other entries and to enable filtering benchmark metrics by instance type, consider adding
instance-type:r5.xlargeto the USER_TAGS.- H 3 * * * %DISTRIBUTION_URL=https://ci.opensearch.org/ci/dbc/distribution-build-opensearch/3.5.0/latest/linux/x64/tar/dist/opensearch/opensearch-3.5.0-linux-x64.tar.gz;DISTRIBUTION_VERSION=3.5.0;TEST_WORKLOAD=grpc_search;SINGLE_NODE_CLUSTER=true;DATA_INSTANCE_TYPE=r5.xlarge;USER_TAGS=run-type:nightly,transport-type:grpc,api-type:grpc-search,arch:x64;WORKLOAD_PARAMS={"number_of_replicas":"0","number_of_shards":"2"};TEST_PROCEDURE=default;CAPTURE_NODE_STAT=true;MIN_DISTRIBUTION=true;ADDITIONAL_CONFIG=aux.transport.types:transport-grpc,aux.transport.transport-grpc.port:9400-9500 + H 3 * * * %DISTRIBUTION_URL=https://ci.opensearch.org/ci/dbc/distribution-build-opensearch/3.5.0/latest/linux/x64/tar/dist/opensearch/opensearch-3.5.0-linux-x64.tar.gz;DISTRIBUTION_VERSION=3.5.0;TEST_WORKLOAD=grpc_search;SINGLE_NODE_CLUSTER=true;DATA_INSTANCE_TYPE=r5.xlarge;USER_TAGS=run-type:nightly,transport-type:grpc,api-type:grpc-search,arch:x64,instance-type:r5.xlarge;WORKLOAD_PARAMS={"number_of_replicas":"0","number_of_shards":"2"};TEST_PROCEDURE=default;CAPTURE_NODE_STAT=true;MIN_DISTRIBUTION=true;ADDITIONAL_CONFIG=aux.transport.types:transport-grpc,aux.transport.transport-grpc.port:9400-9500
📜 Review details
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (2)
jenkins/opensearch/benchmark-pull-request.jenkinsfilejenkins/opensearch/benchmark-test.jenkinsfile
🔇 Additional comments (1)
jenkins/opensearch/benchmark-test.jenkinsfile (1)
64-64: Verify gRPC workloads exist in the benchmark-workloads repository.The new cron entries reference
grpc_bulkandgrpc_searchworkloads that are resolved from the external opensearch-benchmark-workloads repository. Confirm these workloads are defined at https://github.com/opensearch-project/opensearch-benchmark-workloads. Theaux.transport.typesandaux.transport.transport-grpc.portconfiguration keys in ADDITIONAL_CONFIG should also be validated against OpenSearch 3.5.0 documentation to ensure they are recognized parameters.
✏️ Tip: You can disable this entire section by setting review_details to false in your review settings.
dea440d to
593bbd1
Compare
Signed-off-by: Priyansh Gupta <priyansh3006@example.com>
Signed-off-by: Priyansh Gupta <priyansh3006@gmail.com>
Description
This PR enables automated nightly benchmarking for the gRPC transport layer (Bulk and Search workloads) on OpenSearch 3.5.0 . It also supports on-demand gRPC tests via GitHub comments.
Related: opensearch-project/OpenSearch#19750
Changes
1)Added nightly cron schedules for grpc_bulk (2:00 AM) and grpc_search (3:00 AM) in benchmark-test.jenkinsfile.
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.