etcd-io / etcd-io/etcd

Continuous reporting and graceful termination in benchmark tool

Open
#21,828 8 comments 0 reactions 0 assignees View on GitHub
type/feature
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.