{"id":13582622,"url":"https://github.com/grafana/xk6-dashboard","last_synced_at":"2025-12-15T23:23:16.237Z","repository":{"id":42050474,"uuid":"375325441","full_name":"grafana/xk6-dashboard","owner":"grafana","description":"A k6 extension that makes k6 metrics available on a web-based dashboard.","archived":false,"fork":false,"pushed_at":"2025-02-13T14:30:12.000Z","size":19100,"stargazers_count":402,"open_issues_count":24,"forks_count":35,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-04-14T06:05:42.859Z","etag":null,"topics":["xk6","xk6-official","xk6-output-dashboard"],"latest_commit_sha":null,"homepage":"","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/grafana.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"docs/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"docs/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-06-09T11:07:10.000Z","updated_at":"2025-04-09T12:14:11.000Z","dependencies_parsed_at":"2023-02-18T10:17:21.189Z","dependency_job_id":"5ed0f78b-40ac-4e76-811c-e941cfb80a42","html_url":"https://github.com/grafana/xk6-dashboard","commit_stats":{"total_commits":286,"total_committers":10,"mean_commits":28.6,"dds":"0.20629370629370625","last_synced_commit":"62d333681cc06c11a7e14df608db0d336b8fbf3e"},"previous_names":["grafana/xk6-dashboard","szkiba/xk6-dashboard"],"tags_count":34,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grafana%2Fxk6-dashboard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grafana%2Fxk6-dashboard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grafana%2Fxk6-dashboard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grafana%2Fxk6-dashboard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/grafana","download_url":"https://codeload.github.com/grafana/xk6-dashboard/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248830396,"owners_count":21168272,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["xk6","xk6-official","xk6-output-dashboard"],"created_at":"2024-08-01T15:02:53.427Z","updated_at":"2025-10-14T04:48:37.819Z","avatar_url":"https://github.com/grafana.png","language":"HTML","funding_links":[],"categories":["HTML"],"sub_categories":[],"readme":"[![Go Report Card](https://goreportcard.com/badge/github.com/grafana/xk6-dashboard)](https://goreportcard.com/report/github.com/grafana/xk6-dashboard)\n[![GitHub Actions](https://github.com/grafana/xk6-dashboard/actions/workflows/validate.yml/badge.svg)](https://github.com/grafana/xk6-dashboard/actions/workflows/validate.yml)\n![GitHub Downloads](https://img.shields.io/github/downloads/grafana/xk6-dashboard/total)\n[![GitHub Release](https://img.shields.io/github/v/release/grafana/xk6-dashboard)](https://github.com/grafana/xk6-dashboard/releases/)\n\n\n# xk6-dashboard\n\n![k6 dashboard overview dark](screenshot/k6-dashboard-overview-dark.png#gh-dark-mode-only)\n![k6 dashboard overview light](screenshot/k6-dashboard-overview-light.png#gh-light-mode-only)\n\nA [k6 extension](https://k6.io/docs/extensions/) that that makes [k6](https://k6.io) metrics available on a web-based dashboard. The dashboard is updated continuously during the test run using [server-sent events (SSE)](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events). The test run [report can be exported](#save-report) to a responsive self-contained HTML file, which can be displayed even without an Internet connection.\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eScreenshots\u003c/strong\u003e\u003c/summary\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cem\u003eOverview\u003c/em\u003e\u003c/summary\u003e\n\nThe overview tab provides an overview of the most important metrics of the test run.\n\n![k6 dashboard overview dark](screenshot/k6-dashboard-overview-dark.png#gh-dark-mode-only)\n![k6 dashboard overview light](screenshot/k6-dashboard-overview-light.png#gh-light-mode-only)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cem\u003eTimings\u003c/em\u003e\u003c/summary\u003e\n\nThe timings tab provides an overview of test run timing metrics.\n\n![k6 dashboard timings dark](screenshot/k6-dashboard-timings-dark.png#gh-dark-mode-only)\n![k6 dashboard timings light](screenshot/k6-dashboard-timings-light.png#gh-light-mode-only)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cem\u003eSummary\u003c/em\u003e\u003c/summary\u003e\n\nThe summary tab contains a summary of the test run metrics. The tables contain the aggregated values of the metrics for the entire test run.\n\n![k6 dashboard summary dark](screenshot/k6-dashboard-summary-dark.png#gh-dark-mode-only)\n![k6 dashboard summary light](screenshot/k6-dashboard-summary-light.png#gh-light-mode-only)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cem\u003eReport\u003c/em\u003e\u003c/summary\u003e\n\nThe report can be saved in a single responsive HTML file.\n\n*Single file HTML report*\n![k6 dashboard HTML report](screenshot/k6-dashboard-html-report.png)\n\nSee [sample HTML report](screenshot/k6-dashboard-html-report.html) or try the [online version](https://raw.githack.com/grafana/xk6-dashboard/master/screenshot/k6-dashboard-html-report.html)\n\n\u003c/details\u003e\n\n\u003c/details\u003e\n\n**Download**\n\nYou can download pre-built k6 binaries from the [Releases](https://github.com/grafana/xk6-dashboard/releases/) page.\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eBuild\u003c/strong\u003e\u003c/summary\u003e\n\nThe [xk6](https://github.com/grafana/xk6) build tool can be used to build a k6 that will include xk6-faker extension:\n\n```bash\n$ xk6 build --with github.com/grafana/xk6-dashboard@latest\n```\n\nFor more build options and how to use xk6, check out the [xk6 documentation]([xk6](https://github.com/grafana/xk6)).\n\n\u003c/details\u003e\n\n## Usage\n\nWithout parameters the dashboard will be accessible on port `5665` with any web browser: http://127.0.0.1:5665\n\n```plain\n$ ./k6 run --out dashboard script.js\n\n          /\\      |‾‾| /‾‾/   /‾‾/   \n     /\\  /  \\     |  |/  /   /  /    \n    /  \\/    \\    |     (   /   ‾‾\\  \n   /          \\   |  |\\  \\ |  (‾)  | \n  / __________ \\  |__| \\__\\ \\_____/ .io\n\n  execution: local\n     script: script.js\n     output: dashboard http://127.0.0.1:5665\n```\n\nThe k6 process waits to exit as long as there is at least one open browser window for the dashboard extension. In this way, the report can be downloaded, for example, even after the test has been completed.\n\nIn certain environments, it is not allowed that the k6 process does not exit after the test run (eg CI/CD pipeline). In this case, it is advisable to disable the HTTP port (with the `-1` value of  `port` parameter).\n\n## Parameters\n\nThe output extension accepts parameters in a standard query string format:\n\n```\nk6 run --out 'dashboard=param1=value1\u0026param2=value2\u0026param3=value3'\n```\n\n\u003e Note the apostrophes (`'`) around the `--out` parameter! You should use it to escape `\u0026` characters from the shell (or use backslash before `\u0026`).\n\nThe following parameters are recognized:\n\nparameter | description\n----------|------------\nhost      | Hostname or IP address for HTTP endpoint (default: \"\", empty, listen on all interfaces)\nport      | TCP port for HTTP endpoint (default: `5665`; `0` = random, `-1` = no HTTP), example: `8080`\nperiod    | Event emitting frequency (default: `10s`), example: `1m`\nopen      | Set to `true` (or empty) to open the browser window automatically\nexport    | File name to save the report (default: \"\", empty, the report will not be saved)\nrecord    | File name to save the dashboard events (default: \"\", empty, the events will not be saved)\ntag       | Precomputed metric tag name(s) (default: \"group\"), can be specified more than once\n\n## Environment\n\nThe dashboard parameters can also be specified in environment variables. The name of the environment variable belonging to the given parameter is created by converting the parameter name to uppercase and adding the `K6_WEB_DASHBOARD_` prefix.\n\nenvironment variable | description\n----------|------------\nK6_WEB_DASHBOARD_HOST      | Hostname or IP address for HTTP endpoint (default: \"\", empty, listen on all interfaces)\nK6_WEB_DASHBOARD_PORT      | TCP port for HTTP endpoint (default: `5665`; `0` = random, `-1` = no HTTP), example: `8080`\nK6_WEB_DASHBOARD_PERIOD    | Event emitting frequency (default: `10s`), example: `1m`\nK6_WEB_DASHBOARD_OPEN      | Set to `true` (or empty) to open the browser window automatically\nK6_WEB_DASHBOARD_EXPORT    | File name to save the report (default: \"\", empty, the report will not be saved)\nK6_WEB_DASHBOARD_RECORD    | File name to save the dashboard events (default: \"\", empty, the events will not be saved)\nK6_WEB_DASHBOARD_TAG       | Precomputed metric tag name(s) (default: \"group\"), can be specified more than once\n\n## Save report\n\nThe test run report can be exported to a responsive self-contained HTML file. For export, the file name must be specified in the `export` parameter. If the file name ends with `.gz`, the HTML report will automatically be gzip compressed.\n\n```plain\nk6 run --out dashboard=export=test-report.html script.js\n```\n\nThe exported HTML report file does not contain external dependencies, so it can be displayed even without an Internet connection. Graphs can be zoomed by selecting a time interval. If necessary, the report can be printed or converted to PDF format.\n\nBy using the `--export` switch of the `k6-web-dashboard replay` command, the report can also be generated afterwards from the previously saved JSON format result (`--out json=test-result.json`).\n\nThe report can also be viewed and downloaded from the dashboard UI using the buttons on the \"Report\" tab.\n\n```plain\nk6-web-dashboard replay --export test-report.html test-result.json\n```\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cem\u003eExample HTML report\u003c/em\u003e\u003c/summary\u003e\n\n![k6 dashboard HTML report](screenshot/k6-dashboard-html-report.png)\n\nSee [sample HTML report](screenshot/k6-dashboard-html-report.html) or try the [online version](https://raw.githack.com/grafana/xk6-dashboard/master/screenshot/k6-dashboard-html-report.html)\n\n\u003c/details\u003e\n\n## Command Line\n\nThe CLI tool called [k6-web-dashboard](cmd/k6-web-dashboard/README.md) enables the use of subcommands related to dashboard management (recording playback, creating a report from a recording, etc.) that do not require running k6.\n\n## How it works\n\nYou can read more about how the extension works [here](docs/how-it-works.md).\n\n## Contribute\n\nIf you want to contribute or help with the development of xk6-dashboard, start by reading [CONTRIBUTING.md](CONTRIBUTING.md). Before you start coding, it might be a good idea to first discuss your plans and implementation details with the xk6-dashboard maintainers—especially when it comes to big changes and features. You can do this in the [GitHub issue](https://github.com/grafana/k6/issues) for the problem you're solving (create one if it doesn't exist).\n\n## Support\n\nTo get help, report bugs, suggest features, and discuss k6 with others, refer to [SUPPORT.md](https://github.com/grafana/k6/blob/master/SUPPORT.md).\n\n## License\n\nxk6-dashboard is distributed under the [AGPL-3.0 license](https://github.com/grafana/xk6-dashboard/blob/master/LICENSE.md).\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgrafana%2Fxk6-dashboard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgrafana%2Fxk6-dashboard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgrafana%2Fxk6-dashboard/lists"}