Continuous reporting and graceful termination in benchmark tool
- Dominant language
- Go
- Stars
- 52.3k
- Forks
- 10.5k
- Avg merge
- 2d 21h
- Merged PRs (30d)
- 43
Description
### What would you like to be added?
Currently, the benchmark tool is "blocking" in the sense that the collected metrics can only be viewed at the very end of a run. Can we add a command line option to report results periodically (in the form of json lines which can be parsed) while a benchmark run is in progress? Also, graceful termination—printing the summary and then exiting—upon receiving a SIGTERM could be very useful.
### Why is this needed?
Together, these two changes will enable us to expand the use case of the tool and use it to run long-term, "indefinite" benchmarking (i.e, run until user wants to stop). This will allow us to simulate real-world scenarios and observe cluster performance in near real-time, over several days. We needed to implement something like this, and so have made these changes on a downstream fork already; I'd now like to contribute this feature upstream.
Contributor guide
Research direction
The issue does not name files or tests; start by locating the benchmark tool entry point and its metric collection and termination handling. Review the downstream fork mentioned in the issue, then verify that periodic output is parseable JSON lines and that SIGTERM prints the summary before exit.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- cli, distributed-systems, performance
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100