As a developer working on the Filecoin network, I want to have a stress testing tool (lotus-bench rpc) integrated into the lotus-ec2-tools testing and server deployment framework. This tool will allow us to perform comprehensive stress tests on the RPC methods of the Filecoin network, identify and address performance issues, and ensure the health and stability of the network with each lotus release.
Acceptance Criteria
The stress testing tool lotus-bench rpc is successfully integrated into the lotus-ec2-tools testing and server deployment framework.
The stress testing tool is capable of querying each RPC method both sequentially and concurrently.
The tool supports rate limiting for controlling the query rate of each method.
Multiple different endpoints can be queried simultaneously, with support for different concurrency levels and rate limits for each method.
After running the stress tests, the tool generates a comprehensive report summarizing the stress testing results for each method. The report includes:
Latency distribution
Latency histogram
HTTP and JSON error codes summary
Total Requests
Total Duration
Requests per second (QPS)
Average latency
Median latency
Technical Breakdown
[ ] Integrate the lotus-bench rpc tool into the lotus-ec2-tools repository.
[ ] Ensure the tool can be built using the existing build process of lotus-ec2-tools.
[ ] Update the test plan to include running the stress tests using lotus-bench rpc.
[ ] Modify the test plan to include capturing and storing the stress test results as a report.
[ ] Ensure the stress test results are formatted in a way that is easily readable and understandable.
[ ] Implement a mechanism to share the generated stress test report to Slack, similar to the existing issue for message profiling (#XYZ).
Deliverables
[ ] lotus-bench rpc integrated into the lotus-ec2-tools repository.
[ ] A comprehensive stress test report generated after running lotus-bench rpc.
[ ] The stress test report can be shared to Slack automatically upon test completion.
Future Work
Consider adding the stress testing tool lotus-bench rpc as part of the automated GitHub Actions workflow for continuous testing.
Run the lotus daemon with --pprof flag and generate reports
A way to call out in the testing tool if there's been a regression from previous runs
User Story
As a developer working on the Filecoin network, I want to have a stress testing tool (
lotus-bench rpc
) integrated into the lotus-ec2-tools testing and server deployment framework. This tool will allow us to perform comprehensive stress tests on the RPC methods of the Filecoin network, identify and address performance issues, and ensure the health and stability of the network with each lotus release.Acceptance Criteria
lotus-bench rpc
is successfully integrated into the lotus-ec2-tools testing and server deployment framework.Technical Breakdown
lotus-bench rpc
tool into the lotus-ec2-tools repository.lotus-bench rpc
.Deliverables
lotus-bench rpc
integrated into the lotus-ec2-tools repository.lotus-bench rpc
.Future Work
lotus-bench rpc
as part of the automated GitHub Actions workflow for continuous testing.