Runs & Insights
A run is one execution of a script. Straden captures everything k6 produces — the summary, the console log and every metric sample — and can turn it into an AI performance report.
Starting a run
Open a script and press Run, or call start-run over MCP. The run is queued on the dedicated runs queue and picked up by the runner container within seconds. Only one run per script executes at a time; starting a script that is already running waits until the current run finishes. Different scripts, in the same test or in different tests, can run at the same time. Each run is its own k6 process, so parallel runs share the runner's CPU, memory and network, and heavy parallel runs can affect each other's results.
Run statuses
| Status | Meaning |
|---|---|
queued | Waiting for the runner. |
running | k6 is generating load. |
passed | k6 exited cleanly — all thresholds met. |
failed | One or more thresholds were crossed. |
aborted | Cancelled by a user or killed by a signal. |
error | k6 couldn't start or crashed. The log tail is attached to the run. |
Runs list
Each project's Runs page lists every run with its test, script, status and duration, 15 per page. Search by test or script name and sort by any column.
The run page
Header: started at, completed at, duration, and Cancel Run while the run is active.
Performance metrics:
| Metric | |
|---|---|
| Total requests | Request rate |
| Average response time | P95 / P99 duration |
| Error rate | Data transferred |
| Checks passed | Iterations |
| Active VUs |
Thresholds and checks: a pass/fail row for every threshold and check in the script.
Response codes: how the HTTP status codes were distributed.
Time-series charts: VUs, request rate, p95/p99 latency and error rate in 5-second buckets, queried from InfluxDB. You can also show HTTP timing, iteration duration and iteration charts.
Endpoint filter: narrow the charts and stats to one endpoint to see its hits, p95/p99 and failure rate.
Logs: View run logs opens a terminal that streams the k6 console output as it's written.
Endpoint grouping
Dynamic URLs are grouped so /users/42 and /users/97 count as one endpoint. Path segments that look like IDs become {id}:
- integers
- UUIDs
- 24-character hex strings (MongoDB ObjectIds)
- opaque tokens of 20 or more URL-safe characters
Grouped endpoints are labelled by their last two path segments. Setting a name tag on requests in k6 also works.
Cancelling
Cancel Run stops a queued run straight away. For a running test, the runner sends SIGTERM to k6 so it can write its summary, and the run is marked aborted.
Run logs
k6 console logs are kept while a run is active. Toggle Persist run logs on a project to keep them after the run finishes, so they're available to the Run Insight agent and the read-run-log MCP tool later. Persisted logs live in the storage volume.
Generating an insight
On a finished run, open the AI Insights panel and press Generate insights. An admin must pick an insights model first (Settings → Insights model). You can't generate insights while the run is still active. The Run Insight agent (see AI agents) investigates:
- Metrics — the k6 summary, thresholds and InfluxDB time-series.
- Logs — warnings and per-VU errors the metrics miss.
- Code — the k6 script and, if attached, the application repositories.
- Infrastructure — Prometheus, database and Redis metrics from attached connectors.
It returns an overall health rating (healthy, acceptable, poor), a summary, findings ranked by severity, concrete recommendations and notes on the script itself. You're notified when the insight is ready. Regenerate reruns the analysis, and Export downloads the report as a Markdown file (insight-<run>.md).
Notifications
Notifications appear in the app and are pushed live over WebSockets. Straden doesn't send them by email.
| Notification | Sent to |
|---|---|
| Run passed / failed / aborted | The user who started the run |
| Run insights ready / failed | The user who requested the insight |
| Script generation complete | The user chatting with the agent |
| Repository synced / sync failed | The user who started the sync |
The bell shows your unread count and the latest 5 notifications. The Notifications page lets you filter all or unread, mark notifications read or unread, and delete them.