InfluxDB
Using the InfluxDB extension , you can store k6 metrics in InfluxDB v2.0 and analyze your performance results with Grafana or other tools .
Build the k6 version
To build a k6 binary with the extension, first, make sure you have Go and Git installed on your machine.
Then, open your terminal and run the following commands:
# Install xk6
go install go.k6.io/xk6/cmd/xk6@latest
# Build the k6 binary
xk6 build --with github.com/grafana/xk6-output-influxdb
... [INFO] Build environment ready
... [INFO] Building k6
... [INFO] Build complete: ./k6
xk6 will create the new k6 binary in the local folder.
Note
To learn more about how to build custom k6 versions, check out xk6 .
Run the test
Check that the InfluxDB instance to store the k6 metrics is running.
Use the previous k6 binary and run the test passing the following options :
K6_INFLUXDB_ORGANIZATION="<INFLUXDB-ORGANIZATION-NAME>" \
K6_INFLUXDB_BUCKET="<INFLUXDB-BUCKET-NAME>" \
K6_INFLUXDB_TOKEN="<INFLUXDB-TOKEN>" \
K6_INFLUXDB_ADDR="<INFLUXDB-HTTP-ADDRESS>" \
./k6 run script.js -o xk6-influxdb
k6 runs the test script and sends the k6 metrics in real-time to the InfluxDB instance. You can now select the bucket to query and visualize the stored k6 metrics, for example, using the InfluxDB Data Explorer .
Options
Here is the full list of options that can be configured and passed to the extension:
ENV | Default | Description |
---|---|---|
K6_INFLUXDB_ORGANIZATION | Your InfluxDB organization name. View organizations . | |
K6_INFLUXDB_BUCKET | The bucket name to store k6 metrics data. Manage buckets . | |
K6_INFLUXDB_TOKEN | An API token that provides authorized access to store data. Manage API tokens . | |
K6_INFLUXDB_ADDR | http://localhost:8086 | The address of the InfluxDB instance. |
K6_INFLUXDB_PUSH_INTERVAL | 1s | The flush’s frequency of the k6 metrics. |
K6_INFLUXDB_CONCURRENT_WRITES | 4 | Number of concurrent requests for flushing data. It is useful when a request takes more than the expected time (more than flush interval). |
K6_INFLUXDB_TAGS_AS_FIELDS | vu:int,iter:int,url | A comma-separated string to set k6 metrics as non-indexable fields (instead of tags). An optional type can be specified using :type as in vu:int will make the field integer. The possible field types are int, bool, float and string, which is the default. Example: vu:int,iter:int,url:string,event_time:int. |
K6_INFLUXDB_INSECURE | false | When true , it will skip https certificate verification. |
K6_INFLUXDB_PRECISION | 1ns | The timestamp Precision . |
K6_INFLUXDB_HTTP_PROXY | Sets an HTTP proxy for the InfluxDB output. |
Grafana Dashboards
You can use Grafana to query and visualize data from an InfluxDB instance. The instructions are available on InfluxDB and Grafana .
You can also build a custom Grafana dashboard to visualize the testing results in your own way.
For testing purposes, the influxdb extension repository includes a docker-compose setup with two basic dashboards.