mirror of
https://github.com/coder/coder.git
synced 2026-09-24 15:04:27 +08:00
feat(cli): add trafficgen command for load testing (#7307)
This PR adds a scaletest workspace-traffic command for load testing. This opens a
ReconnectingPTY connection to each scaletest workspace (via coderd) and
concurrently writes and reads random data to/from the PTY. Payloads are of the
form #${RANDOM_ALPHANUMERIC_STRING}, which essentially drops garbage
comments in the remote shell, and should not result in any commands being executed.
This commit is contained in:
+1
@@ -10,6 +10,7 @@ Run a scale test against the Coder API
|
||||
online. Optionally runs a command inside each
|
||||
workspace, and connects to the workspace over
|
||||
WireGuard.
|
||||
workspace-traffic Generate traffic to scaletest workspaces through coderd
|
||||
|
||||
---
|
||||
Run `coder --help` for a list of global options.
|
||||
|
||||
@@ -0,0 +1,55 @@
|
||||
Usage: coder scaletest workspace-traffic [flags]
|
||||
|
||||
Generate traffic to scaletest workspaces through coderd
|
||||
|
||||
[1mOptions[0m
|
||||
--bytes-per-tick int, $CODER_SCALETEST_WORKSPACE_TRAFFIC_BYTES_PER_TICK (default: 1024)
|
||||
How much traffic to generate per tick.
|
||||
|
||||
--cleanup-concurrency int, $CODER_SCALETEST_CLEANUP_CONCURRENCY (default: 1)
|
||||
Number of concurrent cleanup jobs to run. 0 means unlimited.
|
||||
|
||||
--cleanup-job-timeout duration, $CODER_SCALETEST_CLEANUP_JOB_TIMEOUT (default: 5m)
|
||||
Timeout per job. Jobs may take longer to complete under higher
|
||||
concurrency limits.
|
||||
|
||||
--cleanup-timeout duration, $CODER_SCALETEST_CLEANUP_TIMEOUT (default: 30m)
|
||||
Timeout for the entire cleanup run. 0 means unlimited.
|
||||
|
||||
--concurrency int, $CODER_SCALETEST_CONCURRENCY (default: 1)
|
||||
Number of concurrent jobs to run. 0 means unlimited.
|
||||
|
||||
--job-timeout duration, $CODER_SCALETEST_JOB_TIMEOUT (default: 5m)
|
||||
Timeout per job. Jobs may take longer to complete under higher
|
||||
concurrency limits.
|
||||
|
||||
--output string-array, $CODER_SCALETEST_OUTPUTS (default: text)
|
||||
Output format specs in the format "<format>[:<path>]". Not specifying
|
||||
a path will default to stdout. Available formats: text, json.
|
||||
|
||||
--tick-interval duration, $CODER_SCALETEST_WORKSPACE_TRAFFIC_TICK_INTERVAL (default: 100ms)
|
||||
How often to send traffic.
|
||||
|
||||
--timeout duration, $CODER_SCALETEST_TIMEOUT (default: 30m)
|
||||
Timeout for the entire test run. 0 means unlimited.
|
||||
|
||||
--trace bool, $CODER_SCALETEST_TRACE
|
||||
Whether application tracing data is collected. It exports to a backend
|
||||
configured by environment variables. See:
|
||||
https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/protocol/exporter.md.
|
||||
|
||||
--trace-coder bool, $CODER_SCALETEST_TRACE_CODER
|
||||
Whether opentelemetry traces are sent to Coder. We recommend keeping
|
||||
this disabled unless we advise you to enable it.
|
||||
|
||||
--trace-honeycomb-api-key string, $CODER_SCALETEST_TRACE_HONEYCOMB_API_KEY
|
||||
Enables trace exporting to Honeycomb.io using the provided API key.
|
||||
|
||||
--trace-propagate bool, $CODER_SCALETEST_TRACE_PROPAGATE
|
||||
Enables trace propagation to the Coder backend, which will be used to
|
||||
correlate server-side spans with client-side spans. Only enable this
|
||||
if the server is configured with the exact same tracing configuration
|
||||
as the client.
|
||||
|
||||
---
|
||||
Run `coder --help` for a list of global options.
|
||||
Reference in New Issue
Block a user