K6 is unable to send the data to influxdb

Scenario

Running a basic k6 test and send the test output to influxdb. Both the k6 and influxdb are running in docker container.

Artifacts

The docker-compose file is located here at k6-demo/docker-compose.yml at dev · subhendu-de/k6-demo · GitHub
The script file is located here at k6-demo/loadtest1.js at dev · subhendu-de/k6-demo · GitHub
Please change the test url accordingly.

Issue

  • While the K6_OUT is set to influxdb=http://influxdb:8086/k6-bucket - it gives the following error
ERRO[0061] InfluxDB: Couldn't write stats                error="{\"code\":\"unauthorized\",\"message\":\"Unauthorized\"}"
  • While the K6_OUT is set to influxdb=http://influxdb:8086/k6-bucket - it gives the following error
ERRO[0061] InfluxDB: Couldn't write stats                error="Post \"http://localhost:8086/write?consistency=&db=k6-bucket&precision=ns&rp=\": dial tcp 127.0.0.1:8086: connect: connection refused"

Please note I can access the influxdb ui while the container is up and running.

Any help is really appreciated to guide me why the k6 container is unable to send the data to influxdb instance running in a container.

Regards
Subhendu

I see you already were answered on GitHub, but I’ll link the response here in case anyone else stumbles on your forum question: K6 is unable to send the data to influxdb · Issue #1883 · loadimpact/k6 · GitHub

In the future, please use only one place to ask your questions, no need to spam all available avenues, we read both the forum and all github issues. If you’re sure something is a bug - open an issue. If you think it’s something you may be doing wrong - open a thread in the forum, we can always open an issue if it proves to be a bug.

Noted @ned and Thanks a lot!

I have similar error:
level=error msg="InfluxDB: Couldn't write stats" error="Post \"http://localhost:8086/write?consistency=&db=myk6db&precision=ns&rp=\": dial tcp 127.0.0.1:8086: connect: connection refused"

I’m using the docker-compose solution from here https://k6.io/docs/results-visualization/influxdb-+-grafana

I’ve checked the github link with the “pin to version 1.8” solution and as i see the docker-compose.yaml already has 1.8 set explicitely, but i still have the error. Im trying it on MacOS (if that makes any difference).

What am i missing here?

Could you try to change the endpoint from localhost to the service name defined in the docker-compose file?

http://localhost:8086/write

A sample is given here

Sorry, not quite sure what you mean. Atm i use the following command to start the test:
docker run -i loadimpact/k6 run --out influxdb=http://localhost:8086/myk6db - <../test/test.js

Did you create the influxdb container before creating the k6 container and run the tests? Could you please share the script that you’re using to create the influxdb container?

I’m using the “official” docker-compose solution: https://k6.io/docs/results-visualization/influxdb-+-grafana

I am assuming you are using this docker-compose.
After that, you’re using the following command to run the k6.

Is my understanding correct?

Yes, correct. Using docker-compose.yml from the official repo.

You can test using the following folder structure and use the same docker-compose.yml from here
Please create the folders and add your k6 scripts inside samples directory

test-k6
|_ grafana
|_ samples
   |__ loadtest.js
|_ docker-compose.yml

Run the influxdb and grafana container by running the following query

docker-compose up influxdb grafana

Run the k6 script named loadtest.js by running the following query

docker-compose run k6 run /scripts/loadtest.js

Thanks, but i don’t think changing directory structure would solve this problem.

In the meantime it looks like i managed to search properly for the error message and found this: docker - InfluxDB: Couldn't write stats" error getsockopt: connection refused" - Stack Overflow
So if query the internal IP adress with ifconfig and use that one for InfluxDB, then it works. I don’t really understand why, since Grafana is jus fine with localhost…