diff options
author | JingLu5 <lvjing5@huawei.com> | 2016-08-18 09:59:25 +0800 |
---|---|---|
committer | JingLu5 <lvjing5@huawei.com> | 2016-08-19 11:13:39 +0800 |
commit | 5a7bd787c86bf706153b3cc6f41fc8d35569c955 (patch) | |
tree | 0942db08a8dd3817410e1e1dc742f15502ee23e3 | |
parent | c427a3f99c24748fcdea87dc3277a99a9062d86d (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>
-rwxr-xr-x | docs/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.rst | 144 | ||||
-rw-r--r-- | docs/userguide/09-result-store-InfluxDB.rst | 86 | ||||
-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.png | bin | 0 -> 1623955 bytes | |||
-rw-r--r-- | docs/userguide/images/results_visualization.png | bin | 0 -> 41905 bytes | |||
-rw-r--r-- | docs/userguide/index.rst | 12 |
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 Binary files differnew file mode 100644 index 000000000..1770fd255 --- /dev/null +++ b/docs/userguide/images/InfluxDB_store.png diff --git a/docs/userguide/images/results_visualization.png b/docs/userguide/images/results_visualization.png Binary files differnew file mode 100644 index 000000000..cd092808b --- /dev/null +++ b/docs/userguide/images/results_visualization.png 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 |