Page tree
Skip to end of metadata
Go to start of metadata

In Danube release, we have improved the Yardstick installation steps. This wiki page is to describe how to install Yardstick in Danube.

1. Pull the Yardstick Docker image

Pulling the latest yardstick Docker image(opnfv/yardstick:latest) from the Docker hub with the following command:

docker pull opnfv/yardstick:latest

2. Run the docker image to get a Yardstick container

docker run -itd --privileged -v /var/run/docker.sock:/var/run/docker.sock -p 8888:5000 -e INSTALLER_IP=192.168.200.2 -e INSTALLER_TYPE=compass --name yardstick opnfv/yardstick:latest
Note:
ParameterDetail
--privilegedif you want to build yardstick-image in yardstick container, this parameter is needed.

-e INSTALLER_IP=192.168.200.2

-e INSTALLER_TYPE=compass

if you want to use yardstick env prepare command(or related API) to load the images yardstick needed, this parameter is needed.

(the INSTALLER_IP and INSTALLER_TYPE are depending on your OpenStack installer)

-v /var/run/docker.sock:/var/run/docker.sockif you want to use yardstick env grafana/influxdb to create a grafana/influxdb container out of yardstick container, this parameter is needed.
-p 8888:5000if you want to call yardstick API out of yardstick container, this parameter is needed.
--name yardsticka name for this container, not needed and can be defined by the user


3. Enter Yardstick container and load images

Enter yardstick container with following command:

docker exec -it yardstick /bin/bash


Prepare environment and load yardstick images:

yardstick env prepare

4. Run a test case

Run a test case to verify Yardstick is working functionally.

yardstick -d task start /home/opnfv/repos/yardstick/tests/opnfv/test_cases/opnfv_yardstick_tc002.yaml

By default, the test results will be stored in /tmp/yardstick.out

Optional: Use InfluxDB to store test results and Grafana to visualize the results

Create InfluxDB container and config with the following command:

yardstick env influxdb


Create Grafana container and config:

yardstick env grafana

Then you can run a test case and visit http://host_ip:3000(user:admin,passwd:admin) to see the results.

 

  • No labels

10 Comments

  1. Hi everyone,

    I have a question about Yardstick installation. In my case, I am trying to install Yardstick along with Apex installer. My Apex testbed comprises Jumphost, controller and compute nodes. Hence, in my case, which value is suitable to the variable INSTALLER_IP? Jumphost's IP or undercloud's IP or Overcloud controller's IP?
    Thank you very much!

    1. It should be the undercloud's IP. In this case, the INSTALLER_IP is 192.168.122.*

      1. The below table is my OPNFV environment

        HostnameNode namePXE IPPublic IP
        fuel masterJUMP SERVER10.10.0.2192.168.20.5
        node-9Compute10.10.0.9192.168.20.15
        node-10Controller10.10.0.6192.168.20.13
        node-11Controller10.10.0.8192.168.20.12
        node-13Compute10.10.0.3192.168.20.16
        node-14Controller10.10.0.7192.168.20.14

         

        1)I see the yardstick install wiki?there has a "jumphost" which to install or run yardstick container, is this "jumphost" the same as my fuel master or just any node?compute or controller node? which can connect other nodes.

        2)when I run yardstick container in node-14?ip:192.168.20.14?, I set INSTALLER_IP=192.168.20.2 -e INSTALLER_TYPE=fule, is this INSTALLER_IP right?

         

  2. Where is the name of the external (public) network passed into the Yardstick use cases?

    1. You can use the follow command to check:

          openstack network list --long | grep External

  3. My Installer-Type is 'Fuel'. When I'm running 'yardstick env prepare', it seems that something blocks. Response would be 'preparing yardstick environment ----------- Timeout'. Yardstick edition is Danube-2.0v

    I dig in the '/home/opnfv/repos/yardstick/yardstick/cmd/commands/env.py', and find it looks like this URL 'localhost:5000/yardstick/asynctask?task_id=446ac097-f112-40cd-b5fe-de69640f2025' does not work. Process is blocked here for 'Retrying...'

    Any tips about this ? Thank you very much.

    1. In the Log '/var/log/yardstick/uwsgi.log', I find the Log Info like,

       . .[pid: 253|app: 0|req: 14/33] 127.0.0.1 () {36 vars in 552 bytes} [Tue Jun 20 09:13:54 2017] GET /yardstick/asynctask?task_id=5aaf4a7b-e391-4f9a-8e9f-5bb7123140c6 => generated 35 bytes in 4 msecs (HTTP/1.1 200) 8 headers in 344 bytes (2 switches on core 3)
      ..No handlers could be found for logger "api.base"

      Any service not up ? Thanks.

    2. Maybe for some reason, it is blocked. From your log, I think service is up. Can you tell me what cmd you are using to run a docker container? What is the INSTALLER_IP?

      1. Docker container is running with cmd:

         docker run -itd --privileged -v /var/run/docker.sock -p 8888:5000 -e INSTALLER_IP=10.20.0.2 -e INSTALLER_TYPE=fuel --name Yardsitck  opnfv/yardstick:danube.2.0

        Thank you !

        When I tried to get URL myself with 'curl localhost:5000/yardstick/asynctask?task_id=446ac097-f112-40cd-b5fe-de69640f2025', the response would be :

        {
        "result": [],
        "status": 0
        }

        Check port-status of 5000 with ' netstat -tnlup | grep 5000', the result would be :

        tcp 0 0 0.0.0.0:5000 0.0.0.0:* LISTEN 37/nginx

         

        1. Hi, the status = 0 means not finished. Maybe you could check the /etc/yardstick/openstack.creds to see if openrc variable is correct(especially the EXTERNAL_NETWORK). If the openrc variable is correct, maybe you need to check the log:/var/log/yardstick/uwsgi.log to see what's wrong.