Skip to content

Add nightly and on-demand gRPC benchmark triggers for OpenSearch 3.x#5955

Open
priyansh3006 wants to merge 4 commits intoopensearch-project:mainfrom
priyansh3006:feat/grpc-benchmark
Open

Add nightly and on-demand gRPC benchmark triggers for OpenSearch 3.x#5955
priyansh3006 wants to merge 4 commits intoopensearch-project:mainfrom
priyansh3006:feat/grpc-benchmark

Conversation

@priyansh3006
Copy link

@priyansh3006 priyansh3006 commented Feb 2, 2026

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.

@coderabbitai
Copy link

coderabbitai bot commented Feb 2, 2026

📝 Walkthrough

Walkthrough

Adds 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

Cohort / File(s) Summary
Pull Request Trigger Configuration
jenkins/opensearch/benchmark-pull-request.jenkinsfile
Adds ADDITIONAL_CONFIG to the GenericTrigger variables block alongside TELEMETRY_PARAMS to expand trigger payload parameters.
Benchmark Test Schedules
jenkins/opensearch/benchmark-test.jenkinsfile
Introduces new cron schedules with GRPC-based workload testing (grpc_bulk, grpc_search) and additional configuration blocks for distribution 3.5.0, complementing existing nested, noaa, and nyc_taxis workloads.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

Suggested labels

first-time-contributor

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately summarizes the main changes: adding nightly and on-demand gRPC benchmark triggers for OpenSearch 3.x.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Description check ✅ Passed The PR description clearly relates to the changeset, describing the addition of nightly gRPC benchmark schedules and support for on-demand gRPC tests via GitHub comments.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Comment @coderabbitai help to get the list of available commands and usage tips.

Priyansh Gupta added 2 commits February 2, 2026 19:42
Signed-off-by: Priyansh Gupta <priyansh3006@example.com>
Signed-off-by: Priyansh Gupta <priyansh3006@example.com>
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

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 adding instance-type to USER_TAGS for consistency.

Most other nightly benchmark entries include instance-type:... in USER_TAGS for tracking and filtering metrics. This entry uses r5.xlarge but 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: add instance-type to USER_TAGS.

For consistency with other entries and to enable filtering benchmark metrics by instance type, consider adding instance-type:r5.xlarge to 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

📥 Commits

Reviewing files that changed from the base of the PR and between 3181217 and dea440d.

📒 Files selected for processing (2)
  • jenkins/opensearch/benchmark-pull-request.jenkinsfile
  • jenkins/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_bulk and grpc_search workloads that are resolved from the external opensearch-benchmark-workloads repository. Confirm these workloads are defined at https://github.com/opensearch-project/opensearch-benchmark-workloads. The aux.transport.types and aux.transport.transport-grpc.port configuration 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.

Priyansh Gupta and others added 2 commits February 2, 2026 19:50
Signed-off-by: Priyansh Gupta <priyansh3006@example.com>
Signed-off-by: Priyansh Gupta <priyansh3006@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

1 participant