OpenSearch benchmark not working

Versions (relevant - OpenSearch/Dashboard/Server OS/Browser):
opensearch 2.11.1
ubuntu

Describe the issue:
(I have 6 master nodes, 9 data nodes in each server.)

[The process I did]

  1. Pulling the Docker images
    docker pull opensearchproject/opensearch-benchmark:latest

  2. Checking docker container run
    docker run opensearchproject/opensearch-benchmark -h
    This is result screen

  3. Establishing volume persistence in a Docker container
    3-1(try). same from opensearch officaily document ( Installing OpenSearch Benchmark - OpenSearch Documentation)

docker run -v $HOME/benchmarks:/opensearch-benchmark/.benchmark opensearchproject/opensearch-benchmark execute-test --target-hosts https://localhost:9200 --pipeline benchmark-only --workload geonames --client-options basic_auth_user:admin,basic_auth_password:admin,verify_certs:false --test-mode


permission error

3-2(try).

docker run  --user root -v $HOME/benchmarks:/opensearch-benchmark/.benchmark opensearchproject/opensearch-benchmark execute-test --target-hosts https://localhost:9200 --pipeline benchmark-only --workload geonames --client-options basic_auth_user:admin,basic_auth_password:admin,verify_certs:false --test-mode

result

[WARNING] No Internet connection detected. Automatic download of workload data sets etc. is disabled.
[INFO] You did not provide an explicit timeout in the client options. Assuming default of 10 seconds.
[WARNING] Could not determine distribution version from endpoint, use --distribution-version to specify
[ERROR] Cannot execute-test. Error in test execution orchestrator (expected string or bytes-like object, got ‘NoneType’)

3-3. I downloaded opensearch workloads from git opensearch-project/opensearch-benchmark-workloads (github.com) and move workloads that server(path: /home/user/benchmarks/)

docker run --user root -v $HOME/benchmarks:/opensearch-benchmark/.benchmark opensearchproject/opensearch-benchmark execute-test --target-hosts https://localhost:9200 --pipeline benchmark-only --workload geonames --workload-repository="/home/user/benchmarks/geonames" --client-options basic_auth_user:admin,basic_auth_password:admin,verify_certs:false,timeout:30 --distribution-version 2.11.1 --test-mode

[WARNING] No Internet connection detected. Automatic download of workload data sets etc. is disabled.
[ERROR] Cannot execute-test. Error in test execution orchestrator (Cannot update workloads in [/home/user/benchmarks/geonames] (Could not checkout [main]. Do you have uncommitted changes?).)

Configuration:

I think the issue is here. This link refers to the loopback of the benchmark container and not the docker host.
Specify FQDN of your OpenSearch node in the benchmark command.

i.e.

docker run -v $HOME/benchmarks:/opensearch-benchmark/.benchmark opensearchproject/opensearch-benchmark:1.3.0 execute-test --target-hosts https://docker4.pablo.local:9200 --pipeline benchmark-only --workload geonames --client-options basic_auth_user:admin,basic_auth_password:<admin_password>,verify_certs:false --test-mode

to. @pablo

I tried like this

docker run --user root -v /docker/opensearch/opensearch-benchmark-workloads/geonames/:/workloads opensearchproject/opensearch-benchmark execute-test --pipeline benchmark-only --distribution-version 2.11.1 --workload-path /workloads --target-hosts https://<server ip>:9200 --client-options basic_auth_user:admin,basic_auth_password:admin,verify_certs:false

there are workloads geoname file tree


but result also error

[ERROR] Cannot execute-test. Error in task executor
Cannot find [/root/.benchmark/benchmarks/data/geonames/documents-2.json.bz2]. Please disable offline mode and retry.

and I entered docker contain
but there was no .benchmark file in root
docker run --user root --entrypoint bash -it opensearchproject/opensearch-benchmark -c /bin/bash

@cucukaka, please try the following:

  1. Remove the $HOME/benchmarks directory. If it is owned by root, you might need to use “sudo”.
  2. mkdir $HOME/benchmarks (as a user, not as root).
  3. Check that you can access your endpoint with curl from within a docker container. Generally, the “localhost” address is not directly accessible in this mode. On Linux, you can use the “–network=host” option to “docker run” to enable access. On other platforms, the mechanism is different.
docker pull curlimages/curl

docker run -it \
    --network=host \
    curlimages/curl -ku admin:XXXXX https://localhost:9200

  Verify that you get a response from your cluster (the standard cluster identification).
4. Now run (assuming Linux):

docker run \
    --network=host \
    -v $HOME/benchmarks:/opensearch-benchmark/.benchmark \
    opensearchproject/opensearch-benchmark execute-test \
    --pipeline benchmark-only \
    --target-hosts https://localhost:9200 \
    --workload geonames \
    --client-options basic_auth_user:admin,basic_auth_password:XXXXX,verify_certs:false --test-mode

  You should see the test mode output from OSB.