Provides support for real-time output of k6 test metrics to a StatsD service.
Direct support for the StatsD metrics collector will be removed from k6 in a future release. For those seeking to continue using StatsD, the functionality may be compiled into custom k6 binaries as an xk6 extension.
This fork adds support for k6 checks as tags in StatsD.
Tag name and value sanitization were also added.
To build a k6 binary with this extension, first ensure you have the prerequisites:
- Go toolchain
- Git
- xk6
- Build with
xk6:
xk6 build --with github.com/dmozgovoi/xk6-output-statsdThis will result in a k6 binary in the current directory.
- Run with the just build `k6:
./k6 run -o output-statsd <script.js>The xk6-output-statsd extension supports the following configuration options:
| Environment Variable | Default | Description |
|---|---|---|
| K6_STATSD_ADDR | localhost:8125 |
Address of the statsd service, currently only UDP is supported. |
| K6_STATSD_NAMESPACE | k6. |
The namespace used as a prefix for all the metric names. |
| K6_STATSD_PUSH_INTERVAL | 1s |
Configure how often data batches are sent. |
| K6_STATSD_BUFFER_SIZE | 20 |
The buffer size. |
| K6_STATSD_ENABLE_TAGS | false |
If true enables sending tags. Versions prior to statsd v0.9.0 did not support tags. |
| K6_STATSD_TAG_BLOCKLIST | vu,iter,url |
Comma-separated list of tags that should not be sent to statsd. |
Options may be specified as system environment variables as with the following:
K6_STATSD_ADDR=localhost:8125 K6_STATSD_ENABLE_TAGS=true ./k6 run -o output-statsd examples/simple.jsThis repository includes a docker-compose.yml file that starts Graphite backed by StatsD which can be used for testing the xk6-output-statsd extension.
⚠️ This environment is intended for testing only and should not be used for production purposes.
- Start the docker compose environment.
Output should appear similar to the following:
docker compose up -d
✔ Network xk6-output-statsd_default Created ... 0.0s ✔ Container xk6-output-statsd-graphite-1 Started ... 0.3s
- Use your custom k6 binary to run a k6 test script sending metrics to your StatsD service started ing the previous step.
./k6 run -o output-statsd examples/ramping-vus.js
- Open the Graphite application by accessing http://localhost:80/ to view metrics from your test similar to the following:
