Continuous reporting and graceful termination in benchmark tool
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.
Source: etcd-io/etcd