Skip to content

Conversation

@BaptisteLalanne
Copy link

@BaptisteLalanne BaptisteLalanne commented Oct 19, 2025

To allow to get more detail on the perf check: proposal to add a new verbose flag relying on the already existing report package to get histogram/distribution ont the perf check executed (whereas it fails or not)

This allow to get more information than just slowest/stddev if wanted.

Example

etcdctl check perf --verbose:

Success:

 60 / 60 Boooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo! 100.00% 1m0s
Summary:
  Total:        59.6562 secs.
  Slowest:      1.6536 secs.
  Fastest:      0.0013 secs.
  Average:      0.0107 secs.
  Stddev:       0.0819 secs.
  Requests/sec: 979.4450

Response time histogram:
  0.0013 [1]    |
  0.1666 [57942]        |∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
  0.3318 [88]   |
  0.4970 [83]   |
  0.6622 [107]  |
  0.8275 [9]    |
  0.9927 [0]    |
  1.1579 [65]   |
  1.3232 [67]   |
  1.4884 [31]   |
  1.6536 [37]   |

Latency distribution:
  10% in 0.0022 secs.
  25% in 0.0026 secs.
  50% in 0.0031 secs.
  75% in 0.0040 secs.
  90% in 0.0052 secs.
  95% in 0.0078 secs.
  99% in 0.0837 secs.
  99.9% in 1.3787 secs.
PASS: Throughput is 980 writes/s
Slowest request took too long: 1.653627s
PASS: Stddev is 0.081859s

Failure:

300 / 300 Boooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo! 100.00% 5m0s
FAIL: Cleanup failed during key deletion: ERROR(etcdserver: request timed out)
Summary:
  Total:        299.8775 secs.
  Slowest:      1.3013 secs.
  Fastest:      0.0014 secs.
  Average:      0.0270 secs.
  Stddev:       0.0449 secs.
  Requests/sec: 3293.9882

Response time histogram:
  0.0014 [1]    |
  0.1314 [955507]       |∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
  0.2614 [24132]        |∎
  0.3914 [6163] |
  0.5214 [1601] |
  0.6514 [279]  |
  0.7813 [71]   |
  0.9113 [24]   |
  1.0413 [3]    |
  1.1713 [11]   |
  1.3013 [1]    |

Latency distribution:
  10% in 0.0066 secs.
  25% in 0.0087 secs.
  50% in 0.0133 secs.
  75% in 0.0238 secs.
  90% in 0.0563 secs.
  95% in 0.0967 secs.
  99% in 0.2434 secs.
  99.9% in 0.4433 secs.
FAIL: Throughput too low: 3294 writes/s
Slowest request took too long: 1.301305s
PASS: Stddev is 0.044893s
FAIL
command terminated with exit code 1

How to test

  • make build
  • bin/etcd
  • bin/etcdctl check perf --verbose
@k8s-ci-robot
Copy link

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: BaptisteLalanne
Once this PR has been reviewed and has the lgtm label, please assign fuweid for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@k8s-ci-robot
Copy link

Hi @BaptisteLalanne. Thanks for your PR.

I'm waiting for a github.com member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.

Once the patch is verified, the new status will be reflected by the ok-to-test label.

I understand the commands that are listed here.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@BaptisteLalanne BaptisteLalanne marked this pull request as ready for review October 19, 2025 16:43
To allow to get more detail on the perf check, a new verbose
flag is added relying on the already existing report package.

Signed-off-by: Baptiste Lalanne <baptiste.lalanne@datadoghq.com>
@BaptisteLalanne BaptisteLalanne force-pushed the add-verbose-flag-to-etcdctl-check branch from 71fb6a4 to 1645a5e Compare October 19, 2025 17:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment