summaryrefslogtreecommitdiffstats
path: root/docs/userguide
diff options
context:
space:
mode:
Diffstat (limited to 'docs/userguide')
-rwxr-xr-xdocs/userguide/03-architecture.rst (renamed from docs/userguide/architecture.rst)0
-rw-r--r--docs/userguide/05-apexlake_installation.rst (renamed from docs/userguide/apexlake_installation.rst)0
-rw-r--r--docs/userguide/06-apexlake_api.rst (renamed from docs/userguide/apexlake_api.rst)0
-rw-r--r--docs/userguide/07-installation.rst (renamed from docs/userguide/03-installation.rst)68
-rw-r--r--docs/userguide/08-yardstick_plugin.rst144
-rw-r--r--docs/userguide/09-result-store-InfluxDB.rst86
-rw-r--r--docs/userguide/10-list-of-tcs.rst (renamed from docs/userguide/03-list-of-tcs.rst)1
-rw-r--r--docs/userguide/images/Grafana_config.pngbin0 -> 143507 bytes
-rw-r--r--docs/userguide/images/InfluxDB_store.pngbin0 -> 1623955 bytes
-rw-r--r--docs/userguide/images/results_visualization.pngbin0 -> 41905 bytes
-rw-r--r--docs/userguide/index.rst12
-rw-r--r--docs/userguide/opnfv_yardstick_tc075.rst60
12 files changed, 366 insertions, 5 deletions
diff --git a/docs/userguide/architecture.rst b/docs/userguide/03-architecture.rst
index 3abb67b7d..3abb67b7d 100755
--- a/docs/userguide/architecture.rst
+++ b/docs/userguide/03-architecture.rst
diff --git a/docs/userguide/apexlake_installation.rst b/docs/userguide/05-apexlake_installation.rst
index d4493e0f8..d4493e0f8 100644
--- a/docs/userguide/apexlake_installation.rst
+++ b/docs/userguide/05-apexlake_installation.rst
diff --git a/docs/userguide/apexlake_api.rst b/docs/userguide/06-apexlake_api.rst
index 35a1dbe3e..35a1dbe3e 100644
--- a/docs/userguide/apexlake_api.rst
+++ b/docs/userguide/06-apexlake_api.rst
diff --git a/docs/userguide/03-installation.rst b/docs/userguide/07-installation.rst
index a3144ef2c..25c125851 100644
--- a/docs/userguide/03-installation.rst
+++ b/docs/userguide/07-installation.rst
@@ -251,3 +251,71 @@ More info about the tool can be found by executing:
::
yardstick-plot -h
+
+
+Deploy InfluxDB and Grafana locally
+------------------------------------
+
+.. pull docker images
+
+Pull docker images
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+::
+
+ docker pull tutum/influxdb
+ docker pull grafana/grafana
+
+Run influxdb and config
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Run influxdb
+::
+
+ docker run -d --name influxdb -p 8083:8083 -p 8086:8086 --expose 8090 --expose 8099 tutum/influxdb
+ docker exec -it influxdb bash
+
+Config influxdb
+::
+
+ influx
+ >CREATE USER root WITH PASSWORD 'root' WITH ALL PRIVILEGES
+ >CREATE DATABASE yardstick;
+ >use yardstick;
+ >show MEASUREMENTS;
+
+Run grafana and config
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Run grafana
+::
+
+ docker run -d --name grafana -p 3000:3000 grafana/grafana
+
+Config grafana
+::
+
+ http://{YOUR_IP_HERE}:3000
+ log on using admin/admin and config database resource to be {YOUR_IP_HERE}:8086
+
+.. image:: images/Grafana_config.png
+
+Config yardstick conf
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+cp ./etc/yardstick/yardstick.conf.sample /etc/yardstick/yardstick.conf
+
+vi /etc/yardstick/yardstick.conf
+Config yardstick.conf
+::
+
+ [DEFAULT]
+ debug = True
+ dispatcher = influxdb
+
+ [dispatcher_influxdb]
+ timeout = 5
+ target = http://{YOUR_IP_HERE}:8086
+ db_name = yardstick
+ username = root
+ password = root
+
+Now you can run yardstick test case and store the results in influxdb
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
diff --git a/docs/userguide/08-yardstick_plugin.rst b/docs/userguide/08-yardstick_plugin.rst
new file mode 100644
index 000000000..e68db650d
--- /dev/null
+++ b/docs/userguide/08-yardstick_plugin.rst
@@ -0,0 +1,144 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International
+.. License.
+.. http://creativecommons.org/licenses/by/4.0
+.. (c) OPNFV, Ericsson AB, Huawei Technologies Co.,Ltd and others.
+
+===================================
+Installing a plug-in into yardstick
+===================================
+
+Abstract
+========
+
+Yardstick currently provides a ``plugin`` CLI command to support integration
+with other OPNFV testing projects. Below is an example invocation of yardstick
+plugin command and Storperf plug-in sample.
+
+
+Installing Storperf into yardstick
+==================================
+
+Storperf is delivered as a Docker container from
+https://hub.docker.com/r/opnfv/storperf/tags/.
+
+There are two possible methods for installation in your environment:
+
+* Run container on Jump Host
+* Run container in a VM
+
+In this introduction we will install Storperf on Jump Host.
+
+
+Step 0: Environment preparation
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+
+Running Storperf on Jump Host
+Requirements:
+
+* Docker must be installed
+* Jump Host must have access to the OpenStack Controller API
+* Jump Host must have internet connectivity for downloading docker image
+* Enough floating IPs must be available to match your agent count
+
+Before installing Storperf into yardstick you need to check your openstack
+environment and other dependencies:
+
+1. Make sure docker is installed.
+2. Make sure Keystone, Nova, Neutron, Glance, Heat are installed correctly.
+3. Make sure Jump Host have access to the OpenStack Controller API.
+4. Make sure Jump Host must have internet connectivity for downloading docker image.
+5. You need to know where to get basic openstack Keystone authorization info, such as
+OS_PASSWORD, OS_TENANT_NAME, OS_AUTH_URL, OS_USERNAME.
+6. To run a Storperf container, you need to have OpenStack Controller environment
+variables defined and passed to Storperf container. The best way to do this is to
+put environment variables in a "storperf_admin-rc" file. The storperf_admin-rc
+should include credential environment variables at least:
+
+* OS_AUTH_URL
+* OS_TENANT_ID
+* OS_TENANT_NAME
+* OS_PROJECT_NAME
+* OS_USERNAME
+* OS_PASSWORD
+* OS_REGION_NAME
+
+For this storperf_admin-rc file, during environment preparation a "prepare_storperf_admin-rc.sh"
+script can be used to generate it.
+::
+
+ #!/bin/bash
+ AUTH_URL=${OS_AUTH_URL}
+ USERNAME=${OS_USERNAME:-admin}
+ PASSWORD=${OS_PASSWORD:-console}
+ TENANT_NAME=${OS_TENANT_NAME:-admin}
+ VOLUME_API_VERSION=${OS_VOLUME_API_VERSION:-2}
+ PROJECT_NAME=${OS_PROJECT_NAME:-$TENANT_NAME}
+ TENANT_ID=`keystone tenant-get admin|grep 'id'|awk -F '|' '{print $3}'|sed -e 's/^[[:space:]]*//'`
+ rm -f ~/storperf_admin-rc
+ touch ~/storperf_admin-rc
+ echo "OS_AUTH_URL="$AUTH_URL >> ~/storperf_admin-rc
+ echo "OS_USERNAME="$USERNAME >> ~/storperf_admin-rc
+ echo "OS_PASSWORD="$PASSWORD >> ~/storperf_admin-rc
+ echo "OS_TENANT_NAME="$TENANT_NAME >> ~/storperf_admin-rc
+ echo "OS_VOLUME_API_VERSION="$VOLUME_API_VERSION >> ~/storperf_admin-rc
+ echo "OS_PROJECT_NAME="$PROJECT_NAME >> ~/storperf_admin-rc
+ echo "OS_TENANT_ID="$TENANT_ID >> ~/storperf_admin-rc
+
+
+Step 1: Plug-in configuration file preparation
+++++++++++++++++++++++++++++++++++++++++++++++
+
+To install a plug-in, first you need to prepare a plug-in configuration file in
+YAML format and store it in the "plugin" directory. The plugin configration file
+work as the input of yardstick "plugin" command. Below is the Storperf plug-in
+configuration file sample:
+::
+
+ ---
+ # StorPerf plugin configuration file
+ # Used for integration StorPerf into Yardstick as a plugin
+ schema: "yardstick:plugin:0.1"
+ plugins:
+ name: storperf
+ deployment:
+ ip: 192.168.23.2
+ user: root
+ password: root
+
+In the plug-in configuration file, you need to specify the plug-in name and the
+plug-in deployment info, including node ip, node login username and password.
+Here the Storperf will be installed on IP 192.168.23.2 which is the Jump Host
+in my local environment.
+
+Step 2: Plug-in install/remove scripts preparation
+++++++++++++++++++++++++++++++++++++++++++++++++++
+
+Under "yardstick/resource/scripts directory", there are two folders: a "install"
+folder and a "remove" folder. You need to store the plug-in install/remove script
+in these two folders respectively.
+
+The detailed installation or remove operation should de defined in these two scripts.
+The name of both install and remove scripts should match the plugin-in name that you
+specified in the plug-in configuration file.
+For example, the install and remove scripts for Storperf are both named to "storperf.bash".
+
+
+Step 3: Install and remove Storperf
++++++++++++++++++++++++++++++++++++
+
+To install Storperf, simply execute the following command
+::
+
+ # Install Storperf
+ yardstick plugin install plugin/storperf.yaml
+
+removing Storperf from yardstick
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+To remove Storperf, simply execute the following command
+::
+
+ # Remove Storperf
+ yardstick plugin remove plugin/storperf.yaml
+
+What yardstick plugin command does is using the username and password to log into the deployment target and then execute the corresponding install or remove script.
diff --git a/docs/userguide/09-result-store-InfluxDB.rst b/docs/userguide/09-result-store-InfluxDB.rst
new file mode 100644
index 000000000..5c49e9f7c
--- /dev/null
+++ b/docs/userguide/09-result-store-InfluxDB.rst
@@ -0,0 +1,86 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International
+.. License.
+.. http://creativecommons.org/licenses/by/4.0
+.. (c) OPNFV, 2016 Huawei Technologies Co.,Ltd and others.
+
+==============================================
+Store Other Project's Test Results in InfluxDB
+==============================================
+
+Abstract
+========
+
+.. _Framework: https://wiki.opnfv.org/download/attachments/6827660/wiki.png?version=1&modificationDate=1470298075000&api=v2
+
+This chapter illustrates how to run plug-in test cases and store test results
+into community's InfluxDB. The framework is shown in Framework_.
+
+
+.. image:: images/InfluxDB_store.png
+ :width: 1200px
+ :alt: Store Other Project's Test Results in InfluxDB
+
+Store Storperf Test Results into Community's InfluxDB
+=====================================================
+
+.. _Influxdb: https://git.opnfv.org/cgit/yardstick/tree/yardstick/dispatcher/influxdb.py
+.. _Mingjiang: limingjiang@huawei.com
+.. _Visual: https://wiki.opnfv.org/download/attachments/6827660/tc074.PNG?version=1&modificationDate=1470298075000&api=v2
+.. _Login: http://testresults.opnfv.org/grafana/login
+
+As shown in Framework_, there are two ways to store Storperf test results
+into community's InfluxDB:
+
+1. Yardstick asks Storperf to run the test case. After the test case is
+ completed, Yardstick reads test results via ReST API from Storperf and
+ posts test data to the influxDB.
+
+2. Additionally, Storperf can run tests by itself and post the test result
+ directly to the InfluxDB. The method for posting data directly to influxDB
+ will be supported in the future.
+
+Our plan is to support rest-api in D release so that other testing projects can
+call the rest-api to use yardstick dispatcher service to push data to yardstick's
+influxdb database.
+
+For now, influxdb only support line protocol, and the json protocol is deprecated.
+
+Take ping test case for example, the raw_result is json format like this:
+::
+
+ "benchmark": {
+ "timestamp": 1470315409.868095,
+ "errors": "",
+ "data": {
+ "rtt": {
+ "ares": 1.125
+ }
+ },
+ "sequence": 1
+ },
+ "runner_id": 2625
+ }
+
+With the help of "influxdb_line_protocol", the json is transform to like below as a line string:
+::
+
+ 'ping,deploy_scenario=unknown,host=athena.demo,installer=unknown,pod_name=unknown,
+ runner_id=2625,scenarios=Ping,target=ares.demo,task_id=77755f38-1f6a-4667-a7f3-
+ 301c99963656,version=unknown rtt.ares=1.125 1470315409868094976'
+
+So, for data output of json format, you just need to transform json into line format and call
+influxdb api to post the data into the database. All this function has been implemented in Influxdb_.
+If you need support on this, please contact Mingjiang_.
+::
+
+ curl -i -XPOST 'http://104.197.68.199:8086/write?db=yardstick' --
+ data-binary 'ping,deploy_scenario=unknown,host=athena.demo,installer=unknown, ...'
+
+Grafana will be used for visualizing the collected test data, which is shown in Visual_. Grafana
+can be accessed by Login_.
+
+
+.. image:: images/results_visualization.png
+ :width: 1200px
+ :alt: results visualization
+
diff --git a/docs/userguide/03-list-of-tcs.rst b/docs/userguide/10-list-of-tcs.rst
index 96e5297a1..7e8c85433 100644
--- a/docs/userguide/03-list-of-tcs.rst
+++ b/docs/userguide/10-list-of-tcs.rst
@@ -49,6 +49,7 @@ Generic NFVI Test Case Descriptions
opnfv_yardstick_tc070.rst
opnfv_yardstick_tc071.rst
opnfv_yardstick_tc072.rst
+ opnfv_yardstick_tc075.rst
OPNFV Feature Test Cases
========================
diff --git a/docs/userguide/images/Grafana_config.png b/docs/userguide/images/Grafana_config.png
new file mode 100644
index 000000000..cb63098dc
--- /dev/null
+++ b/docs/userguide/images/Grafana_config.png
Binary files differ
diff --git a/docs/userguide/images/InfluxDB_store.png b/docs/userguide/images/InfluxDB_store.png
new file mode 100644
index 000000000..1770fd255
--- /dev/null
+++ b/docs/userguide/images/InfluxDB_store.png
Binary files differ
diff --git a/docs/userguide/images/results_visualization.png b/docs/userguide/images/results_visualization.png
new file mode 100644
index 000000000..cd092808b
--- /dev/null
+++ b/docs/userguide/images/results_visualization.png
Binary files differ
diff --git a/docs/userguide/index.rst b/docs/userguide/index.rst
index 72a92a69f..0aa112a45 100644
--- a/docs/userguide/index.rst
+++ b/docs/userguide/index.rst
@@ -12,11 +12,13 @@ Yardstick Overview
01-introduction
02-methodology
- architecture
+ 03-architecture
04-vtc-overview
- apexlake_installation
- apexlake_api
- 03-installation
- 03-list-of-tcs
+ 05-apexlake_installation
+ 06-apexlake_api
+ 07-installation
+ 08-yardstick_plugin
+ 09-result-store-InfluxDB
+ 10-list-of-tcs
glossary
references
diff --git a/docs/userguide/opnfv_yardstick_tc075.rst b/docs/userguide/opnfv_yardstick_tc075.rst
new file mode 100644
index 000000000..a6ff34447
--- /dev/null
+++ b/docs/userguide/opnfv_yardstick_tc075.rst
@@ -0,0 +1,60 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International
+.. License.
+.. http://creativecommons.org/licenses/by/4.0
+.. (c) OPNFV, Huawei Technologies Co.,Ltd and others.
+
+*************************************
+Yardstick Test Case Description TC075
+*************************************
+
+
++-----------------------------------------------------------------------------+
+|Network Capacity and Scale Testing |
+| |
++--------------+--------------------------------------------------------------+
+|test case id | OPNFV_YARDSTICK_TC075_Network_Capacity_and_Scale_testing |
+| | |
++--------------+--------------------------------------------------------------+
+|metric | Number of connections, Number of frames sent/received |
+| | |
++--------------+--------------------------------------------------------------+
+|test purpose | To evaluate the network capacity and scale with regards to |
+| | connections and frmaes. |
+| | |
++--------------+--------------------------------------------------------------+
+|configuration | file: opnfv_yardstick_tc075.yaml |
+| | |
+| | There is no additional configuration to be set for this TC. |
+| | |
++--------------+--------------------------------------------------------------+
+|test tool | netstar |
+| | |
+| | Netstat is normally part of any Linux distribution, hence it |
+| | doesn't need to be installed. |
+| | |
++--------------+--------------------------------------------------------------+
+|references | Netstat man page |
+| | |
+| | ETSI-NFV-TST001 |
+| | |
++--------------+--------------------------------------------------------------+
+|applicability | This test case is mainly for evaluating network performance. |
+| | |
++--------------+--------------------------------------------------------------+
+|pre_test | Each pod node must have netstat included in it. |
+|conditions | |
+| | |
++--------------+--------------------------------------------------------------+
+|test sequence | description and expected result |
+| | |
++--------------+--------------------------------------------------------------+
+|step 1 | The pod is available. |
+| | Netstat is invoked and logs are produced and stored. |
+| | |
+| | Result: Logs are stored. |
+| | |
++--------------+--------------------------------------------------------------+
+|test verdict | None. Number of connections and frames are fetched and |
+| | stored. |
+| | |
++--------------+--------------------------------------------------------------+