Menu

Important: This documentation is about an older version. It's relevant only to the release noted, many of the features and functions have been updated or replaced. Please view the current version.

Open source

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:

bash
# 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:

bash
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.


InfluxDB Data Explorer / k6 bucket

Options

Here is the full list of options that can be configured and passed to the extension:

ENVDefaultDescription
K6_INFLUXDB_ORGANIZATIONYour InfluxDB organization name. View organizations.
K6_INFLUXDB_BUCKETThe bucket name to store k6 metrics data. Manage buckets.
K6_INFLUXDB_TOKENAn API token that provides authorized access to store data. Manage API tokens.
K6_INFLUXDB_ADDRhttp://localhost:8086The address of the InfluxDB instance.
K6_INFLUXDB_PUSH_INTERVAL1sThe flush’s frequency of the k6 metrics.
K6_INFLUXDB_CONCURRENT_WRITES4Number 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_FIELDSvu:int,iter:int,urlA 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_INSECUREfalseWhen true, it will skip https certificate verification.
K6_INFLUXDB_PRECISION1nsThe timestamp Precision.
K6_INFLUXDB_HTTP_PROXYSets 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.