mirror of
https://github.com/coder/coder.git
synced 2026-09-24 15:04:27 +08:00
Relates to https://github.com/coder/internal/issues/911 This PR adds a scaletest runner that simulates a user with a workspace configured to autostart at a specific time. An instance of this autostart runner does the following: 1. Creates a user. 2. Creates a workspace. 3. Listens on `/api/v2/workspaces/<ws-id>/watch` to wait for build completions throughout the run. 4. Stops the workspace, waits for the build to finish. 4. Waits for all other concurrently executing runners (per the `SetupBarrier` `WaitGroup`) to also have a stopped workspace. 5. Sets the workspace autostart time to `time.Now().Add(cfg.AutoStartDelay)` 6. Waits for the autostart workspace build to begin, enter the `pending` status, and then `running`. 7. Waits for the autostart workspace build to end. Exposes four prometheus metrics: - `autostart_job_creation_latency_seconds` - HistogramVec. Labels = {username, workspace_name} - `autostart_job_acquired_latency_seconds` - HistogramVec. Labels = {username, workspace_name} - `autostart_total_latency_seconds` - `HistogramVec`. Labels = `{username, workspace_name}`. - `autostart_errors_total` - `CounterVec`. Labels = `{username, action}`.