Restructure user-guide 93/18893/10
authorJingLu5 <lvjing5@huawei.com>
Thu, 18 Aug 2016 01:59:25 +0000 (09:59 +0800)
committerJingLu5 <lvjing5@huawei.com>
Fri, 19 Aug 2016 03:13:39 +0000 (11:13 +0800)
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>
docs/userguide/03-architecture.rst [moved from docs/userguide/architecture.rst with 100% similarity]
docs/userguide/05-apexlake_installation.rst [moved from docs/userguide/apexlake_installation.rst with 100% similarity]
docs/userguide/06-apexlake_api.rst [moved from docs/userguide/apexlake_api.rst with 100% similarity]
docs/userguide/07-installation.rst [moved from docs/userguide/03-installation.rst with 100% similarity]
docs/userguide/08-yardstick_plugin.rst [new file with mode: 0644]
docs/userguide/09-result-store-InfluxDB.rst [new file with mode: 0644]
docs/userguide/10-list-of-tcs.rst [moved from docs/userguide/03-list-of-tcs.rst with 100% similarity]
docs/userguide/images/InfluxDB_store.png [new file with mode: 0644]
docs/userguide/images/results_visualization.png [new file with mode: 0644]
docs/userguide/index.rst

diff --git a/docs/userguide/08-yardstick_plugin.rst b/docs/userguide/08-yardstick_plugin.rst
new file mode 100644 (file)
index 0000000..e68db65
--- /dev/null
@@ -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 (file)
index 0000000..5c49e9f
--- /dev/null
@@ -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/images/InfluxDB_store.png b/docs/userguide/images/InfluxDB_store.png
new file mode 100644 (file)
index 0000000..1770fd2
Binary files /dev/null and b/docs/userguide/images/InfluxDB_store.png differ
diff --git a/docs/userguide/images/results_visualization.png b/docs/userguide/images/results_visualization.png
new file mode 100644 (file)
index 0000000..cd09280
Binary files /dev/null and b/docs/userguide/images/results_visualization.png differ
index 72a92a6..0aa112a 100644 (file)
@@ -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