Skip to content

Releases: grafana/xk6-dashboard

v0.7.12

26 Aug 15:21
14ff0d2
Compare
Choose a tag to compare

xk6-dashboard v0.7.12 is here 🎉!

This patch release resolves security vulnerabilities, through upgrading:

  • vite to ^4.5.14
  • esbuild to ^0.25.0
  • tmp to ^0.2.4

The following vulnerabilities have been addressed:

Other Changes

New Contributors

v0.7.11

28 Jul 19:03
052d363
Compare
Choose a tag to compare

xk6-dashboard v0.7.11 is here 🎉!

This patch release resolves one security vulnerability, through upgrading lerna to v8.2.4

The following vulnerability have been addressed:

v0.7.10

16 Jul 19:31
349f2e8
Compare
Choose a tag to compare

xk6-dashboard v0.7.10 is here 🎉!

This patch release resolves several security vulnerabilities, primarily through dependency updates.

The following vulnerabilities have been addressed:

v0.7.9

09 Jul 18:43
395a3f8
Compare
Choose a tag to compare

xk6-dashboard v0.7.9 is here 🎉!

This release is a prerequisite for the feature request in grafana/k6 to enable the web dashboard by default.

Changes

  • Gracefully Handle Default Port Binding Errors #216
  • Downgraded spf13/cobra to 1.4.0 #218

Gracefully Handle Default Port Binding Errors

When multiple k6 instances are run in parallel (e.g., in a CI environment), each instance tries to launch the web dashboard and bind to the default port, 5665. The first instance succeeds, but all subsequent instances fail with a "port in use" error. This fatal error terminates the test run, preventing parallel execution when the dashboard is active.

The solution

The dashboard's error handling for port binding now more flexible. Specifically, if a port binding error occurs on the default port (5665), the behavior is:

  1. A warning message is logged to the console, informing the user that the dashboard couldn't start on the default port.
  2. The error is treated as non-fatal.
  3. The k6 test proceeds to run normally, as if the dashboard were disabled for that specific instance.

This change makes the dashboard's behavior consistent with other k6 services (like the REST API) and would allow for the dashboard to be enabled by default in k6 without breaking parallel test execution workflows.

Downgraded spf13/cobra to 1.4.0

To maintain compatibility and continue the integration of xk6-dashboard with the main Grafana k6 repository, the spf13/cobra dependency downgraded from its current version (v1.9.1) to v1.4.0. This is to align with the version of spf13/cobra currently in use by Grafana k6.

Problem

The upstream Grafana k6 project uses an older version of the spf13/cobra library (v1.4.0). The current version in this repository (v1.9.1) creates a dependency conflict, which blocks the seamless integration of newer xk6-dashboard versions into Grafana k6.

Impact

As a direct consequence of this downgrade, the szkiba/docsme build-time tool, which is used for automatically generating the cmd/k6-web-dashboard/README.md file, will no longer be compatible.

Therefore, any future updates to the cmd/k6-web-dashboard/README.md file will need to be performed manually. This manual process will remain in effect until the spf13/cobra library is updated in the Grafana k6 repository.

v0.7.8

09 Jul 17:34
1183c96
Compare
Choose a tag to compare

xk6-dashboard v0.7.8 is here 🎉!

This release is a prerequisite for the feature request in grafana/k6 to enable the web dashboard by default.

Changes

  • Gracefully Handle Default Port Binding Errors #216
  • Downgraded spf13/cobra to 1.4.0 #218

Gracefully Handle Default Port Binding Errors

When multiple k6 instances are run in parallel (e.g., in a CI environment), each instance tries to launch the web dashboard and bind to the default port, 5665. The first instance succeeds, but all subsequent instances fail with a "port in use" error. This fatal error terminates the test run, preventing parallel execution when the dashboard is active.

The solution

The dashboard's error handling for port binding now more flexible. Specifically, if a port binding error occurs on the default port (5665), the behavior is:

  1. A warning message is logged to the console, informing the user that the dashboard couldn't start on the default port.
  2. The error is treated as non-fatal.
  3. The k6 test proceeds to run normally, as if the dashboard were disabled for that specific instance.

This change makes the dashboard's behavior consistent with other k6 services (like the REST API) and would allow for the dashboard to be enabled by default in k6 without breaking parallel test execution workflows.

Downgraded spf13/cobra to 1.4.0

To maintain compatibility and continue the integration of xk6-dashboard with the main Grafana k6 repository, the spf13/cobra dependency downgraded from its current version (v1.9.1) to v1.4.0. This is to align with the version of spf13/cobra currently in use by Grafana k6.

Problem

The upstream Grafana k6 project uses an older version of the spf13/cobra library (v1.4.0). The current version in this repository (v1.9.1) creates a dependency conflict, which blocks the seamless integration of newer xk6-dashboard versions into Grafana k6.

Impact

As a direct consequence of this downgrade, the szkiba/docsme build-time tool, which is used for automatically generating the cmd/k6-web-dashboard/README.md file, will no longer be compatible.

Therefore, any future updates to the cmd/k6-web-dashboard/README.md file will need to be performed manually. This manual process will remain in effect until the spf13/cobra library is updated in the Grafana k6 repository.

v0.7.7

04 Jul 17:01
Compare
Choose a tag to compare

xk6-dashboard v0.7.7 is here 🎉!

This is a bugfix release.

Primary Bug Fix:

New Contributors

v0.7.6

10 May 08:26
15c4d15
Compare
Choose a tag to compare

xk6-dashboard v0.7.6 is here 🎉!

This is a maintenance release, changes:

  • Updated k6 to v1.0.0
  • Use shared GitHub workflows from xk6
  • Updated tooling dependencies
    • go: 1.24
    • golangci-lint: 2.1.6
    • xk6: 0.19.2
    • gosec: 2.22.4
    • govulncheck: 1.1.4
    • goreleaser: 2.9.0
  • Added support for Development Containers
  • Generate Makefile from CONTRIBUTING.md

v0.7.5

01 Jul 19:00
9c75acc
Compare
Choose a tag to compare

xk6-dashboard v0.7.5 is here 🎉! This is an internal maintenance release.
(no bug fixes, no new features)

Breaking changes

Configuration customization from JavaScript code has been removed

Until now, the dashboard configuration could be customized with a JavaScript code. Supporting this feature after switching the JavaScript interpreter (goja to sobek) causes serious difficulties. Since this feature is rarely used, it is easier to drop it than to support it.

v0.7.4

07 Jun 11:34
Compare
Choose a tag to compare

xk6-dashboard v0.7.4 is here 🎉! This is an internal maintenance release.
(no bug fixes, no new features)

v0.7.3

22 May 12:56
7678d25
Compare
Choose a tag to compare

xk6-dashboard v0.7.3 is here 🎉! This release includes:

  • Breaking Changes
  • Bug Fixes
  • Enablers

Breaking Changes

As of v0.49.0, k6 includes xk6-dashboard as a built-in output extension. The name of the built-in module is the same as was the output name (web-dashboard) registered by the extension. Therefore, if you try to use it as an extension (for example, a newer version), you will get the following error:

$ ./k6 run -o web-dashboard script.js
.
.
.
ERRO[0000] invalid output extension web-dashboard, built-in output with the same type already exists

From now on, the registered name of the extension is again the previously used dashboard. Thus, it is possible (for example, built with xk6) to use a version of the xk6-dashboard that is newer than the one integrated in k6. In this case, the dashboard name must be used as the output name.

$ ./k6 run -o dashboard script.js

Related issue

Bug Fixes

Enablers

The following enhancements enable various future dashboard UI feature developments.

SSE Stream Optimization

Previously on the SSE stream, the snapshot and cumulative events are sent as JSON objects, where the metric names are the property names. The property values are also JSON objects, in which the property names are the names of the aggregation function (avg, min, max, etc.). This two-level object hierarchy has not caused any problems so far, the amount of data has been acceptable.

Until now, aggregate counting per tag is still supported, but by default it is only allowed for the group tag. It would be necessary to turn on the aggregate calculation for the url and name tags as well (per URL graphs, summary, etc.). With the previous SSE stream format, this would significantly increase the amount of data. This would have a direct impact on the k6 memory requirement, so it is a problem.

Based on measurements, it can be concluded that using a two-level array structure instead of the two-level object structure used in snapshot and cumulative events significantly reduces the size of the events and thus also the memory requirement.

Therefore, instead of the two-level object structure, a two-level array structure implemented in the snapshot and cumulative events. The packages/model package also updated so it hides SSE stream changes from the rest of the dashboard UI.

Related issues

Thresholds Evaluation

The display of threshold values on the dashboard UI is greatly simplified if the SSE stream includes threshold expression evaluation results. If the evaluation of a threshold expression belonging to a metric fails, it is included in the new threshold event.

Related issue

Custom Metrics

In the various metrics tables, it is advisable to display the custom metrics before the built-in metrics, because the reader is likely to be more interested. This requires marking individual metrics on the event stream. The true value of the custom property indicates the custom metric.

Test Script Name

It is advisable to display the name of the currently running test script on the dashboard. Therefore, the scriptPath (script name) parameter has been added to the param event.