Hyperfoil bulk#1890
Conversation
Bumps org.eclipse.jetty:jetty-server from 12.0.12 to 12.0.32. --- updated-dependencies: - dependency-name: org.eclipse.jetty:jetty-server dependency-version: 12.0.32 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com>
…se.jetty-jetty-server-12.0.32 Bump org.eclipse.jetty:jetty-server from 12.0.12 to 12.0.32
Reviewer's GuideAdds a new Hyperfoil-based bulk API test scenario and updates the Jetty dependency version. Sequence diagram for Hyperfoil-driven bulk API test executionsequenceDiagram
actor Tester
participant Hyperfoil
participant OpenshiftRoute as Openshift_route
participant KruizeService as Kruize_service
participant Jetty as Jetty_12_0_32
participant BulkAPI as Bulk_API_handler
Tester->>Hyperfoil: Start_kruize-bulk-hyperfoil_yaml_test
Hyperfoil->>OpenshiftRoute: HTTP_bulk_request_batch
OpenshiftRoute->>KruizeService: Forward_bulk_request
KruizeService->>Jetty: Dispatch_HTTP_request
Jetty->>BulkAPI: Invoke_bulk_API_handler
BulkAPI-->>Jetty: Bulk_response_payload
Jetty-->>KruizeService: HTTP_response
KruizeService-->>OpenshiftRoute: Forward_response
OpenshiftRoute-->>Hyperfoil: HTTP_response
Hyperfoil-->>Tester: Report_latency_throughput_metrics
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
There was a problem hiding this comment.
Hey - I've left some high level feedback:
- The Hyperfoil test hardcodes the OpenShift route hostname, which will make this difficult to run in other environments; consider parameterizing the host (e.g., via a property or environment variable) instead of embedding a cluster-specific URL.
- In the Hyperfoil scenario you capture
job.statusandtotal.experimentsbut never assert on them; adding explicit checks (e.g., expecting a certain status or minimum experiments) would make the test detect regressions instead of just collecting values.
Prompt for AI Agents
Please address the comments from this code review:
## Overall Comments
- The Hyperfoil test hardcodes the OpenShift route hostname, which will make this difficult to run in other environments; consider parameterizing the host (e.g., via a property or environment variable) instead of embedding a cluster-specific URL.
- In the Hyperfoil scenario you capture `job.status` and `total.experiments` but never assert on them; adding explicit checks (e.g., expecting a certain status or minimum experiments) would make the test detect regressions instead of just collecting values.Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.
There was a problem hiding this comment.
Pull request overview
Adds an initial Hyperfoil benchmark to exercise the Bulk API endpoint and updates the Jetty dependency version in the Maven build.
Changes:
- Added a Hyperfoil YAML scenario to POST
/bulkand then GET/bulkstatus. - Bumped
jetty-versionfrom12.0.12to12.0.32inpom.xml.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 4 comments.
| File | Description |
|---|---|
| tests/scripts/hyperfoil_tests/kruize-bulk-hyperfoil.yaml | Introduces a Hyperfoil benchmark intended to validate basic /bulk job creation + status retrieval. |
| pom.xml | Updates Jetty version property used by Jetty dependencies. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
@ncau Can you please include more description about the PR. |
|
@ncau Can you resolve the conflicts and add description and documentation for this test. |
|
@kusumachalasani added more info let me know if I need to clarify anything else and resolved the merge conflict. |
|
@chandrams @kusumachalasani added new documentation should help clear up issues. |
|
@ncau Please automate the whole process of running the test and print the results by the end of the script. I would suggest use jbang-hyperfoil or install hyperfoil itself through script. |
|
@kusumachalasani review the install script please |
| @@ -0,0 +1,93 @@ | |||
| # Kruize Bulk API — Hyperfoil Load Test | |||
There was a problem hiding this comment.
@ncau Please move this into tests/scripts/local_monitoring_tests/bulk_load_test. Also the test should be completely automated from doing all the setup required to running the tests and processing the results.
There was a problem hiding this comment.
I updated the location and had it run the script automatically. What do we need from a results point of view, in terms of processing? is there a specific format we need the output in?
There was a problem hiding this comment.
@kusumachalasani I 'm not familiar with hyperfoil output here, can you suggest on what needs to be checked in terms of metrics captured to automate the validation of this test.
@ncau This test should be completely automated to run on Jenkins, so all setup, test run and validation to check if results are as expected needs to be added. On success we exit with 0 and on failures we exit with 1 in other tests for perf lab jenkins
Description
Adding a basic test for the bulk api using hyperfoil. Creates a single bulk request with the following JSON:
It then requests the Job ID to look for a successful run looking at the status and the total experiments. Currently the users are set to 1 (a single request with these parameters. We can alter this however we would like to include more requests.
Fixes # (issue)
Type of change
How has this been tested?
Please describe the tests that were run to verify your changes and steps to reproduce. Please specify any test configuration required.
Test Configuration
ITCP Openshift cluster
Checklist 🎯
Additional information
Include any additional information such as links, test results, screenshots here
Summary by Sourcery
Add a Hyperfoil-based performance test for the bulk API and update the Jetty dependency version.
New Features:
Build:
Tests: