Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Add wasmtime http load test in the CI #770

Merged
merged 10 commits into from
Dec 12, 2024
Merged

feat: Add wasmtime http load test in the CI #770

merged 10 commits into from
Dec 12, 2024

Conversation

Mossaka
Copy link
Member

@Mossaka Mossaka commented Dec 11, 2024

This PR adds a HTTP load test using the CLI hey to the CI workflow. Key changes include:

  1. Added test-image/http and load/http targets to the Makefile to create and load HTTP OCI image.
  2. Updated crates/containerd-shim-wasmtime/README.md image reference for the wasmtime shim.
  3. Added a new composite action for load testing using hey
  4. Updated the .github/workflows/benchmarks.yml to include steps for starting and stopping the wasmtime shim running HTTP server and load tests, and report the result to the action.
  5. Added a new Python script to parse the output from hey and format it as JSON for reporting HTTP RPS and p95 latency.

Signed-off-by: Jiaxiao (mossaka) Zhou <[email protected]>
this adds a few new steps to the Benchmark job to report wasmtime HTTP throughput and latency results

Signed-off-by: Jiaxiao (mossaka) Zhou <[email protected]>
@Mossaka Mossaka requested review from Copilot and andreiltd December 11, 2024 04:56

Choose a reason for hiding this comment

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

Copilot reviewed 4 out of 5 changed files in this pull request and generated no suggestions.

Files not reviewed (1)
  • Makefile: Language not supported
Comments skipped due to low confidence (3)

scripts/parse-hey.py:28

  • [nitpick] The variable name 'rps' is ambiguous. It should be renamed to 'requests_per_second'.
rps = None

scripts/parse-hey.py:29

  • [nitpick] The variable name 'lat' is ambiguous. It should be renamed to 'latency'.
lat = None

scripts/parse-hey.py:52

  • The error message could be more user-friendly. Consider changing it to: 'Usage: python parse_hey.py <path_to_hey_output_file>'.
print("Usage: python parse_hey.py <hey-output-file>")
Copy link
Member

@andreiltd andreiltd left a comment

Choose a reason for hiding this comment

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

Nice! This is going to be very useful.

@Mossaka Mossaka merged commit ae030d2 into main Dec 12, 2024
71 checks passed
@Mossaka Mossaka deleted the load-test-http branch December 12, 2024 00:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants