aboutsummaryrefslogtreecommitdiffstats
path: root/docs/userguide
diff options
context:
space:
mode:
authorJingLu5 <lvjing5@huawei.com>2016-08-18 09:59:25 +0800
committerJingLu5 <lvjing5@huawei.com>2016-08-19 11:13:39 +0800
commit5a7bd787c86bf706153b3cc6f41fc8d35569c955 (patch)
tree0942db08a8dd3817410e1e1dc742f15502ee23e3 /docs/userguide
parentc427a3f99c24748fcdea87dc3277a99a9062d86d (diff)
Restructure user-guide
Add 09-result-store-InfluxDB.rst Update index.rst for 09-result-store-InfluxDB.rst Change-Id: I44e662db07e206e58812d7a997036936a95b5137 Signed-off-by: JingLu5 <lvjing5@huawei.com>
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)0
-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)0
-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
10 files changed, 237 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 25c125851..25c125851 100644
--- a/docs/userguide/03-installation.rst
+++ b/docs/userguide/07-installation.rst
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 7e8c85433..7e8c85433 100644
--- a/docs/userguide/03-list-of-tcs.rst
+++ b/docs/userguide/10-list-of-tcs.rst
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