aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--dashboard/Yardstick-TC002-1456495853488200
-rw-r--r--dashboard/Yardstick-TC005-1456495868837216
-rw-r--r--dashboard/Yardstick-TC010-1456495940503433
-rw-r--r--dashboard/Yardstick-TC011-1456495954966432
-rw-r--r--dashboard/Yardstick-TC012-14564959665401654
-rw-r--r--dashboard/Yardstick-TC014-1456496016450500
-rw-r--r--dashboard/Yardstick-TC027-1456496061153209
-rw-r--r--dashboard/Yardstick-TC037-1456496078470169
-rw-r--r--docs/userguide/opnfv_yardstick_tc045.rst139
-rw-r--r--docs/userguide/opnfv_yardstick_tc046.rst138
-rw-r--r--fuel-plugin/README.md20
-rwxr-xr-xfuel-plugin/deployment_scripts/install.sh24
-rw-r--r--fuel-plugin/deployment_scripts/puppet/manifests/yardstick-install.pp3
-rw-r--r--fuel-plugin/fuel_ping.yaml43
-rwxr-xr-xfuel-plugin/vagrant/build_fuel_plugin.sh10
-rw-r--r--samples/cpuload.yaml3
-rw-r--r--tests/opnfv/test_cases/opnfv_yardstick_tc044.yaml87
-rw-r--r--tests/opnfv/test_cases/opnfv_yardstick_tc045.yaml43
-rw-r--r--tests/opnfv/test_cases/opnfv_yardstick_tc046.yaml42
-rw-r--r--tests/opnfv/test_suites/fuel_test_suite.yaml12
-rw-r--r--tests/opnfv/test_suites/opnfv_huawei-pod2_daily.yaml2
-rw-r--r--tests/unit/benchmark/scenarios/availability/test_baseresultchecker.py88
-rw-r--r--tests/unit/benchmark/scenarios/availability/test_director.py103
-rw-r--r--tests/unit/benchmark/scenarios/availability/test_result_checker_general.py113
-rw-r--r--tests/unit/benchmark/scenarios/availability/test_scenario_general.py65
-rw-r--r--tests/unit/benchmark/scenarios/compute/cpuload_sample_output1.txt12
-rw-r--r--tests/unit/benchmark/scenarios/compute/test_cpuload.py161
-rw-r--r--tests/unit/benchmark/scenarios/networking/test_vsperf.py132
-rwxr-xr-xyardstick/benchmark/scenarios/availability/__init__.py24
-rw-r--r--yardstick/benchmark/scenarios/availability/actionplayers.py54
-rw-r--r--yardstick/benchmark/scenarios/availability/actionrollbackers.py45
-rw-r--r--yardstick/benchmark/scenarios/availability/director.py106
-rw-r--r--yardstick/benchmark/scenarios/availability/result_checker/__init__.py0
-rw-r--r--yardstick/benchmark/scenarios/availability/result_checker/baseresultchecker.py88
-rw-r--r--yardstick/benchmark/scenarios/availability/result_checker/result_checker_general.py107
-rw-r--r--yardstick/benchmark/scenarios/availability/result_checker_conf.yaml11
-rw-r--r--yardstick/benchmark/scenarios/availability/scenario_general.py68
-rw-r--r--yardstick/benchmark/scenarios/compute/cpuload.py71
-rw-r--r--yardstick/benchmark/scenarios/networking/vsperf.py229
39 files changed, 4327 insertions, 1529 deletions
diff --git a/dashboard/Yardstick-TC002-1456495853488 b/dashboard/Yardstick-TC002-1456495853488
index 8bf10f445..a0be68402 100644
--- a/dashboard/Yardstick-TC002-1456495853488
+++ b/dashboard/Yardstick-TC002-1456495853488
@@ -306,7 +306,7 @@
"tags": []
}
],
- "timeFrom": "24h",
+ "timeFrom": "14d",
"timeShift": null,
"title": "Network Latency - RTT",
"tooltip": {
@@ -366,9 +366,9 @@
"repeat": "POD",
"scopedVars": {
"POD": {
- "selected": true,
"text": "ericsson-pod2",
- "value": "ericsson\\-pod2"
+ "value": "ericsson\\-pod2",
+ "selected": true
}
},
"scroll": true,
@@ -458,7 +458,7 @@
]
}
],
- "timeFrom": "24h",
+ "timeFrom": "14d",
"title": "$POD",
"transform": "table",
"transparent": false,
@@ -479,9 +479,9 @@
"repeat": null,
"scopedVars": {
"POD": {
- "selected": true,
- "text": "huawei-us-deploy-bare-1",
- "value": "huawei\\-us\\-deploy\\-bare\\-1"
+ "text": "huawei-pod1",
+ "value": "huawei\\-pod1",
+ "selected": true
}
},
"scroll": true,
@@ -571,12 +571,12 @@
]
}
],
- "timeFrom": "24h",
+ "timeFrom": "14d",
"title": "$POD",
"transform": "table",
"transparent": false,
"type": "table",
- "repeatIteration": 1456495841616,
+ "repeatIteration": 1467967293010,
"repeatPanelId": 2
},
{
@@ -594,9 +594,9 @@
"repeat": null,
"scopedVars": {
"POD": {
- "selected": true,
- "text": "intel-pod6",
- "value": "intel\\-pod6"
+ "text": "huawei-pod2",
+ "value": "huawei\\-pod2",
+ "selected": true
}
},
"scroll": true,
@@ -686,12 +686,12 @@
]
}
],
- "timeFrom": "24h",
+ "timeFrom": "14d",
"title": "$POD",
"transform": "table",
"transparent": false,
"type": "table",
- "repeatIteration": 1456495841616,
+ "repeatIteration": 1467967293010,
"repeatPanelId": 2
},
{
@@ -709,9 +709,9 @@
"repeat": null,
"scopedVars": {
"POD": {
- "selected": true,
- "text": "opnfv-jump-1",
- "value": "opnfv\\-jump\\-1"
+ "text": "intel-pod5",
+ "value": "intel\\-pod5",
+ "selected": true
}
},
"scroll": true,
@@ -801,12 +801,12 @@
]
}
],
- "timeFrom": "24h",
+ "timeFrom": "14d",
"title": "$POD",
"transform": "table",
"transparent": false,
"type": "table",
- "repeatIteration": 1456495841616,
+ "repeatIteration": 1467967293010,
"repeatPanelId": 2
},
{
@@ -824,9 +824,9 @@
"repeat": null,
"scopedVars": {
"POD": {
- "selected": true,
- "text": "opnfv-jump-2",
- "value": "opnfv\\-jump\\-2"
+ "text": "intel-pod6",
+ "value": "intel\\-pod6",
+ "selected": true
}
},
"scroll": true,
@@ -916,12 +916,12 @@
]
}
],
- "timeFrom": "24h",
+ "timeFrom": "14d",
"title": "$POD",
"transform": "table",
"transparent": false,
"type": "table",
- "repeatIteration": 1456495841616,
+ "repeatIteration": 1467967293010,
"repeatPanelId": 2
},
{
@@ -939,9 +939,9 @@
"repeat": null,
"scopedVars": {
"POD": {
- "selected": true,
- "text": "orange-fr-pod2",
- "value": "orange\\-fr\\-pod2"
+ "text": "lf-pod2",
+ "value": "lf\\-pod2",
+ "selected": true
}
},
"scroll": true,
@@ -1031,12 +1031,12 @@
]
}
],
- "timeFrom": "24h",
+ "timeFrom": "14d",
"title": "$POD",
"transform": "table",
"transparent": false,
"type": "table",
- "repeatIteration": 1456495841616,
+ "repeatIteration": 1467967293010,
"repeatPanelId": 2
},
{
@@ -1054,9 +1054,9 @@
"repeat": null,
"scopedVars": {
"POD": {
- "selected": true,
"text": "zte-pod1",
- "value": "zte\\-pod1"
+ "value": "zte\\-pod1",
+ "selected": true
}
},
"scroll": true,
@@ -1151,7 +1151,7 @@
"transform": "table",
"transparent": false,
"type": "table",
- "repeatIteration": 1456495841616,
+ "repeatIteration": 1467967293010,
"repeatPanelId": 2
}
],
@@ -1212,9 +1212,9 @@
"repeat": "POD",
"scopedVars": {
"POD": {
- "selected": true,
"text": "ericsson-pod2",
- "value": "ericsson\\-pod2"
+ "value": "ericsson\\-pod2",
+ "selected": true
}
},
"seriesOverrides": [
@@ -1378,9 +1378,9 @@
"repeat": null,
"scopedVars": {
"POD": {
- "selected": true,
- "text": "huawei-us-deploy-bare-1",
- "value": "huawei\\-us\\-deploy\\-bare\\-1"
+ "text": "huawei-pod1",
+ "value": "huawei\\-pod1",
+ "selected": true
}
},
"seriesOverrides": [
@@ -1494,7 +1494,7 @@
"ms",
"short"
],
- "repeatIteration": 1456495841616,
+ "repeatIteration": 1467967293010,
"repeatPanelId": 3
},
{
@@ -1546,9 +1546,9 @@
"repeat": null,
"scopedVars": {
"POD": {
- "selected": true,
- "text": "intel-pod6",
- "value": "intel\\-pod6"
+ "text": "huawei-pod2",
+ "value": "huawei\\-pod2",
+ "selected": true
}
},
"seriesOverrides": [
@@ -1662,7 +1662,7 @@
"ms",
"short"
],
- "repeatIteration": 1456495841616,
+ "repeatIteration": 1467967293010,
"repeatPanelId": 3
},
{
@@ -1714,9 +1714,9 @@
"repeat": null,
"scopedVars": {
"POD": {
- "selected": true,
- "text": "opnfv-jump-1",
- "value": "opnfv\\-jump\\-1"
+ "text": "intel-pod5",
+ "value": "intel\\-pod5",
+ "selected": true
}
},
"seriesOverrides": [
@@ -1830,7 +1830,7 @@
"ms",
"short"
],
- "repeatIteration": 1456495841616,
+ "repeatIteration": 1467967293010,
"repeatPanelId": 3
},
{
@@ -1882,9 +1882,9 @@
"repeat": null,
"scopedVars": {
"POD": {
- "selected": true,
- "text": "opnfv-jump-2",
- "value": "opnfv\\-jump\\-2"
+ "text": "intel-pod6",
+ "value": "intel\\-pod6",
+ "selected": true
}
},
"seriesOverrides": [
@@ -1998,7 +1998,7 @@
"ms",
"short"
],
- "repeatIteration": 1456495841616,
+ "repeatIteration": 1467967293010,
"repeatPanelId": 3
},
{
@@ -2050,9 +2050,9 @@
"repeat": null,
"scopedVars": {
"POD": {
- "selected": true,
- "text": "orange-fr-pod2",
- "value": "orange\\-fr\\-pod2"
+ "text": "lf-pod2",
+ "value": "lf\\-pod2",
+ "selected": true
}
},
"seriesOverrides": [
@@ -2166,7 +2166,7 @@
"ms",
"short"
],
- "repeatIteration": 1456495841616,
+ "repeatIteration": 1467967293010,
"repeatPanelId": 3
},
{
@@ -2218,9 +2218,9 @@
"repeat": null,
"scopedVars": {
"POD": {
- "selected": true,
"text": "zte-pod1",
- "value": "zte\\-pod1"
+ "value": "zte\\-pod1",
+ "selected": true
}
},
"seriesOverrides": [
@@ -2334,7 +2334,7 @@
"ms",
"short"
],
- "repeatIteration": 1456495841616,
+ "repeatIteration": 1467967293010,
"repeatPanelId": 3
}
],
@@ -2378,14 +2378,14 @@
"allFormat": "regex values",
"current": {
"tags": [],
- "text": "ericsson-pod2 + huawei-us-deploy-bare-1 + intel-pod6 + opnfv-jump-1 + opnfv-jump-2 + orange-fr-pod2 + zte-pod1",
+ "text": "ericsson-pod2 + huawei-pod1 + huawei-pod2 + intel-pod5 + intel-pod6 + lf-pod2 + zte-pod1",
"value": [
"ericsson\\-pod2",
- "huawei\\-us\\-deploy\\-bare\\-1",
+ "huawei\\-pod1",
+ "huawei\\-pod2",
+ "intel\\-pod5",
"intel\\-pod6",
- "opnfv\\-jump\\-1",
- "opnfv\\-jump\\-2",
- "orange\\-fr\\-pod2",
+ "lf\\-pod2",
"zte\\-pod1"
]
},
@@ -2398,54 +2398,84 @@
"name": "POD",
"options": [
{
- "selected": false,
"text": "All",
- "value": "(elxg482ls42|ericsson\\-pod2|huawei\\-us\\-deploy\\-bare\\-1|intel\\-pod6|opnfv\\-jump\\-1|opnfv\\-jump\\-2|orange\\-fr\\-pod2|zte\\-pod1|unknown)"
+ "value": "(elxg482ls42|ericsson\\-pod1|ericsson\\-pod2|huawei\\-pod1|huawei\\-pod2|huawei\\-us\\-deploy\\-bare\\-1|intel\\-pod5|intel\\-pod6|lf\\-pod1|lf\\-pod2|opnfv\\-jump\\-1|opnfv\\-jump\\-2|orange\\-fr\\-pod2|unknown|zte\\-pod1)",
+ "selected": false
},
{
- "selected": false,
"text": "elxg482ls42",
- "value": "elxg482ls42"
+ "value": "elxg482ls42",
+ "selected": false
+ },
+ {
+ "text": "ericsson-pod1",
+ "value": "ericsson\\-pod1",
+ "selected": false
},
{
- "selected": true,
"text": "ericsson-pod2",
- "value": "ericsson\\-pod2"
+ "value": "ericsson\\-pod2",
+ "selected": true
+ },
+ {
+ "text": "huawei-pod1",
+ "value": "huawei\\-pod1",
+ "selected": true
+ },
+ {
+ "text": "huawei-pod2",
+ "value": "huawei\\-pod2",
+ "selected": true
},
{
- "selected": true,
"text": "huawei-us-deploy-bare-1",
- "value": "huawei\\-us\\-deploy\\-bare\\-1"
+ "value": "huawei\\-us\\-deploy\\-bare\\-1",
+ "selected": false
+ },
+ {
+ "text": "intel-pod5",
+ "value": "intel\\-pod5",
+ "selected": true
},
{
- "selected": true,
"text": "intel-pod6",
- "value": "intel\\-pod6"
+ "value": "intel\\-pod6",
+ "selected": true
+ },
+ {
+ "text": "lf-pod1",
+ "value": "lf\\-pod1",
+ "selected": false
+ },
+ {
+ "text": "lf-pod2",
+ "value": "lf\\-pod2",
+ "selected": true
},
{
- "selected": true,
"text": "opnfv-jump-1",
- "value": "opnfv\\-jump\\-1"
+ "value": "opnfv\\-jump\\-1",
+ "selected": false
},
{
- "selected": true,
"text": "opnfv-jump-2",
- "value": "opnfv\\-jump\\-2"
+ "value": "opnfv\\-jump\\-2",
+ "selected": false
},
{
- "selected": true,
"text": "orange-fr-pod2",
- "value": "orange\\-fr\\-pod2"
+ "value": "orange\\-fr\\-pod2",
+ "selected": false
},
{
- "selected": true,
- "text": "zte-pod1",
- "value": "zte\\-pod1"
+ "text": "unknown",
+ "value": "unknown",
+ "selected": false
},
{
- "selected": false,
- "text": "unknown",
- "value": "unknown"
+ "text": "zte-pod1",
+ "value": "zte\\-pod1",
+ "selected": true
}
],
"query": "SHOW TAG VALUES WITH KEY = \"pod_name\"",
@@ -2528,6 +2558,6 @@
},
"refresh": "15m",
"schemaVersion": 8,
- "version": 113,
+ "version": 2,
"links": []
}
diff --git a/dashboard/Yardstick-TC005-1456495868837 b/dashboard/Yardstick-TC005-1456495868837
index e5b29d3dd..9463b40d3 100644
--- a/dashboard/Yardstick-TC005-1456495868837
+++ b/dashboard/Yardstick-TC005-1456495868837
@@ -154,7 +154,7 @@
]
}
],
- "timeFrom": "24h",
+ "timeFrom": "14d",
"timeShift": null,
"title": "Storage Performance",
"tooltip": {
@@ -212,9 +212,9 @@
"repeat": "POD",
"scopedVars": {
"POD": {
- "selected": true,
"text": "ericsson-pod2",
- "value": "ericsson\\-pod2"
+ "value": "ericsson\\-pod2",
+ "selected": true
}
},
"scroll": true,
@@ -298,7 +298,7 @@
]
}
],
- "timeFrom": "24h",
+ "timeFrom": "14d",
"title": "$POD",
"transform": "timeseries_to_rows",
"type": "table"
@@ -317,9 +317,9 @@
"repeat": null,
"scopedVars": {
"POD": {
- "selected": true,
- "text": "huawei-us-deploy-bare-1",
- "value": "huawei\\-us\\-deploy\\-bare\\-1"
+ "text": "huawei-pod1",
+ "value": "huawei\\-pod1",
+ "selected": true
}
},
"scroll": true,
@@ -403,11 +403,11 @@
]
}
],
- "timeFrom": "24h",
+ "timeFrom": "14d",
"title": "$POD",
"transform": "timeseries_to_rows",
"type": "table",
- "repeatIteration": 1456495861692,
+ "repeatIteration": 1467968127728,
"repeatPanelId": 5
},
{
@@ -424,9 +424,9 @@
"repeat": null,
"scopedVars": {
"POD": {
- "selected": true,
- "text": "intel-pod6",
- "value": "intel\\-pod6"
+ "text": "huawei-pod2",
+ "value": "huawei\\-pod2",
+ "selected": true
}
},
"scroll": true,
@@ -510,11 +510,11 @@
]
}
],
- "timeFrom": "24h",
+ "timeFrom": "14d",
"title": "$POD",
"transform": "timeseries_to_rows",
"type": "table",
- "repeatIteration": 1456495861692,
+ "repeatIteration": 1467968127728,
"repeatPanelId": 5
},
{
@@ -531,9 +531,9 @@
"repeat": null,
"scopedVars": {
"POD": {
- "selected": true,
- "text": "opnfv-jump-1",
- "value": "opnfv\\-jump\\-1"
+ "text": "intel-pod5",
+ "value": "intel\\-pod5",
+ "selected": true
}
},
"scroll": true,
@@ -617,11 +617,11 @@
]
}
],
- "timeFrom": "24h",
+ "timeFrom": "14d",
"title": "$POD",
"transform": "timeseries_to_rows",
"type": "table",
- "repeatIteration": 1456495861692,
+ "repeatIteration": 1467968127728,
"repeatPanelId": 5
},
{
@@ -638,9 +638,9 @@
"repeat": null,
"scopedVars": {
"POD": {
- "selected": true,
- "text": "opnfv-jump-2",
- "value": "opnfv\\-jump\\-2"
+ "text": "intel-pod6",
+ "value": "intel\\-pod6",
+ "selected": true
}
},
"scroll": true,
@@ -724,11 +724,11 @@
]
}
],
- "timeFrom": "24h",
+ "timeFrom": "14d",
"title": "$POD",
"transform": "timeseries_to_rows",
"type": "table",
- "repeatIteration": 1456495861692,
+ "repeatIteration": 1467968127728,
"repeatPanelId": 5
},
{
@@ -745,9 +745,9 @@
"repeat": null,
"scopedVars": {
"POD": {
- "selected": true,
- "text": "orange-fr-pod2",
- "value": "orange\\-fr\\-pod2"
+ "text": "lf-pod2",
+ "value": "lf\\-pod2",
+ "selected": true
}
},
"scroll": true,
@@ -831,11 +831,11 @@
]
}
],
- "timeFrom": "24h",
+ "timeFrom": "14d",
"title": "$POD",
"transform": "timeseries_to_rows",
"type": "table",
- "repeatIteration": 1456495861692,
+ "repeatIteration": 1467968127728,
"repeatPanelId": 5
},
{
@@ -852,9 +852,9 @@
"repeat": null,
"scopedVars": {
"POD": {
- "selected": true,
"text": "zte-pod1",
- "value": "zte\\-pod1"
+ "value": "zte\\-pod1",
+ "selected": true
}
},
"scroll": true,
@@ -938,11 +938,11 @@
]
}
],
- "timeFrom": "24h",
+ "timeFrom": "14d",
"title": "$POD",
"transform": "timeseries_to_rows",
"type": "table",
- "repeatIteration": 1456495861692,
+ "repeatIteration": 1467968127728,
"repeatPanelId": 5
}
],
@@ -995,9 +995,9 @@
"repeat": "POD",
"scopedVars": {
"POD": {
- "selected": true,
"text": "ericsson-pod2",
- "value": "ericsson\\-pod2"
+ "value": "ericsson\\-pod2",
+ "selected": true
}
},
"seriesOverrides": [],
@@ -1067,7 +1067,7 @@
]
}
],
- "timeFrom": "10d",
+ "timeFrom": "14d",
"timeShift": null,
"title": "$POD",
"tooltip": {
@@ -1124,9 +1124,9 @@
"repeat": null,
"scopedVars": {
"POD": {
- "selected": true,
- "text": "huawei-us-deploy-bare-1",
- "value": "huawei\\-us\\-deploy\\-bare\\-1"
+ "text": "huawei-pod1",
+ "value": "huawei\\-pod1",
+ "selected": true
}
},
"seriesOverrides": [],
@@ -1196,7 +1196,7 @@
]
}
],
- "timeFrom": "10d",
+ "timeFrom": "14d",
"timeShift": null,
"title": "$POD",
"tooltip": {
@@ -1210,7 +1210,7 @@
"short",
"short"
],
- "repeatIteration": 1456495861692,
+ "repeatIteration": 1467968127728,
"repeatPanelId": 7
},
{
@@ -1255,9 +1255,9 @@
"repeat": null,
"scopedVars": {
"POD": {
- "selected": true,
- "text": "intel-pod6",
- "value": "intel\\-pod6"
+ "text": "huawei-pod2",
+ "value": "huawei\\-pod2",
+ "selected": true
}
},
"seriesOverrides": [],
@@ -1327,7 +1327,7 @@
]
}
],
- "timeFrom": "10d",
+ "timeFrom": "14d",
"timeShift": null,
"title": "$POD",
"tooltip": {
@@ -1341,7 +1341,7 @@
"short",
"short"
],
- "repeatIteration": 1456495861692,
+ "repeatIteration": 1467968127728,
"repeatPanelId": 7
},
{
@@ -1386,9 +1386,9 @@
"repeat": null,
"scopedVars": {
"POD": {
- "selected": true,
- "text": "opnfv-jump-1",
- "value": "opnfv\\-jump\\-1"
+ "text": "intel-pod5",
+ "value": "intel\\-pod5",
+ "selected": true
}
},
"seriesOverrides": [],
@@ -1458,7 +1458,7 @@
]
}
],
- "timeFrom": "10d",
+ "timeFrom": "14d",
"timeShift": null,
"title": "$POD",
"tooltip": {
@@ -1472,7 +1472,7 @@
"short",
"short"
],
- "repeatIteration": 1456495861692,
+ "repeatIteration": 1467968127728,
"repeatPanelId": 7
},
{
@@ -1517,9 +1517,9 @@
"repeat": null,
"scopedVars": {
"POD": {
- "selected": true,
- "text": "opnfv-jump-2",
- "value": "opnfv\\-jump\\-2"
+ "text": "intel-pod6",
+ "value": "intel\\-pod6",
+ "selected": true
}
},
"seriesOverrides": [],
@@ -1589,7 +1589,7 @@
]
}
],
- "timeFrom": "10d",
+ "timeFrom": "14d",
"timeShift": null,
"title": "$POD",
"tooltip": {
@@ -1603,7 +1603,7 @@
"short",
"short"
],
- "repeatIteration": 1456495861692,
+ "repeatIteration": 1467968127728,
"repeatPanelId": 7
},
{
@@ -1648,9 +1648,9 @@
"repeat": null,
"scopedVars": {
"POD": {
- "selected": true,
- "text": "orange-fr-pod2",
- "value": "orange\\-fr\\-pod2"
+ "text": "lf-pod2",
+ "value": "lf\\-pod2",
+ "selected": true
}
},
"seriesOverrides": [],
@@ -1720,7 +1720,7 @@
]
}
],
- "timeFrom": "10d",
+ "timeFrom": "14d",
"timeShift": null,
"title": "$POD",
"tooltip": {
@@ -1734,7 +1734,7 @@
"short",
"short"
],
- "repeatIteration": 1456495861692,
+ "repeatIteration": 1467968127728,
"repeatPanelId": 7
},
{
@@ -1779,9 +1779,9 @@
"repeat": null,
"scopedVars": {
"POD": {
- "selected": true,
"text": "zte-pod1",
- "value": "zte\\-pod1"
+ "value": "zte\\-pod1",
+ "selected": true
}
},
"seriesOverrides": [],
@@ -1851,7 +1851,7 @@
]
}
],
- "timeFrom": "10d",
+ "timeFrom": "14d",
"timeShift": null,
"title": "$POD",
"tooltip": {
@@ -1865,7 +1865,7 @@
"short",
"short"
],
- "repeatIteration": 1456495861692,
+ "repeatIteration": 1467968127728,
"repeatPanelId": 7
}
],
@@ -1907,14 +1907,14 @@
"allFormat": "regex values",
"current": {
"tags": [],
- "text": "ericsson-pod2 + huawei-us-deploy-bare-1 + intel-pod6 + opnfv-jump-1 + opnfv-jump-2 + orange-fr-pod2 + zte-pod1",
+ "text": "ericsson-pod2 + huawei-pod1 + huawei-pod2 + intel-pod5 + intel-pod6 + lf-pod2 + zte-pod1",
"value": [
"ericsson\\-pod2",
- "huawei\\-us\\-deploy\\-bare\\-1",
+ "huawei\\-pod1",
+ "huawei\\-pod2",
+ "intel\\-pod5",
"intel\\-pod6",
- "opnfv\\-jump\\-1",
- "opnfv\\-jump\\-2",
- "orange\\-fr\\-pod2",
+ "lf\\-pod2",
"zte\\-pod1"
]
},
@@ -1925,54 +1925,84 @@
"name": "POD",
"options": [
{
- "selected": false,
"text": "All",
- "value": "(elxg482ls42|ericsson\\-pod2|huawei\\-us\\-deploy\\-bare\\-1|intel\\-pod6|opnfv\\-jump\\-1|opnfv\\-jump\\-2|orange\\-fr\\-pod2|zte\\-pod1|unknown)"
+ "value": "(elxg482ls42|ericsson\\-pod1|ericsson\\-pod2|huawei\\-pod1|huawei\\-pod2|huawei\\-us\\-deploy\\-bare\\-1|intel\\-pod5|intel\\-pod6|lf\\-pod1|lf\\-pod2|opnfv\\-jump\\-1|opnfv\\-jump\\-2|orange\\-fr\\-pod2|unknown|zte\\-pod1)",
+ "selected": false
},
{
- "selected": false,
"text": "elxg482ls42",
- "value": "elxg482ls42"
+ "value": "elxg482ls42",
+ "selected": false
+ },
+ {
+ "text": "ericsson-pod1",
+ "value": "ericsson\\-pod1",
+ "selected": false
},
{
- "selected": true,
"text": "ericsson-pod2",
- "value": "ericsson\\-pod2"
+ "value": "ericsson\\-pod2",
+ "selected": true
+ },
+ {
+ "text": "huawei-pod1",
+ "value": "huawei\\-pod1",
+ "selected": true
+ },
+ {
+ "text": "huawei-pod2",
+ "value": "huawei\\-pod2",
+ "selected": true
},
{
- "selected": true,
"text": "huawei-us-deploy-bare-1",
- "value": "huawei\\-us\\-deploy\\-bare\\-1"
+ "value": "huawei\\-us\\-deploy\\-bare\\-1",
+ "selected": false
+ },
+ {
+ "text": "intel-pod5",
+ "value": "intel\\-pod5",
+ "selected": true
},
{
- "selected": true,
"text": "intel-pod6",
- "value": "intel\\-pod6"
+ "value": "intel\\-pod6",
+ "selected": true
+ },
+ {
+ "text": "lf-pod1",
+ "value": "lf\\-pod1",
+ "selected": false
+ },
+ {
+ "text": "lf-pod2",
+ "value": "lf\\-pod2",
+ "selected": true
},
{
- "selected": true,
"text": "opnfv-jump-1",
- "value": "opnfv\\-jump\\-1"
+ "value": "opnfv\\-jump\\-1",
+ "selected": false
},
{
- "selected": true,
"text": "opnfv-jump-2",
- "value": "opnfv\\-jump\\-2"
+ "value": "opnfv\\-jump\\-2",
+ "selected": false
},
{
- "selected": true,
"text": "orange-fr-pod2",
- "value": "orange\\-fr\\-pod2"
+ "value": "orange\\-fr\\-pod2",
+ "selected": false
},
{
- "selected": true,
- "text": "zte-pod1",
- "value": "zte\\-pod1"
+ "text": "unknown",
+ "value": "unknown",
+ "selected": false
},
{
- "selected": false,
- "text": "unknown",
- "value": "unknown"
+ "text": "zte-pod1",
+ "value": "zte\\-pod1",
+ "selected": true
}
],
"query": "SHOW TAG VALUES WITH KEY = \"pod_name\"",
@@ -2050,6 +2080,6 @@
"list": []
},
"schemaVersion": 8,
- "version": 9,
+ "version": 2,
"links": []
}
diff --git a/dashboard/Yardstick-TC010-1456495940503 b/dashboard/Yardstick-TC010-1456495940503
index 72cb70495..562c7f0ac 100644
--- a/dashboard/Yardstick-TC010-1456495940503
+++ b/dashboard/Yardstick-TC010-1456495940503
@@ -155,7 +155,7 @@
]
}
],
- "timeFrom": "24h",
+ "timeFrom": "14d",
"timeShift": null,
"title": "Memory Latency, lmbench",
"tooltip": {
@@ -213,9 +213,9 @@
"repeat": "POD",
"scopedVars": {
"POD": {
- "selected": true,
"text": "ericsson-pod2",
- "value": "ericsson\\-pod2"
+ "value": "ericsson\\-pod2",
+ "selected": true
}
},
"scroll": true,
@@ -299,7 +299,7 @@
]
}
],
- "timeFrom": "24h",
+ "timeFrom": "14d",
"title": "$POD",
"transform": "timeseries_to_rows",
"type": "table"
@@ -318,9 +318,9 @@
"repeat": null,
"scopedVars": {
"POD": {
- "selected": true,
- "text": "huawei-us-deploy-bare-1",
- "value": "huawei\\-us\\-deploy\\-bare\\-1"
+ "text": "huawei-pod1",
+ "value": "huawei\\-pod1",
+ "selected": true
}
},
"scroll": true,
@@ -404,11 +404,11 @@
]
}
],
- "timeFrom": "24h",
+ "timeFrom": "14d",
"title": "$POD",
"transform": "timeseries_to_rows",
"type": "table",
- "repeatIteration": 1456495934825,
+ "repeatIteration": 1468224666109,
"repeatPanelId": 5
},
{
@@ -425,9 +425,9 @@
"repeat": null,
"scopedVars": {
"POD": {
- "selected": true,
- "text": "intel-pod6",
- "value": "intel\\-pod6"
+ "text": "huawei-pod2",
+ "value": "huawei\\-pod2",
+ "selected": true
}
},
"scroll": true,
@@ -511,11 +511,11 @@
]
}
],
- "timeFrom": "24h",
+ "timeFrom": "14d",
"title": "$POD",
"transform": "timeseries_to_rows",
"type": "table",
- "repeatIteration": 1456495934825,
+ "repeatIteration": 1468224666109,
"repeatPanelId": 5
},
{
@@ -532,9 +532,9 @@
"repeat": null,
"scopedVars": {
"POD": {
- "selected": true,
- "text": "opnfv-jump-1",
- "value": "opnfv\\-jump\\-1"
+ "text": "intel-pod6",
+ "value": "intel\\-pod6",
+ "selected": true
}
},
"scroll": true,
@@ -618,11 +618,11 @@
]
}
],
- "timeFrom": "24h",
+ "timeFrom": "14d",
"title": "$POD",
"transform": "timeseries_to_rows",
"type": "table",
- "repeatIteration": 1456495934825,
+ "repeatIteration": 1468224666109,
"repeatPanelId": 5
},
{
@@ -639,9 +639,9 @@
"repeat": null,
"scopedVars": {
"POD": {
- "selected": true,
- "text": "opnfv-jump-2",
- "value": "opnfv\\-jump\\-2"
+ "text": "lf-pod2",
+ "value": "lf\\-pod2",
+ "selected": true
}
},
"scroll": true,
@@ -725,11 +725,11 @@
]
}
],
- "timeFrom": "24h",
+ "timeFrom": "14d",
"title": "$POD",
"transform": "timeseries_to_rows",
"type": "table",
- "repeatIteration": 1456495934825,
+ "repeatIteration": 1468224666109,
"repeatPanelId": 5
},
{
@@ -746,116 +746,9 @@
"repeat": null,
"scopedVars": {
"POD": {
- "selected": true,
- "text": "orange-fr-pod2",
- "value": "orange\\-fr\\-pod2"
- }
- },
- "scroll": true,
- "showHeader": true,
- "sort": {
- "col": 0,
- "desc": true
- },
- "span": 2,
- "styles": [
- {
- "dateFormat": "YYYY-MM-DD HH:mm:ss",
- "pattern": "Time",
- "type": "date"
- },
- {
- "colorMode": null,
- "colors": [
- "rgba(245, 54, 54, 0.9)",
- "rgba(237, 129, 40, 0.89)",
- "rgba(50, 172, 45, 0.97)"
- ],
- "decimals": 2,
- "pattern": "deploy_scenario",
- "thresholds": [],
- "type": "string",
- "unit": "short"
- },
- {
- "colorMode": null,
- "colors": [
- "rgba(245, 54, 54, 0.9)",
- "rgba(237, 129, 40, 0.89)",
- "rgba(50, 172, 45, 0.97)"
- ],
- "dateFormat": "YYYY-MM-DD HH:mm:ss",
- "decimals": 2,
- "pattern": "/.*/",
- "thresholds": [],
- "type": "number",
- "unit": "short"
- }
- ],
- "targets": [
- {
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "deploy_scenario"
- ],
- "type": "tag"
- }
- ],
- "measurement": "opnfv_yardstick_tc010",
- "query": "SELECT \"latencies0.latency\" FROM \"opnfv_yardstick_tc010\" WHERE \"pod_name\" =~ /$POD$/ AND \"deploy_scenario\" =~ /$SCENARIO$/ AND $timeFilter GROUP BY \"deploy_scenario\"",
- "refId": "A",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "latencies0.latency"
- ],
- "type": "field"
- }
- ]
- ],
- "tags": [
- {
- "key": "pod_name",
- "operator": "=~",
- "value": "/$POD$/"
- },
- {
- "condition": "AND",
- "key": "deploy_scenario",
- "operator": "=~",
- "value": "/$SCENARIO$/"
- }
- ]
- }
- ],
- "timeFrom": "24h",
- "title": "$POD",
- "transform": "timeseries_to_rows",
- "type": "table",
- "repeatIteration": 1456495934825,
- "repeatPanelId": 5
- },
- {
- "columns": [],
- "datasource": "yardstick-vtc",
- "editable": true,
- "error": false,
- "fontSize": "100%",
- "id": 20,
- "isNew": true,
- "links": [],
- "minSpan": 2,
- "pageSize": null,
- "repeat": null,
- "scopedVars": {
- "POD": {
- "selected": true,
"text": "zte-pod1",
- "value": "zte\\-pod1"
+ "value": "zte\\-pod1",
+ "selected": true
}
},
"scroll": true,
@@ -939,11 +832,11 @@
]
}
],
- "timeFrom": "24h",
+ "timeFrom": "14d",
"title": "$POD",
"transform": "timeseries_to_rows",
"type": "table",
- "repeatIteration": 1456495934825,
+ "repeatIteration": 1468224666109,
"repeatPanelId": 5
}
],
@@ -996,9 +889,9 @@
"repeat": "POD",
"scopedVars": {
"POD": {
- "selected": true,
"text": "ericsson-pod2",
- "value": "ericsson\\-pod2"
+ "value": "ericsson\\-pod2",
+ "selected": true
}
},
"seriesOverrides": [],
@@ -1068,7 +961,7 @@
]
}
],
- "timeFrom": "10d",
+ "timeFrom": "14d",
"timeShift": null,
"title": "$POD",
"tooltip": {
@@ -1125,9 +1018,9 @@
"repeat": null,
"scopedVars": {
"POD": {
- "selected": true,
- "text": "huawei-us-deploy-bare-1",
- "value": "huawei\\-us\\-deploy\\-bare\\-1"
+ "text": "huawei-pod1",
+ "value": "huawei\\-pod1",
+ "selected": true
}
},
"seriesOverrides": [],
@@ -1197,7 +1090,7 @@
]
}
],
- "timeFrom": "10d",
+ "timeFrom": "14d",
"timeShift": null,
"title": "$POD",
"tooltip": {
@@ -1211,7 +1104,7 @@
"short",
"short"
],
- "repeatIteration": 1456495934825,
+ "repeatIteration": 1468224666109,
"repeatPanelId": 7
},
{
@@ -1256,9 +1149,9 @@
"repeat": null,
"scopedVars": {
"POD": {
- "selected": true,
- "text": "intel-pod6",
- "value": "intel\\-pod6"
+ "text": "huawei-pod2",
+ "value": "huawei\\-pod2",
+ "selected": true
}
},
"seriesOverrides": [],
@@ -1328,7 +1221,7 @@
]
}
],
- "timeFrom": "10d",
+ "timeFrom": "14d",
"timeShift": null,
"title": "$POD",
"tooltip": {
@@ -1342,7 +1235,7 @@
"short",
"short"
],
- "repeatIteration": 1456495934825,
+ "repeatIteration": 1468224666109,
"repeatPanelId": 7
},
{
@@ -1387,9 +1280,9 @@
"repeat": null,
"scopedVars": {
"POD": {
- "selected": true,
- "text": "opnfv-jump-1",
- "value": "opnfv\\-jump\\-1"
+ "text": "intel-pod6",
+ "value": "intel\\-pod6",
+ "selected": true
}
},
"seriesOverrides": [],
@@ -1459,7 +1352,7 @@
]
}
],
- "timeFrom": "10d",
+ "timeFrom": "14d",
"timeShift": null,
"title": "$POD",
"tooltip": {
@@ -1473,7 +1366,7 @@
"short",
"short"
],
- "repeatIteration": 1456495934825,
+ "repeatIteration": 1468224666109,
"repeatPanelId": 7
},
{
@@ -1518,9 +1411,9 @@
"repeat": null,
"scopedVars": {
"POD": {
- "selected": true,
- "text": "opnfv-jump-2",
- "value": "opnfv\\-jump\\-2"
+ "text": "lf-pod2",
+ "value": "lf\\-pod2",
+ "selected": true
}
},
"seriesOverrides": [],
@@ -1590,7 +1483,7 @@
]
}
],
- "timeFrom": "10d",
+ "timeFrom": "14d",
"timeShift": null,
"title": "$POD",
"tooltip": {
@@ -1604,7 +1497,7 @@
"short",
"short"
],
- "repeatIteration": 1456495934825,
+ "repeatIteration": 1468224666109,
"repeatPanelId": 7
},
{
@@ -1649,140 +1542,9 @@
"repeat": null,
"scopedVars": {
"POD": {
- "selected": true,
- "text": "orange-fr-pod2",
- "value": "orange\\-fr\\-pod2"
- }
- },
- "seriesOverrides": [],
- "span": 2,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "alias": "$tag_deploy_scenario",
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "24h"
- ],
- "type": "time"
- },
- {
- "params": [
- "deploy_scenario"
- ],
- "type": "tag"
- },
- {
- "params": [
- "pod_name"
- ],
- "type": "tag"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "opnfv_yardstick_tc010",
- "query": "SELECT mean(\"latencies0.latency\") FROM \"opnfv_yardstick_tc010\" WHERE \"pod_name\" =~ /$POD$/ AND \"deploy_scenario\" =~ /$SCENARIO$/ AND $timeFilter GROUP BY time(24h), \"deploy_scenario\", \"pod_name\" fill(null)",
- "refId": "A",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "latencies0.latency"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- }
- ]
- ],
- "tags": [
- {
- "key": "pod_name",
- "operator": "=~",
- "value": "/$POD$/"
- },
- {
- "condition": "AND",
- "key": "deploy_scenario",
- "operator": "=~",
- "value": "/$SCENARIO$/"
- }
- ]
- }
- ],
- "timeFrom": "10d",
- "timeShift": null,
- "title": "$POD",
- "tooltip": {
- "shared": true,
- "value_type": "cumulative"
- },
- "type": "graph",
- "x-axis": true,
- "y-axis": true,
- "y_formats": [
- "short",
- "short"
- ],
- "repeatIteration": 1456495934825,
- "repeatPanelId": 7
- },
- {
- "aliasColors": {},
- "bars": false,
- "datasource": "yardstick-vtc",
- "editable": true,
- "error": false,
- "fill": 1,
- "grid": {
- "leftLogBase": 1,
- "leftMax": null,
- "leftMin": null,
- "rightLogBase": 1,
- "rightMax": null,
- "rightMin": null,
- "threshold1": null,
- "threshold1Color": "rgba(216, 200, 27, 0.27)",
- "threshold2": null,
- "threshold2Color": "rgba(234, 112, 112, 0.22)"
- },
- "id": 21,
- "isNew": true,
- "legend": {
- "avg": false,
- "current": false,
- "max": false,
- "min": false,
- "show": true,
- "total": false,
- "values": false
- },
- "lines": true,
- "linewidth": 2,
- "links": [],
- "minSpan": 2,
- "nullPointMode": "connected",
- "percentage": false,
- "pointradius": 5,
- "points": false,
- "renderer": "flot",
- "repeat": null,
- "scopedVars": {
- "POD": {
- "selected": true,
"text": "zte-pod1",
- "value": "zte\\-pod1"
+ "value": "zte\\-pod1",
+ "selected": true
}
},
"seriesOverrides": [],
@@ -1852,7 +1614,7 @@
]
}
],
- "timeFrom": "10d",
+ "timeFrom": "14d",
"timeShift": null,
"title": "$POD",
"tooltip": {
@@ -1866,7 +1628,7 @@
"short",
"short"
],
- "repeatIteration": 1456495934825,
+ "repeatIteration": 1468224666109,
"repeatPanelId": 7
}
],
@@ -1908,14 +1670,13 @@
"allFormat": "regex values",
"current": {
"tags": [],
- "text": "ericsson-pod2 + huawei-us-deploy-bare-1 + intel-pod6 + opnfv-jump-1 + opnfv-jump-2 + orange-fr-pod2 + zte-pod1",
+ "text": "ericsson-pod2 + huawei-pod1 + huawei-pod2 + intel-pod6 + lf-pod2 + zte-pod1",
"value": [
"ericsson\\-pod2",
- "huawei\\-us\\-deploy\\-bare\\-1",
+ "huawei\\-pod1",
+ "huawei\\-pod2",
"intel\\-pod6",
- "opnfv\\-jump\\-1",
- "opnfv\\-jump\\-2",
- "orange\\-fr\\-pod2",
+ "lf\\-pod2",
"zte\\-pod1"
]
},
@@ -1926,54 +1687,84 @@
"name": "POD",
"options": [
{
- "selected": false,
"text": "All",
- "value": "(elxg482ls42|ericsson\\-pod2|huawei\\-us\\-deploy\\-bare\\-1|intel\\-pod6|opnfv\\-jump\\-1|opnfv\\-jump\\-2|orange\\-fr\\-pod2|zte\\-pod1|unknown)"
+ "value": "(elxg482ls42|ericsson\\-pod1|ericsson\\-pod2|huawei\\-pod1|huawei\\-pod2|huawei\\-us\\-deploy\\-bare\\-1|intel\\-pod5|intel\\-pod6|lf\\-pod1|lf\\-pod2|opnfv\\-jump\\-1|opnfv\\-jump\\-2|orange\\-fr\\-pod2|unknown|zte\\-pod1)",
+ "selected": false
},
{
- "selected": false,
"text": "elxg482ls42",
- "value": "elxg482ls42"
+ "value": "elxg482ls42",
+ "selected": false
+ },
+ {
+ "text": "ericsson-pod1",
+ "value": "ericsson\\-pod1",
+ "selected": false
},
{
- "selected": true,
"text": "ericsson-pod2",
- "value": "ericsson\\-pod2"
+ "value": "ericsson\\-pod2",
+ "selected": true
+ },
+ {
+ "text": "huawei-pod1",
+ "value": "huawei\\-pod1",
+ "selected": true
+ },
+ {
+ "text": "huawei-pod2",
+ "value": "huawei\\-pod2",
+ "selected": true
},
{
- "selected": true,
"text": "huawei-us-deploy-bare-1",
- "value": "huawei\\-us\\-deploy\\-bare\\-1"
+ "value": "huawei\\-us\\-deploy\\-bare\\-1",
+ "selected": false
+ },
+ {
+ "text": "intel-pod5",
+ "value": "intel\\-pod5",
+ "selected": false
},
{
- "selected": true,
"text": "intel-pod6",
- "value": "intel\\-pod6"
+ "value": "intel\\-pod6",
+ "selected": true
+ },
+ {
+ "text": "lf-pod1",
+ "value": "lf\\-pod1",
+ "selected": false
+ },
+ {
+ "text": "lf-pod2",
+ "value": "lf\\-pod2",
+ "selected": true
},
{
- "selected": true,
"text": "opnfv-jump-1",
- "value": "opnfv\\-jump\\-1"
+ "value": "opnfv\\-jump\\-1",
+ "selected": false
},
{
- "selected": true,
"text": "opnfv-jump-2",
- "value": "opnfv\\-jump\\-2"
+ "value": "opnfv\\-jump\\-2",
+ "selected": false
},
{
- "selected": true,
"text": "orange-fr-pod2",
- "value": "orange\\-fr\\-pod2"
+ "value": "orange\\-fr\\-pod2",
+ "selected": false
},
{
- "selected": true,
- "text": "zte-pod1",
- "value": "zte\\-pod1"
+ "text": "unknown",
+ "value": "unknown",
+ "selected": false
},
{
- "selected": false,
- "text": "unknown",
- "value": "unknown"
+ "text": "zte-pod1",
+ "value": "zte\\-pod1",
+ "selected": true
}
],
"query": "SHOW TAG VALUES WITH KEY = \"pod_name\"",
@@ -2051,6 +1842,6 @@
"list": []
},
"schemaVersion": 8,
- "version": 4,
+ "version": 3,
"links": []
}
diff --git a/dashboard/Yardstick-TC011-1456495954966 b/dashboard/Yardstick-TC011-1456495954966
index db8f48ce8..2bca4dece 100644
--- a/dashboard/Yardstick-TC011-1456495954966
+++ b/dashboard/Yardstick-TC011-1456495954966
@@ -154,7 +154,7 @@
]
}
],
- "timeFrom": "24h",
+ "timeFrom": "14d",
"timeShift": null,
"title": "jitter: packet delay variation (ms)",
"tooltip": {
@@ -212,9 +212,9 @@
"repeat": "POD",
"scopedVars": {
"POD": {
- "selected": true,
"text": "ericsson-pod2",
- "value": "ericsson\\-pod2"
+ "value": "ericsson\\-pod2",
+ "selected": true
}
},
"scroll": true,
@@ -298,7 +298,7 @@
]
}
],
- "timeFrom": "24h",
+ "timeFrom": "14d",
"title": "$POD",
"transform": "timeseries_to_rows",
"type": "table"
@@ -317,9 +317,9 @@
"repeat": null,
"scopedVars": {
"POD": {
- "selected": true,
- "text": "huawei-us-deploy-bare-1",
- "value": "huawei\\-us\\-deploy\\-bare\\-1"
+ "text": "huawei-pod1",
+ "value": "huawei\\-pod1",
+ "selected": true
}
},
"scroll": true,
@@ -403,11 +403,11 @@
]
}
],
- "timeFrom": "24h",
+ "timeFrom": "14d",
"title": "$POD",
"transform": "timeseries_to_rows",
"type": "table",
- "repeatIteration": 1456495947533,
+ "repeatIteration": 1468225357451,
"repeatPanelId": 5
},
{
@@ -424,9 +424,9 @@
"repeat": null,
"scopedVars": {
"POD": {
- "selected": true,
- "text": "intel-pod6",
- "value": "intel\\-pod6"
+ "text": "huawei-pod2",
+ "value": "huawei\\-pod2",
+ "selected": true
}
},
"scroll": true,
@@ -510,11 +510,11 @@
]
}
],
- "timeFrom": "24h",
+ "timeFrom": "14d",
"title": "$POD",
"transform": "timeseries_to_rows",
"type": "table",
- "repeatIteration": 1456495947533,
+ "repeatIteration": 1468225357451,
"repeatPanelId": 5
},
{
@@ -531,9 +531,9 @@
"repeat": null,
"scopedVars": {
"POD": {
- "selected": true,
- "text": "opnfv-jump-1",
- "value": "opnfv\\-jump\\-1"
+ "text": "intel-pod6",
+ "value": "intel\\-pod6",
+ "selected": true
}
},
"scroll": true,
@@ -617,11 +617,11 @@
]
}
],
- "timeFrom": "24h",
+ "timeFrom": "14d",
"title": "$POD",
"transform": "timeseries_to_rows",
"type": "table",
- "repeatIteration": 1456495947533,
+ "repeatIteration": 1468225357451,
"repeatPanelId": 5
},
{
@@ -638,9 +638,9 @@
"repeat": null,
"scopedVars": {
"POD": {
- "selected": true,
- "text": "opnfv-jump-2",
- "value": "opnfv\\-jump\\-2"
+ "text": "lf-pod2",
+ "value": "lf\\-pod2",
+ "selected": true
}
},
"scroll": true,
@@ -724,11 +724,11 @@
]
}
],
- "timeFrom": "24h",
+ "timeFrom": "14d",
"title": "$POD",
"transform": "timeseries_to_rows",
"type": "table",
- "repeatIteration": 1456495947533,
+ "repeatIteration": 1468225357451,
"repeatPanelId": 5
},
{
@@ -745,116 +745,9 @@
"repeat": null,
"scopedVars": {
"POD": {
- "selected": true,
- "text": "orange-fr-pod2",
- "value": "orange\\-fr\\-pod2"
- }
- },
- "scroll": true,
- "showHeader": true,
- "sort": {
- "col": 0,
- "desc": true
- },
- "span": 2,
- "styles": [
- {
- "dateFormat": "YYYY-MM-DD HH:mm:ss",
- "pattern": "Time",
- "type": "date"
- },
- {
- "colorMode": null,
- "colors": [
- "rgba(245, 54, 54, 0.9)",
- "rgba(237, 129, 40, 0.89)",
- "rgba(50, 172, 45, 0.97)"
- ],
- "decimals": 2,
- "pattern": "deploy_scenario",
- "thresholds": [],
- "type": "string",
- "unit": "short"
- },
- {
- "colorMode": null,
- "colors": [
- "rgba(245, 54, 54, 0.9)",
- "rgba(237, 129, 40, 0.89)",
- "rgba(50, 172, 45, 0.97)"
- ],
- "dateFormat": "YYYY-MM-DD HH:mm:ss",
- "decimals": 4,
- "pattern": "/.*/",
- "thresholds": [],
- "type": "number",
- "unit": "short"
- }
- ],
- "targets": [
- {
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "deploy_scenario"
- ],
- "type": "tag"
- }
- ],
- "measurement": "opnfv_yardstick_tc011",
- "query": "SELECT \"end.sum.jitter_ms\" FROM \"opnfv_yardstick_tc011\" WHERE \"pod_name\" =~ /$POD$/ AND \"deploy_scenario\" =~ /$SCENARIO$/ AND $timeFilter GROUP BY \"deploy_scenario\"",
- "refId": "A",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "end.sum.jitter_ms"
- ],
- "type": "field"
- }
- ]
- ],
- "tags": [
- {
- "key": "pod_name",
- "operator": "=~",
- "value": "/$POD$/"
- },
- {
- "condition": "AND",
- "key": "deploy_scenario",
- "operator": "=~",
- "value": "/$SCENARIO$/"
- }
- ]
- }
- ],
- "timeFrom": "24h",
- "title": "$POD",
- "transform": "timeseries_to_rows",
- "type": "table",
- "repeatIteration": 1456495947533,
- "repeatPanelId": 5
- },
- {
- "columns": [],
- "datasource": "yardstick-vtc",
- "editable": true,
- "error": false,
- "fontSize": "100%",
- "id": 20,
- "isNew": true,
- "links": [],
- "minSpan": 2,
- "pageSize": null,
- "repeat": null,
- "scopedVars": {
- "POD": {
- "selected": true,
"text": "zte-pod1",
- "value": "zte\\-pod1"
+ "value": "zte\\-pod1",
+ "selected": true
}
},
"scroll": true,
@@ -938,11 +831,11 @@
]
}
],
- "timeFrom": "24h",
+ "timeFrom": "14d",
"title": "$POD",
"transform": "timeseries_to_rows",
"type": "table",
- "repeatIteration": 1456495947533,
+ "repeatIteration": 1468225357451,
"repeatPanelId": 5
}
],
@@ -995,9 +888,9 @@
"repeat": "POD",
"scopedVars": {
"POD": {
- "selected": true,
"text": "ericsson-pod2",
- "value": "ericsson\\-pod2"
+ "value": "ericsson\\-pod2",
+ "selected": true
}
},
"seriesOverrides": [],
@@ -1066,7 +959,7 @@
]
}
],
- "timeFrom": "10d",
+ "timeFrom": "14d",
"timeShift": null,
"title": "$POD",
"tooltip": {
@@ -1123,9 +1016,9 @@
"repeat": null,
"scopedVars": {
"POD": {
- "selected": true,
- "text": "huawei-us-deploy-bare-1",
- "value": "huawei\\-us\\-deploy\\-bare\\-1"
+ "text": "huawei-pod1",
+ "value": "huawei\\-pod1",
+ "selected": true
}
},
"seriesOverrides": [],
@@ -1194,7 +1087,7 @@
]
}
],
- "timeFrom": "10d",
+ "timeFrom": "14d",
"timeShift": null,
"title": "$POD",
"tooltip": {
@@ -1208,7 +1101,7 @@
"short",
"short"
],
- "repeatIteration": 1456495947533,
+ "repeatIteration": 1468225357451,
"repeatPanelId": 7
},
{
@@ -1253,9 +1146,9 @@
"repeat": null,
"scopedVars": {
"POD": {
- "selected": true,
- "text": "intel-pod6",
- "value": "intel\\-pod6"
+ "text": "huawei-pod2",
+ "value": "huawei\\-pod2",
+ "selected": true
}
},
"seriesOverrides": [],
@@ -1324,7 +1217,7 @@
]
}
],
- "timeFrom": "10d",
+ "timeFrom": "14d",
"timeShift": null,
"title": "$POD",
"tooltip": {
@@ -1338,7 +1231,7 @@
"short",
"short"
],
- "repeatIteration": 1456495947533,
+ "repeatIteration": 1468225357451,
"repeatPanelId": 7
},
{
@@ -1383,9 +1276,9 @@
"repeat": null,
"scopedVars": {
"POD": {
- "selected": true,
- "text": "opnfv-jump-1",
- "value": "opnfv\\-jump\\-1"
+ "text": "intel-pod6",
+ "value": "intel\\-pod6",
+ "selected": true
}
},
"seriesOverrides": [],
@@ -1454,7 +1347,7 @@
]
}
],
- "timeFrom": "10d",
+ "timeFrom": "14d",
"timeShift": null,
"title": "$POD",
"tooltip": {
@@ -1468,7 +1361,7 @@
"short",
"short"
],
- "repeatIteration": 1456495947533,
+ "repeatIteration": 1468225357451,
"repeatPanelId": 7
},
{
@@ -1513,9 +1406,9 @@
"repeat": null,
"scopedVars": {
"POD": {
- "selected": true,
- "text": "opnfv-jump-2",
- "value": "opnfv\\-jump\\-2"
+ "text": "lf-pod2",
+ "value": "lf\\-pod2",
+ "selected": true
}
},
"seriesOverrides": [],
@@ -1584,7 +1477,7 @@
]
}
],
- "timeFrom": "10d",
+ "timeFrom": "14d",
"timeShift": null,
"title": "$POD",
"tooltip": {
@@ -1598,7 +1491,7 @@
"short",
"short"
],
- "repeatIteration": 1456495947533,
+ "repeatIteration": 1468225357451,
"repeatPanelId": 7
},
{
@@ -1643,139 +1536,9 @@
"repeat": null,
"scopedVars": {
"POD": {
- "selected": true,
- "text": "orange-fr-pod2",
- "value": "orange\\-fr\\-pod2"
- }
- },
- "seriesOverrides": [],
- "span": 2,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "24h"
- ],
- "type": "time"
- },
- {
- "params": [
- "deploy_scenario"
- ],
- "type": "tag"
- },
- {
- "params": [
- "pod_name"
- ],
- "type": "tag"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "opnfv_yardstick_tc011",
- "query": "SELECT mean(\"end.sum.jitter_ms\") FROM \"opnfv_yardstick_tc011\" WHERE \"pod_name\" =~ /$POD$/ AND \"deploy_scenario\" =~ /$SCENARIO$/ AND $timeFilter GROUP BY time(24h), \"deploy_scenario\", \"pod_name\" fill(null)",
- "refId": "A",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "end.sum.jitter_ms"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- }
- ]
- ],
- "tags": [
- {
- "key": "pod_name",
- "operator": "=~",
- "value": "/$POD$/"
- },
- {
- "condition": "AND",
- "key": "deploy_scenario",
- "operator": "=~",
- "value": "/$SCENARIO$/"
- }
- ]
- }
- ],
- "timeFrom": "10d",
- "timeShift": null,
- "title": "$POD",
- "tooltip": {
- "shared": true,
- "value_type": "cumulative"
- },
- "type": "graph",
- "x-axis": true,
- "y-axis": true,
- "y_formats": [
- "short",
- "short"
- ],
- "repeatIteration": 1456495947533,
- "repeatPanelId": 7
- },
- {
- "aliasColors": {},
- "bars": false,
- "datasource": "yardstick-vtc",
- "editable": true,
- "error": false,
- "fill": 1,
- "grid": {
- "leftLogBase": 1,
- "leftMax": null,
- "leftMin": null,
- "rightLogBase": 1,
- "rightMax": null,
- "rightMin": null,
- "threshold1": null,
- "threshold1Color": "rgba(216, 200, 27, 0.27)",
- "threshold2": null,
- "threshold2Color": "rgba(234, 112, 112, 0.22)"
- },
- "id": 21,
- "isNew": true,
- "legend": {
- "avg": false,
- "current": false,
- "max": false,
- "min": false,
- "show": true,
- "total": false,
- "values": false
- },
- "lines": true,
- "linewidth": 2,
- "links": [],
- "minSpan": 2,
- "nullPointMode": "connected",
- "percentage": false,
- "pointradius": 3,
- "points": true,
- "renderer": "flot",
- "repeat": null,
- "scopedVars": {
- "POD": {
- "selected": true,
"text": "zte-pod1",
- "value": "zte\\-pod1"
+ "value": "zte\\-pod1",
+ "selected": true
}
},
"seriesOverrides": [],
@@ -1844,7 +1607,7 @@
]
}
],
- "timeFrom": "10d",
+ "timeFrom": "14d",
"timeShift": null,
"title": "$POD",
"tooltip": {
@@ -1858,7 +1621,7 @@
"short",
"short"
],
- "repeatIteration": 1456495947533,
+ "repeatIteration": 1468225357451,
"repeatPanelId": 7
}
],
@@ -1900,14 +1663,13 @@
"allFormat": "regex values",
"current": {
"tags": [],
- "text": "ericsson-pod2 + huawei-us-deploy-bare-1 + intel-pod6 + opnfv-jump-1 + opnfv-jump-2 + orange-fr-pod2 + zte-pod1",
+ "text": "ericsson-pod2 + huawei-pod1 + huawei-pod2 + intel-pod6 + lf-pod2 + zte-pod1",
"value": [
"ericsson\\-pod2",
- "huawei\\-us\\-deploy\\-bare\\-1",
+ "huawei\\-pod1",
+ "huawei\\-pod2",
"intel\\-pod6",
- "opnfv\\-jump\\-1",
- "opnfv\\-jump\\-2",
- "orange\\-fr\\-pod2",
+ "lf\\-pod2",
"zte\\-pod1"
]
},
@@ -1918,54 +1680,84 @@
"name": "POD",
"options": [
{
- "selected": false,
"text": "All",
- "value": "(elxg482ls42|ericsson\\-pod2|huawei\\-us\\-deploy\\-bare\\-1|intel\\-pod6|opnfv\\-jump\\-1|opnfv\\-jump\\-2|orange\\-fr\\-pod2|zte\\-pod1|unknown)"
+ "value": "(elxg482ls42|ericsson\\-pod1|ericsson\\-pod2|huawei\\-pod1|huawei\\-pod2|huawei\\-us\\-deploy\\-bare\\-1|intel\\-pod5|intel\\-pod6|lf\\-pod1|lf\\-pod2|opnfv\\-jump\\-1|opnfv\\-jump\\-2|orange\\-fr\\-pod2|unknown|zte\\-pod1)",
+ "selected": false
},
{
- "selected": false,
"text": "elxg482ls42",
- "value": "elxg482ls42"
+ "value": "elxg482ls42",
+ "selected": false
+ },
+ {
+ "text": "ericsson-pod1",
+ "value": "ericsson\\-pod1",
+ "selected": false
},
{
- "selected": true,
"text": "ericsson-pod2",
- "value": "ericsson\\-pod2"
+ "value": "ericsson\\-pod2",
+ "selected": true
+ },
+ {
+ "text": "huawei-pod1",
+ "value": "huawei\\-pod1",
+ "selected": true
+ },
+ {
+ "text": "huawei-pod2",
+ "value": "huawei\\-pod2",
+ "selected": true
},
{
- "selected": true,
"text": "huawei-us-deploy-bare-1",
- "value": "huawei\\-us\\-deploy\\-bare\\-1"
+ "value": "huawei\\-us\\-deploy\\-bare\\-1",
+ "selected": false
+ },
+ {
+ "text": "intel-pod5",
+ "value": "intel\\-pod5",
+ "selected": false
},
{
- "selected": true,
"text": "intel-pod6",
- "value": "intel\\-pod6"
+ "value": "intel\\-pod6",
+ "selected": true
+ },
+ {
+ "text": "lf-pod1",
+ "value": "lf\\-pod1",
+ "selected": false
+ },
+ {
+ "text": "lf-pod2",
+ "value": "lf\\-pod2",
+ "selected": true
},
{
- "selected": true,
"text": "opnfv-jump-1",
- "value": "opnfv\\-jump\\-1"
+ "value": "opnfv\\-jump\\-1",
+ "selected": false
},
{
- "selected": true,
"text": "opnfv-jump-2",
- "value": "opnfv\\-jump\\-2"
+ "value": "opnfv\\-jump\\-2",
+ "selected": false
},
{
- "selected": true,
"text": "orange-fr-pod2",
- "value": "orange\\-fr\\-pod2"
+ "value": "orange\\-fr\\-pod2",
+ "selected": false
},
{
- "selected": true,
- "text": "zte-pod1",
- "value": "zte\\-pod1"
+ "text": "unknown",
+ "value": "unknown",
+ "selected": false
},
{
- "selected": false,
- "text": "unknown",
- "value": "unknown"
+ "text": "zte-pod1",
+ "value": "zte\\-pod1",
+ "selected": true
}
],
"query": "SHOW TAG VALUES WITH KEY = \"pod_name\"",
@@ -2044,6 +1836,6 @@
},
"refresh": "15m",
"schemaVersion": 8,
- "version": 11,
+ "version": 2,
"links": []
}
diff --git a/dashboard/Yardstick-TC012-1456495966540 b/dashboard/Yardstick-TC012-1456495966540
index 0cab51702..c170897f5 100644
--- a/dashboard/Yardstick-TC012-1456495966540
+++ b/dashboard/Yardstick-TC012-1456495966540
@@ -88,12 +88,6 @@
"groupBy": [
{
"params": [
- "24h"
- ],
- "type": "time"
- },
- {
- "params": [
"pod_name"
],
"type": "tag"
@@ -106,7 +100,7 @@
}
],
"measurement": "opnfv_yardstick_tc012",
- "query": "SELECT mean(\"bandwidth(MBps)\") FROM \"opnfv_yardstick_tc012\" WHERE \"pod_name\" =~ /$POD$/ AND \"deploy_scenario\" =~ /$SCENARIO$/ AND $timeFilter GROUP BY time(24h), \"pod_name\", \"deploy_scenario\"",
+ "query": "SELECT \"bandwidth(MBps)\" FROM \"opnfv_yardstick_tc012\" WHERE \"pod_name\" =~ /$POD$/ AND \"deploy_scenario\" =~ /$SCENARIO$/ AND $timeFilter GROUP BY \"pod_name\", \"deploy_scenario\"",
"refId": "A",
"resultFormat": "time_series",
"select": [
@@ -116,10 +110,6 @@
"bandwidth(MBps)"
],
"type": "field"
- },
- {
- "params": [],
- "type": "mean"
}
]
],
@@ -138,7 +128,7 @@
]
}
],
- "timeFrom": "10d",
+ "timeFrom": "14d",
"timeShift": null,
"title": "Memory read/write bandwidth trend",
"tooltip": {
@@ -157,92 +147,1103 @@
"title": "New row"
},
{
- "collapse": false,
- "editable": true,
+ "title": "New row",
"height": "250px",
+ "editable": true,
+ "collapse": false,
"panels": [
{
- "aliasColors": {},
- "bars": false,
+ "title": "Daily Averages",
+ "error": false,
+ "span": 12,
+ "editable": true,
+ "type": "text",
+ "isNew": true,
+ "id": 4,
+ "mode": "markdown",
+ "content": "",
+ "style": {},
+ "links": [],
+ "height": "0"
+ },
+ {
+ "title": "$POD",
+ "error": false,
+ "span": 2,
+ "editable": true,
+ "type": "table",
+ "isNew": true,
+ "id": 5,
+ "styles": [
+ {
+ "type": "date",
+ "pattern": "Time",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss"
+ },
+ {
+ "unit": "short",
+ "type": "number",
+ "decimals": 2,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "colorMode": null,
+ "pattern": "",
+ "thresholds": []
+ }
+ ],
+ "targets": [
+ {
+ "refId": "A",
+ "dsType": "influxdb",
+ "resultFormat": "time_series",
+ "tags": [
+ {
+ "key": "pod_name",
+ "operator": "=~",
+ "value": "/$POD$/"
+ },
+ {
+ "condition": "AND",
+ "key": "deploy_scenario",
+ "operator": "=~",
+ "value": "/$SCENARIO$/"
+ }
+ ],
+ "groupBy": [
+ {
+ "type": "tag",
+ "params": [
+ "deploy_scenario"
+ ]
+ }
+ ],
+ "select": [
+ [
+ {
+ "type": "field",
+ "params": [
+ "bandwidth(MBps)"
+ ]
+ }
+ ]
+ ],
+ "measurement": "opnfv_yardstick_tc012",
+ "query": "SELECT \"bandwidth(MBps)\" FROM \"opnfv_yardstick_tc012\" WHERE \"pod_name\" =~ /$POD$/ AND \"deploy_scenario\" =~ /$SCENARIO$/ AND $timeFilter GROUP BY \"deploy_scenario\""
+ },
+ {
+ "refId": "B",
+ "dsType": "influxdb",
+ "resultFormat": "time_series",
+ "tags": [
+ {
+ "key": "pod_name",
+ "operator": "=~",
+ "value": "/$POD$/"
+ },
+ {
+ "condition": "AND",
+ "key": "deploy_scenario",
+ "operator": "=~",
+ "value": "/$SCENARIO$/"
+ }
+ ],
+ "groupBy": [
+ {
+ "type": "tag",
+ "params": [
+ "deploy_scenario"
+ ]
+ }
+ ],
+ "select": [
+ [
+ {
+ "type": "field",
+ "params": [
+ "bandwidth(MBps)"
+ ]
+ }
+ ]
+ ],
+ "measurement": "opnfv_yardstick_tc012",
+ "query": "SELECT \"bandwidth(MBps)\" FROM \"opnfv_yardstick_tc012\" WHERE \"pod_name\" =~ /$POD$/ AND \"deploy_scenario\" =~ /$SCENARIO$/ AND $timeFilter GROUP BY \"deploy_scenario\""
+ }
+ ],
+ "transform": "timeseries_to_rows",
+ "pageSize": null,
+ "showHeader": true,
+ "columns": [],
+ "scroll": true,
+ "fontSize": "100%",
+ "sort": {
+ "col": 0,
+ "desc": true
+ },
+ "links": [],
+ "repeat": "POD",
+ "minSpan": 2,
"datasource": "yardstick-vtc",
+ "timeFrom": "14d",
+ "scopedVars": {
+ "POD": {
+ "text": "ericsson-pod2",
+ "value": "ericsson\\-pod2",
+ "selected": true
+ }
+ }
+ },
+ {
+ "title": "$POD",
+ "error": false,
+ "span": 2,
"editable": true,
+ "type": "table",
+ "isNew": true,
+ "id": 6,
+ "styles": [
+ {
+ "type": "date",
+ "pattern": "Time",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss"
+ },
+ {
+ "unit": "short",
+ "type": "number",
+ "decimals": 2,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "colorMode": null,
+ "pattern": "",
+ "thresholds": []
+ }
+ ],
+ "targets": [
+ {
+ "refId": "A",
+ "dsType": "influxdb",
+ "resultFormat": "time_series",
+ "tags": [
+ {
+ "key": "pod_name",
+ "operator": "=~",
+ "value": "/$POD$/"
+ },
+ {
+ "condition": "AND",
+ "key": "deploy_scenario",
+ "operator": "=~",
+ "value": "/$SCENARIO$/"
+ }
+ ],
+ "groupBy": [
+ {
+ "type": "tag",
+ "params": [
+ "deploy_scenario"
+ ]
+ }
+ ],
+ "select": [
+ [
+ {
+ "type": "field",
+ "params": [
+ "bandwidth(MBps)"
+ ]
+ }
+ ]
+ ],
+ "measurement": "opnfv_yardstick_tc012",
+ "query": "SELECT \"bandwidth(MBps)\" FROM \"opnfv_yardstick_tc012\" WHERE \"pod_name\" =~ /$POD$/ AND \"deploy_scenario\" =~ /$SCENARIO$/ AND $timeFilter GROUP BY \"deploy_scenario\""
+ },
+ {
+ "refId": "B",
+ "dsType": "influxdb",
+ "resultFormat": "time_series",
+ "tags": [
+ {
+ "key": "pod_name",
+ "operator": "=~",
+ "value": "/$POD$/"
+ },
+ {
+ "condition": "AND",
+ "key": "deploy_scenario",
+ "operator": "=~",
+ "value": "/$SCENARIO$/"
+ }
+ ],
+ "groupBy": [
+ {
+ "type": "tag",
+ "params": [
+ "deploy_scenario"
+ ]
+ }
+ ],
+ "select": [
+ [
+ {
+ "type": "field",
+ "params": [
+ "bandwidth(MBps)"
+ ]
+ }
+ ]
+ ],
+ "measurement": "opnfv_yardstick_tc012",
+ "query": "SELECT \"bandwidth(MBps)\" FROM \"opnfv_yardstick_tc012\" WHERE \"pod_name\" =~ /$POD$/ AND \"deploy_scenario\" =~ /$SCENARIO$/ AND $timeFilter GROUP BY \"deploy_scenario\""
+ }
+ ],
+ "transform": "timeseries_to_rows",
+ "pageSize": null,
+ "showHeader": true,
+ "columns": [],
+ "scroll": true,
+ "fontSize": "100%",
+ "sort": {
+ "col": 0,
+ "desc": true
+ },
+ "links": [],
+ "repeat": null,
+ "minSpan": 2,
+ "datasource": "yardstick-vtc",
+ "timeFrom": "14d",
+ "scopedVars": {
+ "POD": {
+ "text": "huawei-pod1",
+ "value": "huawei\\-pod1",
+ "selected": true
+ }
+ },
+ "repeatIteration": 1468305923981,
+ "repeatPanelId": 5
+ },
+ {
+ "title": "$POD",
"error": false,
- "fill": 0,
+ "span": 2,
+ "editable": true,
+ "type": "table",
+ "isNew": true,
+ "id": 7,
+ "styles": [
+ {
+ "type": "date",
+ "pattern": "Time",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss"
+ },
+ {
+ "unit": "short",
+ "type": "number",
+ "decimals": 2,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "colorMode": null,
+ "pattern": "",
+ "thresholds": []
+ }
+ ],
+ "targets": [
+ {
+ "refId": "A",
+ "dsType": "influxdb",
+ "resultFormat": "time_series",
+ "tags": [
+ {
+ "key": "pod_name",
+ "operator": "=~",
+ "value": "/$POD$/"
+ },
+ {
+ "condition": "AND",
+ "key": "deploy_scenario",
+ "operator": "=~",
+ "value": "/$SCENARIO$/"
+ }
+ ],
+ "groupBy": [
+ {
+ "type": "tag",
+ "params": [
+ "deploy_scenario"
+ ]
+ }
+ ],
+ "select": [
+ [
+ {
+ "type": "field",
+ "params": [
+ "bandwidth(MBps)"
+ ]
+ }
+ ]
+ ],
+ "measurement": "opnfv_yardstick_tc012",
+ "query": "SELECT \"bandwidth(MBps)\" FROM \"opnfv_yardstick_tc012\" WHERE \"pod_name\" =~ /$POD$/ AND \"deploy_scenario\" =~ /$SCENARIO$/ AND $timeFilter GROUP BY \"deploy_scenario\""
+ },
+ {
+ "refId": "B",
+ "dsType": "influxdb",
+ "resultFormat": "time_series",
+ "tags": [
+ {
+ "key": "pod_name",
+ "operator": "=~",
+ "value": "/$POD$/"
+ },
+ {
+ "condition": "AND",
+ "key": "deploy_scenario",
+ "operator": "=~",
+ "value": "/$SCENARIO$/"
+ }
+ ],
+ "groupBy": [
+ {
+ "type": "tag",
+ "params": [
+ "deploy_scenario"
+ ]
+ }
+ ],
+ "select": [
+ [
+ {
+ "type": "field",
+ "params": [
+ "bandwidth(MBps)"
+ ]
+ }
+ ]
+ ],
+ "measurement": "opnfv_yardstick_tc012",
+ "query": "SELECT \"bandwidth(MBps)\" FROM \"opnfv_yardstick_tc012\" WHERE \"pod_name\" =~ /$POD$/ AND \"deploy_scenario\" =~ /$SCENARIO$/ AND $timeFilter GROUP BY \"deploy_scenario\""
+ }
+ ],
+ "transform": "timeseries_to_rows",
+ "pageSize": null,
+ "showHeader": true,
+ "columns": [],
+ "scroll": true,
+ "fontSize": "100%",
+ "sort": {
+ "col": 0,
+ "desc": true
+ },
+ "links": [],
+ "repeat": null,
+ "minSpan": 2,
+ "datasource": "yardstick-vtc",
+ "timeFrom": "14d",
+ "scopedVars": {
+ "POD": {
+ "text": "huawei-pod2",
+ "value": "huawei\\-pod2",
+ "selected": true
+ }
+ },
+ "repeatIteration": 1468305923981,
+ "repeatPanelId": 5
+ },
+ {
+ "title": "$POD",
+ "error": false,
+ "span": 2,
+ "editable": true,
+ "type": "table",
+ "isNew": true,
+ "id": 8,
+ "styles": [
+ {
+ "type": "date",
+ "pattern": "Time",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss"
+ },
+ {
+ "unit": "short",
+ "type": "number",
+ "decimals": 2,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "colorMode": null,
+ "pattern": "",
+ "thresholds": []
+ }
+ ],
+ "targets": [
+ {
+ "refId": "A",
+ "dsType": "influxdb",
+ "resultFormat": "time_series",
+ "tags": [
+ {
+ "key": "pod_name",
+ "operator": "=~",
+ "value": "/$POD$/"
+ },
+ {
+ "condition": "AND",
+ "key": "deploy_scenario",
+ "operator": "=~",
+ "value": "/$SCENARIO$/"
+ }
+ ],
+ "groupBy": [
+ {
+ "type": "tag",
+ "params": [
+ "deploy_scenario"
+ ]
+ }
+ ],
+ "select": [
+ [
+ {
+ "type": "field",
+ "params": [
+ "bandwidth(MBps)"
+ ]
+ }
+ ]
+ ],
+ "measurement": "opnfv_yardstick_tc012",
+ "query": "SELECT \"bandwidth(MBps)\" FROM \"opnfv_yardstick_tc012\" WHERE \"pod_name\" =~ /$POD$/ AND \"deploy_scenario\" =~ /$SCENARIO$/ AND $timeFilter GROUP BY \"deploy_scenario\""
+ },
+ {
+ "refId": "B",
+ "dsType": "influxdb",
+ "resultFormat": "time_series",
+ "tags": [
+ {
+ "key": "pod_name",
+ "operator": "=~",
+ "value": "/$POD$/"
+ },
+ {
+ "condition": "AND",
+ "key": "deploy_scenario",
+ "operator": "=~",
+ "value": "/$SCENARIO$/"
+ }
+ ],
+ "groupBy": [
+ {
+ "type": "tag",
+ "params": [
+ "deploy_scenario"
+ ]
+ }
+ ],
+ "select": [
+ [
+ {
+ "type": "field",
+ "params": [
+ "bandwidth(MBps)"
+ ]
+ }
+ ]
+ ],
+ "measurement": "opnfv_yardstick_tc012",
+ "query": "SELECT \"bandwidth(MBps)\" FROM \"opnfv_yardstick_tc012\" WHERE \"pod_name\" =~ /$POD$/ AND \"deploy_scenario\" =~ /$SCENARIO$/ AND $timeFilter GROUP BY \"deploy_scenario\""
+ }
+ ],
+ "transform": "timeseries_to_rows",
+ "pageSize": null,
+ "showHeader": true,
+ "columns": [],
+ "scroll": true,
+ "fontSize": "100%",
+ "sort": {
+ "col": 0,
+ "desc": true
+ },
+ "links": [],
+ "repeat": null,
+ "minSpan": 2,
+ "datasource": "yardstick-vtc",
+ "timeFrom": "14d",
+ "scopedVars": {
+ "POD": {
+ "text": "intel-pod6",
+ "value": "intel\\-pod6",
+ "selected": true
+ }
+ },
+ "repeatIteration": 1468305923981,
+ "repeatPanelId": 5
+ },
+ {
+ "title": "$POD",
+ "error": false,
+ "span": 2,
+ "editable": true,
+ "type": "table",
+ "isNew": true,
+ "id": 15,
+ "styles": [
+ {
+ "type": "date",
+ "pattern": "Time",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss"
+ },
+ {
+ "unit": "short",
+ "type": "number",
+ "decimals": 2,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "colorMode": null,
+ "pattern": "",
+ "thresholds": []
+ }
+ ],
+ "targets": [
+ {
+ "refId": "A",
+ "dsType": "influxdb",
+ "resultFormat": "time_series",
+ "tags": [
+ {
+ "key": "pod_name",
+ "operator": "=~",
+ "value": "/$POD$/"
+ },
+ {
+ "condition": "AND",
+ "key": "deploy_scenario",
+ "operator": "=~",
+ "value": "/$SCENARIO$/"
+ }
+ ],
+ "groupBy": [
+ {
+ "type": "tag",
+ "params": [
+ "deploy_scenario"
+ ]
+ }
+ ],
+ "select": [
+ [
+ {
+ "type": "field",
+ "params": [
+ "bandwidth(MBps)"
+ ]
+ }
+ ]
+ ],
+ "measurement": "opnfv_yardstick_tc012",
+ "query": "SELECT \"bandwidth(MBps)\" FROM \"opnfv_yardstick_tc012\" WHERE \"pod_name\" =~ /$POD$/ AND \"deploy_scenario\" =~ /$SCENARIO$/ AND $timeFilter GROUP BY \"deploy_scenario\""
+ },
+ {
+ "refId": "B",
+ "dsType": "influxdb",
+ "resultFormat": "time_series",
+ "tags": [
+ {
+ "key": "pod_name",
+ "operator": "=~",
+ "value": "/$POD$/"
+ },
+ {
+ "condition": "AND",
+ "key": "deploy_scenario",
+ "operator": "=~",
+ "value": "/$SCENARIO$/"
+ }
+ ],
+ "groupBy": [
+ {
+ "type": "tag",
+ "params": [
+ "deploy_scenario"
+ ]
+ }
+ ],
+ "select": [
+ [
+ {
+ "type": "field",
+ "params": [
+ "bandwidth(MBps)"
+ ]
+ }
+ ]
+ ],
+ "measurement": "opnfv_yardstick_tc012",
+ "query": "SELECT \"bandwidth(MBps)\" FROM \"opnfv_yardstick_tc012\" WHERE \"pod_name\" =~ /$POD$/ AND \"deploy_scenario\" =~ /$SCENARIO$/ AND $timeFilter GROUP BY \"deploy_scenario\""
+ }
+ ],
+ "transform": "timeseries_to_rows",
+ "pageSize": null,
+ "showHeader": true,
+ "columns": [],
+ "scroll": true,
+ "fontSize": "100%",
+ "sort": {
+ "col": 0,
+ "desc": true
+ },
+ "links": [],
+ "repeat": null,
+ "minSpan": 2,
+ "datasource": "yardstick-vtc",
+ "timeFrom": "14d",
+ "scopedVars": {
+ "POD": {
+ "text": "lf-pod2",
+ "value": "lf\\-pod2",
+ "selected": true
+ }
+ },
+ "repeatIteration": 1468305923981,
+ "repeatPanelId": 5
+ },
+ {
+ "title": "$POD",
+ "error": false,
+ "span": 2,
+ "editable": true,
+ "type": "table",
+ "isNew": true,
+ "id": 22,
+ "styles": [
+ {
+ "type": "date",
+ "pattern": "Time",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss"
+ },
+ {
+ "unit": "short",
+ "type": "number",
+ "decimals": 2,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "colorMode": null,
+ "pattern": "",
+ "thresholds": []
+ }
+ ],
+ "targets": [
+ {
+ "refId": "A",
+ "dsType": "influxdb",
+ "resultFormat": "time_series",
+ "tags": [
+ {
+ "key": "pod_name",
+ "operator": "=~",
+ "value": "/$POD$/"
+ },
+ {
+ "condition": "AND",
+ "key": "deploy_scenario",
+ "operator": "=~",
+ "value": "/$SCENARIO$/"
+ }
+ ],
+ "groupBy": [
+ {
+ "type": "tag",
+ "params": [
+ "deploy_scenario"
+ ]
+ }
+ ],
+ "select": [
+ [
+ {
+ "type": "field",
+ "params": [
+ "bandwidth(MBps)"
+ ]
+ }
+ ]
+ ],
+ "measurement": "opnfv_yardstick_tc012",
+ "query": "SELECT \"bandwidth(MBps)\" FROM \"opnfv_yardstick_tc012\" WHERE \"pod_name\" =~ /$POD$/ AND \"deploy_scenario\" =~ /$SCENARIO$/ AND $timeFilter GROUP BY \"deploy_scenario\""
+ },
+ {
+ "refId": "B",
+ "dsType": "influxdb",
+ "resultFormat": "time_series",
+ "tags": [
+ {
+ "key": "pod_name",
+ "operator": "=~",
+ "value": "/$POD$/"
+ },
+ {
+ "condition": "AND",
+ "key": "deploy_scenario",
+ "operator": "=~",
+ "value": "/$SCENARIO$/"
+ }
+ ],
+ "groupBy": [
+ {
+ "type": "tag",
+ "params": [
+ "deploy_scenario"
+ ]
+ }
+ ],
+ "select": [
+ [
+ {
+ "type": "field",
+ "params": [
+ "bandwidth(MBps)"
+ ]
+ }
+ ]
+ ],
+ "measurement": "opnfv_yardstick_tc012",
+ "query": "SELECT \"bandwidth(MBps)\" FROM \"opnfv_yardstick_tc012\" WHERE \"pod_name\" =~ /$POD$/ AND \"deploy_scenario\" =~ /$SCENARIO$/ AND $timeFilter GROUP BY \"deploy_scenario\""
+ }
+ ],
+ "transform": "timeseries_to_rows",
+ "pageSize": null,
+ "showHeader": true,
+ "columns": [],
+ "scroll": true,
+ "fontSize": "100%",
+ "sort": {
+ "col": 0,
+ "desc": true
+ },
+ "links": [],
+ "repeat": null,
+ "minSpan": 2,
+ "datasource": "yardstick-vtc",
+ "timeFrom": "14d",
+ "scopedVars": {
+ "POD": {
+ "text": "zte-pod1",
+ "value": "zte\\-pod1",
+ "selected": true
+ }
+ },
+ "repeatIteration": 1468305923981,
+ "repeatPanelId": 5
+ }
+ ]
+ },
+ {
+ "title": "New row",
+ "height": "250px",
+ "editable": true,
+ "collapse": false,
+ "panels": [
+ {
+ "title": "$POD",
+ "error": false,
+ "span": 2,
+ "editable": true,
+ "type": "graph",
+ "isNew": true,
+ "id": 17,
+ "datasource": "yardstick-vtc",
+ "renderer": "flot",
+ "x-axis": true,
+ "y-axis": true,
+ "y_formats": [
+ "short",
+ "short"
+ ],
"grid": {
"leftLogBase": 1,
"leftMax": null,
- "leftMin": 0,
- "rightLogBase": 1,
"rightMax": null,
+ "leftMin": null,
"rightMin": null,
+ "rightLogBase": 1,
"threshold1": null,
- "threshold1Color": "rgba(216, 200, 27, 0.27)",
"threshold2": null,
+ "threshold1Color": "rgba(216, 200, 27, 0.27)",
"threshold2Color": "rgba(234, 112, 112, 0.22)"
},
- "id": 1,
- "isNew": true,
- "leftYAxisLabel": "BW (MB/s)",
+ "lines": true,
+ "fill": 1,
+ "linewidth": 2,
+ "points": false,
+ "pointradius": 5,
+ "bars": false,
+ "stack": false,
+ "percentage": false,
"legend": {
- "alignAsTable": true,
- "avg": true,
- "current": false,
- "max": true,
- "min": true,
"show": true,
+ "values": false,
+ "min": false,
+ "max": false,
+ "current": false,
"total": false,
- "values": true
+ "avg": false
},
- "lines": true,
- "linewidth": 2,
- "links": [],
"nullPointMode": "connected",
- "percentage": false,
- "pointradius": 2,
- "points": true,
- "renderer": "flot",
- "seriesOverrides": [],
- "span": 12,
- "stack": false,
"steppedLine": false,
+ "tooltip": {
+ "value_type": "cumulative",
+ "shared": true
+ },
+ "timeFrom": "14d",
+ "timeShift": null,
"targets": [
{
- "alias": "$tag_pod_name - $tag_deploy_scenario - bw",
+ "refId": "A",
"dsType": "influxdb",
- "groupBy": [
+ "resultFormat": "time_series",
+ "tags": [
{
- "params": [
- "pod_name"
- ],
- "type": "tag"
+ "key": "pod_name",
+ "operator": "=~",
+ "value": "/$POD$/"
},
{
+ "condition": "AND",
+ "key": "deploy_scenario",
+ "operator": "=~",
+ "value": "/$SCENARIO$/"
+ }
+ ],
+ "groupBy": [
+ {
+ "type": "tag",
"params": [
"deploy_scenario"
- ],
- "type": "tag"
+ ]
},
{
+ "type": "tag",
"params": [
- "task_id"
- ],
- "type": "tag"
+ "installer"
+ ]
}
],
+ "select": [
+ [
+ {
+ "type": "field",
+ "params": [
+ "bandwidth(MBps)"
+ ]
+ }
+ ]
+ ],
"measurement": "opnfv_yardstick_tc012",
- "query": "SELECT \"bandwidth(MBps)\" FROM \"opnfv_yardstick_tc012\" WHERE \"pod_name\" =~ /$POD$/ AND \"deploy_scenario\" =~ /$SCENARIO$/ AND $timeFilter GROUP BY \"pod_name\", \"deploy_scenario\", \"task_id\"",
+ "query": "SELECT \"bandwidth(MBps)\" FROM \"opnfv_yardstick_tc012\" WHERE \"pod_name\" =~ /$POD$/ AND \"deploy_scenario\" =~ /$SCENARIO$/ AND $timeFilter GROUP BY \"deploy_scenario\", \"installer\"",
+ "alias": "$tag_deploy_scenario - mean bw"
+ }
+ ],
+ "aliasColors": {},
+ "seriesOverrides": [],
+ "links": [],
+ "repeat": "POD",
+ "minSpan": 2,
+ "scopedVars": {
+ "POD": {
+ "text": "ericsson-pod2",
+ "value": "ericsson\\-pod2",
+ "selected": true
+ }
+ }
+ },
+ {
+ "title": "$POD",
+ "error": false,
+ "span": 2,
+ "editable": true,
+ "type": "graph",
+ "isNew": true,
+ "id": 18,
+ "datasource": "yardstick-vtc",
+ "renderer": "flot",
+ "x-axis": true,
+ "y-axis": true,
+ "y_formats": [
+ "short",
+ "short"
+ ],
+ "grid": {
+ "leftLogBase": 1,
+ "leftMax": null,
+ "rightMax": null,
+ "leftMin": null,
+ "rightMin": null,
+ "rightLogBase": 1,
+ "threshold1": null,
+ "threshold2": null,
+ "threshold1Color": "rgba(216, 200, 27, 0.27)",
+ "threshold2Color": "rgba(234, 112, 112, 0.22)"
+ },
+ "lines": true,
+ "fill": 1,
+ "linewidth": 2,
+ "points": false,
+ "pointradius": 5,
+ "bars": false,
+ "stack": false,
+ "percentage": false,
+ "legend": {
+ "show": true,
+ "values": false,
+ "min": false,
+ "max": false,
+ "current": false,
+ "total": false,
+ "avg": false
+ },
+ "nullPointMode": "connected",
+ "steppedLine": false,
+ "tooltip": {
+ "value_type": "cumulative",
+ "shared": true
+ },
+ "timeFrom": "14d",
+ "timeShift": null,
+ "targets": [
+ {
"refId": "A",
+ "dsType": "influxdb",
"resultFormat": "time_series",
+ "tags": [
+ {
+ "key": "pod_name",
+ "operator": "=~",
+ "value": "/$POD$/"
+ },
+ {
+ "condition": "AND",
+ "key": "deploy_scenario",
+ "operator": "=~",
+ "value": "/$SCENARIO$/"
+ }
+ ],
+ "groupBy": [
+ {
+ "type": "tag",
+ "params": [
+ "deploy_scenario"
+ ]
+ },
+ {
+ "type": "tag",
+ "params": [
+ "installer"
+ ]
+ }
+ ],
"select": [
[
{
+ "type": "field",
"params": [
"bandwidth(MBps)"
- ],
- "type": "field"
+ ]
}
]
],
+ "measurement": "opnfv_yardstick_tc012",
+ "query": "SELECT \"bandwidth(MBps)\" FROM \"opnfv_yardstick_tc012\" WHERE \"pod_name\" =~ /$POD$/ AND \"deploy_scenario\" =~ /$SCENARIO$/ AND $timeFilter GROUP BY \"deploy_scenario\", \"installer\"",
+ "alias": "$tag_deploy_scenario - mean bw"
+ }
+ ],
+ "aliasColors": {},
+ "seriesOverrides": [],
+ "links": [],
+ "repeat": null,
+ "minSpan": 2,
+ "scopedVars": {
+ "POD": {
+ "text": "huawei-pod1",
+ "value": "huawei\\-pod1",
+ "selected": true
+ }
+ },
+ "repeatIteration": 1468305923981,
+ "repeatPanelId": 17
+ },
+ {
+ "title": "$POD",
+ "error": false,
+ "span": 2,
+ "editable": true,
+ "type": "graph",
+ "isNew": true,
+ "id": 19,
+ "datasource": "yardstick-vtc",
+ "renderer": "flot",
+ "x-axis": true,
+ "y-axis": true,
+ "y_formats": [
+ "short",
+ "short"
+ ],
+ "grid": {
+ "leftLogBase": 1,
+ "leftMax": null,
+ "rightMax": null,
+ "leftMin": null,
+ "rightMin": null,
+ "rightLogBase": 1,
+ "threshold1": null,
+ "threshold2": null,
+ "threshold1Color": "rgba(216, 200, 27, 0.27)",
+ "threshold2Color": "rgba(234, 112, 112, 0.22)"
+ },
+ "lines": true,
+ "fill": 1,
+ "linewidth": 2,
+ "points": false,
+ "pointradius": 5,
+ "bars": false,
+ "stack": false,
+ "percentage": false,
+ "legend": {
+ "show": true,
+ "values": false,
+ "min": false,
+ "max": false,
+ "current": false,
+ "total": false,
+ "avg": false
+ },
+ "nullPointMode": "connected",
+ "steppedLine": false,
+ "tooltip": {
+ "value_type": "cumulative",
+ "shared": true
+ },
+ "timeFrom": "14d",
+ "timeShift": null,
+ "targets": [
+ {
+ "refId": "A",
+ "dsType": "influxdb",
+ "resultFormat": "time_series",
"tags": [
{
"key": "pod_name",
@@ -255,46 +1256,224 @@
"operator": "=~",
"value": "/$SCENARIO$/"
}
- ]
- },
- {
- "alias": "$tag_pod_name - $tag_deploy_scenario - size",
- "dsType": "influxdb",
+ ],
"groupBy": [
{
+ "type": "tag",
"params": [
- "pod_name"
- ],
- "type": "tag"
+ "deploy_scenario"
+ ]
},
{
+ "type": "tag",
+ "params": [
+ "installer"
+ ]
+ }
+ ],
+ "select": [
+ [
+ {
+ "type": "field",
+ "params": [
+ "bandwidth(MBps)"
+ ]
+ }
+ ]
+ ],
+ "measurement": "opnfv_yardstick_tc012",
+ "query": "SELECT \"bandwidth(MBps)\" FROM \"opnfv_yardstick_tc012\" WHERE \"pod_name\" =~ /$POD$/ AND \"deploy_scenario\" =~ /$SCENARIO$/ AND $timeFilter GROUP BY \"deploy_scenario\", \"installer\"",
+ "alias": "$tag_deploy_scenario - mean bw"
+ }
+ ],
+ "aliasColors": {},
+ "seriesOverrides": [],
+ "links": [],
+ "repeat": null,
+ "minSpan": 2,
+ "scopedVars": {
+ "POD": {
+ "text": "huawei-pod2",
+ "value": "huawei\\-pod2",
+ "selected": true
+ }
+ },
+ "repeatIteration": 1468305923981,
+ "repeatPanelId": 17
+ },
+ {
+ "title": "$POD",
+ "error": false,
+ "span": 2,
+ "editable": true,
+ "type": "graph",
+ "isNew": true,
+ "id": 20,
+ "datasource": "yardstick-vtc",
+ "renderer": "flot",
+ "x-axis": true,
+ "y-axis": true,
+ "y_formats": [
+ "short",
+ "short"
+ ],
+ "grid": {
+ "leftLogBase": 1,
+ "leftMax": null,
+ "rightMax": null,
+ "leftMin": null,
+ "rightMin": null,
+ "rightLogBase": 1,
+ "threshold1": null,
+ "threshold2": null,
+ "threshold1Color": "rgba(216, 200, 27, 0.27)",
+ "threshold2Color": "rgba(234, 112, 112, 0.22)"
+ },
+ "lines": true,
+ "fill": 1,
+ "linewidth": 2,
+ "points": false,
+ "pointradius": 5,
+ "bars": false,
+ "stack": false,
+ "percentage": false,
+ "legend": {
+ "show": true,
+ "values": false,
+ "min": false,
+ "max": false,
+ "current": false,
+ "total": false,
+ "avg": false
+ },
+ "nullPointMode": "connected",
+ "steppedLine": false,
+ "tooltip": {
+ "value_type": "cumulative",
+ "shared": true
+ },
+ "timeFrom": "14d",
+ "timeShift": null,
+ "targets": [
+ {
+ "refId": "A",
+ "dsType": "influxdb",
+ "resultFormat": "time_series",
+ "tags": [
+ {
+ "key": "pod_name",
+ "operator": "=~",
+ "value": "/$POD$/"
+ },
+ {
+ "condition": "AND",
+ "key": "deploy_scenario",
+ "operator": "=~",
+ "value": "/$SCENARIO$/"
+ }
+ ],
+ "groupBy": [
+ {
+ "type": "tag",
"params": [
"deploy_scenario"
- ],
- "type": "tag"
+ ]
},
{
+ "type": "tag",
"params": [
- "task_id"
- ],
- "type": "tag"
+ "installer"
+ ]
}
],
- "hide": true,
- "measurement": "opnfv_yardstick_tc012",
- "query": "SELECT \"size(MB)\" FROM \"opnfv_yardstick_tc012\" WHERE \"pod_name\" =~ /$POD$/ AND \"deploy_scenario\" =~ /$SCENARIO$/ AND $timeFilter GROUP BY \"pod_name\", \"deploy_scenario\", \"task_id\"",
- "refId": "B",
- "resultFormat": "time_series",
"select": [
[
{
+ "type": "field",
"params": [
- "size(MB)"
- ],
- "type": "field"
+ "bandwidth(MBps)"
+ ]
}
]
],
+ "measurement": "opnfv_yardstick_tc012",
+ "query": "SELECT \"bandwidth(MBps)\" FROM \"opnfv_yardstick_tc012\" WHERE \"pod_name\" =~ /$POD$/ AND \"deploy_scenario\" =~ /$SCENARIO$/ AND $timeFilter GROUP BY \"deploy_scenario\", \"installer\"",
+ "alias": "$tag_deploy_scenario - mean bw"
+ }
+ ],
+ "aliasColors": {},
+ "seriesOverrides": [],
+ "links": [],
+ "repeat": null,
+ "minSpan": 2,
+ "scopedVars": {
+ "POD": {
+ "text": "intel-pod6",
+ "value": "intel\\-pod6",
+ "selected": true
+ }
+ },
+ "repeatIteration": 1468305923981,
+ "repeatPanelId": 17
+ },
+ {
+ "title": "$POD",
+ "error": false,
+ "span": 2,
+ "editable": true,
+ "type": "graph",
+ "isNew": true,
+ "id": 21,
+ "datasource": "yardstick-vtc",
+ "renderer": "flot",
+ "x-axis": true,
+ "y-axis": true,
+ "y_formats": [
+ "short",
+ "short"
+ ],
+ "grid": {
+ "leftLogBase": 1,
+ "leftMax": null,
+ "rightMax": null,
+ "leftMin": null,
+ "rightMin": null,
+ "rightLogBase": 1,
+ "threshold1": null,
+ "threshold2": null,
+ "threshold1Color": "rgba(216, 200, 27, 0.27)",
+ "threshold2Color": "rgba(234, 112, 112, 0.22)"
+ },
+ "lines": true,
+ "fill": 1,
+ "linewidth": 2,
+ "points": false,
+ "pointradius": 5,
+ "bars": false,
+ "stack": false,
+ "percentage": false,
+ "legend": {
+ "show": true,
+ "values": false,
+ "min": false,
+ "max": false,
+ "current": false,
+ "total": false,
+ "avg": false
+ },
+ "nullPointMode": "connected",
+ "steppedLine": false,
+ "tooltip": {
+ "value_type": "cumulative",
+ "shared": true
+ },
+ "timeFrom": "14d",
+ "timeShift": null,
+ "targets": [
+ {
+ "refId": "A",
+ "dsType": "influxdb",
+ "resultFormat": "time_series",
"tags": [
{
"key": "pod_name",
@@ -307,31 +1486,172 @@
"operator": "=~",
"value": "/$SCENARIO$/"
}
- ]
+ ],
+ "groupBy": [
+ {
+ "type": "tag",
+ "params": [
+ "deploy_scenario"
+ ]
+ },
+ {
+ "type": "tag",
+ "params": [
+ "installer"
+ ]
+ }
+ ],
+ "select": [
+ [
+ {
+ "type": "field",
+ "params": [
+ "bandwidth(MBps)"
+ ]
+ }
+ ]
+ ],
+ "measurement": "opnfv_yardstick_tc012",
+ "query": "SELECT \"bandwidth(MBps)\" FROM \"opnfv_yardstick_tc012\" WHERE \"pod_name\" =~ /$POD$/ AND \"deploy_scenario\" =~ /$SCENARIO$/ AND $timeFilter GROUP BY \"deploy_scenario\", \"installer\"",
+ "alias": "$tag_deploy_scenario - mean bw"
}
],
- "timeFrom": null,
- "timeShift": null,
- "title": "Memory read/write bandwidth",
- "tooltip": {
- "shared": true,
- "value_type": "cumulative"
+ "aliasColors": {},
+ "seriesOverrides": [],
+ "links": [],
+ "repeat": null,
+ "minSpan": 2,
+ "scopedVars": {
+ "POD": {
+ "text": "lf-pod2",
+ "value": "lf\\-pod2",
+ "selected": true
+ }
},
+ "repeatIteration": 1468305923981,
+ "repeatPanelId": 17
+ },
+ {
+ "title": "$POD",
+ "error": false,
+ "span": 2,
+ "editable": true,
"type": "graph",
+ "isNew": true,
+ "id": 32,
+ "datasource": "yardstick-vtc",
+ "renderer": "flot",
"x-axis": true,
"y-axis": true,
"y_formats": [
"short",
"short"
- ]
+ ],
+ "grid": {
+ "leftLogBase": 1,
+ "leftMax": null,
+ "rightMax": null,
+ "leftMin": null,
+ "rightMin": null,
+ "rightLogBase": 1,
+ "threshold1": null,
+ "threshold2": null,
+ "threshold1Color": "rgba(216, 200, 27, 0.27)",
+ "threshold2Color": "rgba(234, 112, 112, 0.22)"
+ },
+ "lines": true,
+ "fill": 1,
+ "linewidth": 2,
+ "points": false,
+ "pointradius": 5,
+ "bars": false,
+ "stack": false,
+ "percentage": false,
+ "legend": {
+ "show": true,
+ "values": false,
+ "min": false,
+ "max": false,
+ "current": false,
+ "total": false,
+ "avg": false
+ },
+ "nullPointMode": "connected",
+ "steppedLine": false,
+ "tooltip": {
+ "value_type": "cumulative",
+ "shared": true
+ },
+ "timeFrom": "14d",
+ "timeShift": null,
+ "targets": [
+ {
+ "refId": "A",
+ "dsType": "influxdb",
+ "resultFormat": "time_series",
+ "tags": [
+ {
+ "key": "pod_name",
+ "operator": "=~",
+ "value": "/$POD$/"
+ },
+ {
+ "condition": "AND",
+ "key": "deploy_scenario",
+ "operator": "=~",
+ "value": "/$SCENARIO$/"
+ }
+ ],
+ "groupBy": [
+ {
+ "type": "tag",
+ "params": [
+ "deploy_scenario"
+ ]
+ },
+ {
+ "type": "tag",
+ "params": [
+ "installer"
+ ]
+ }
+ ],
+ "select": [
+ [
+ {
+ "type": "field",
+ "params": [
+ "bandwidth(MBps)"
+ ]
+ }
+ ]
+ ],
+ "measurement": "opnfv_yardstick_tc012",
+ "query": "SELECT \"bandwidth(MBps)\" FROM \"opnfv_yardstick_tc012\" WHERE \"pod_name\" =~ /$POD$/ AND \"deploy_scenario\" =~ /$SCENARIO$/ AND $timeFilter GROUP BY \"deploy_scenario\", \"installer\"",
+ "alias": "$tag_deploy_scenario - mean bw"
+ }
+ ],
+ "aliasColors": {},
+ "seriesOverrides": [],
+ "links": [],
+ "repeat": null,
+ "minSpan": 2,
+ "scopedVars": {
+ "POD": {
+ "text": "zte-pod1",
+ "value": "zte\\-pod1",
+ "selected": true
+ }
+ },
+ "repeatIteration": 1468305923981,
+ "repeatPanelId": 17
}
- ],
- "title": "Row"
+ ]
}
],
"time": {
- "from": "2016-02-04T18:05:28.864Z",
- "to": "2016-02-23T22:06:14.432Z"
+ "from": "now-7d",
+ "to": "now"
},
"timepicker": {
"now": true,
@@ -365,14 +1685,13 @@
"allFormat": "regex values",
"current": {
"tags": [],
- "text": "ericsson-pod2 + huawei-us-deploy-bare-1 + intel-pod6 + opnfv-jump-1 + opnfv-jump-2 + orange-fr-pod2 + zte-pod1",
+ "text": "ericsson-pod2 + huawei-pod1 + huawei-pod2 + intel-pod6 + lf-pod2 + zte-pod1",
"value": [
"ericsson\\-pod2",
- "huawei\\-us\\-deploy\\-bare\\-1",
+ "huawei\\-pod1",
+ "huawei\\-pod2",
"intel\\-pod6",
- "opnfv\\-jump\\-1",
- "opnfv\\-jump\\-2",
- "orange\\-fr\\-pod2",
+ "lf\\-pod2",
"zte\\-pod1"
]
},
@@ -383,54 +1702,84 @@
"name": "POD",
"options": [
{
- "selected": false,
"text": "All",
- "value": "(elxg482ls42|ericsson\\-pod2|huawei\\-us\\-deploy\\-bare\\-1|intel\\-pod6|opnfv\\-jump\\-1|opnfv\\-jump\\-2|orange\\-fr\\-pod2|zte\\-pod1|unknown)"
+ "value": "(elxg482ls42|ericsson\\-pod1|ericsson\\-pod2|huawei\\-pod1|huawei\\-pod2|huawei\\-us\\-deploy\\-bare\\-1|intel\\-pod5|intel\\-pod6|lf\\-pod1|lf\\-pod2|opnfv\\-jump\\-1|opnfv\\-jump\\-2|orange\\-fr\\-pod2|unknown|zte\\-pod1)",
+ "selected": false
},
{
- "selected": false,
"text": "elxg482ls42",
- "value": "elxg482ls42"
+ "value": "elxg482ls42",
+ "selected": false
+ },
+ {
+ "text": "ericsson-pod1",
+ "value": "ericsson\\-pod1",
+ "selected": false
},
{
- "selected": true,
"text": "ericsson-pod2",
- "value": "ericsson\\-pod2"
+ "value": "ericsson\\-pod2",
+ "selected": true
+ },
+ {
+ "text": "huawei-pod1",
+ "value": "huawei\\-pod1",
+ "selected": true
+ },
+ {
+ "text": "huawei-pod2",
+ "value": "huawei\\-pod2",
+ "selected": true
},
{
- "selected": true,
"text": "huawei-us-deploy-bare-1",
- "value": "huawei\\-us\\-deploy\\-bare\\-1"
+ "value": "huawei\\-us\\-deploy\\-bare\\-1",
+ "selected": false
+ },
+ {
+ "text": "intel-pod5",
+ "value": "intel\\-pod5",
+ "selected": false
},
{
- "selected": true,
"text": "intel-pod6",
- "value": "intel\\-pod6"
+ "value": "intel\\-pod6",
+ "selected": true
+ },
+ {
+ "text": "lf-pod1",
+ "value": "lf\\-pod1",
+ "selected": false
+ },
+ {
+ "text": "lf-pod2",
+ "value": "lf\\-pod2",
+ "selected": true
},
{
- "selected": true,
"text": "opnfv-jump-1",
- "value": "opnfv\\-jump\\-1"
+ "value": "opnfv\\-jump\\-1",
+ "selected": false
},
{
- "selected": true,
"text": "opnfv-jump-2",
- "value": "opnfv\\-jump\\-2"
+ "value": "opnfv\\-jump\\-2",
+ "selected": false
},
{
- "selected": true,
"text": "orange-fr-pod2",
- "value": "orange\\-fr\\-pod2"
+ "value": "orange\\-fr\\-pod2",
+ "selected": false
},
{
- "selected": true,
- "text": "zte-pod1",
- "value": "zte\\-pod1"
+ "text": "unknown",
+ "value": "unknown",
+ "selected": false
},
{
- "selected": false,
- "text": "unknown",
- "value": "unknown"
+ "text": "zte-pod1",
+ "value": "zte\\-pod1",
+ "selected": true
}
],
"query": "SHOW TAG VALUES WITH KEY = \"pod_name\" ",
@@ -440,9 +1789,9 @@
{
"allFormat": "regex values",
"current": {
- "tags": [],
"text": "All",
- "value": "(os\\-nosdn\\-nofeature\\-ha|os\\-nosdn\\-ovs\\-ha|os\\-odl_l2\\-bgpvpn\\-ha|os\\-odl_l2\\-nofeature\\-ha|os\\-odl_l2\\-nofeature\\-noha|os\\-odl_l2\\-sfc\\-ha|os\\-odl_l3\\-nofeature\\-ha|os\\-onos\\-nofeature\\-ha)"
+ "value": "(os\\-no_sdn\\-ovs\\-ha|os\\-nosdn\\-kvm\\-ha|os\\-nosdn\\-nofeature\\-ha|os\\-nosdn\\-nofeature\\-noha|os\\-nosdn\\-ovs\\-ha|os\\-ocl\\-nofeature\\-ha|os\\-odl_l2\\-bgpvpn\\-ha|os\\-odl_l2\\-nofeature\\-ha|os\\-odl_l2\\-nofeature\\-noha|os\\-odl_l2\\-sfc\\-ha|os\\-odl_l3\\-nofeature\\-ha|os\\-onos\\-nofeature\\-ha|os\\-onos\\-sfc\\-ha|os\\-ovs\\-nofeature\\-ha|unknown)",
+ "tags": []
},
"datasource": "yardstick-vtc",
"includeAll": true,
@@ -451,49 +1800,84 @@
"name": "SCENARIO",
"options": [
{
- "selected": true,
"text": "All",
- "value": "(os\\-nosdn\\-nofeature\\-ha|os\\-nosdn\\-ovs\\-ha|os\\-odl_l2\\-bgpvpn\\-ha|os\\-odl_l2\\-nofeature\\-ha|os\\-odl_l2\\-nofeature\\-noha|os\\-odl_l2\\-sfc\\-ha|os\\-odl_l3\\-nofeature\\-ha|os\\-onos\\-nofeature\\-ha)"
+ "value": "(os\\-no_sdn\\-ovs\\-ha|os\\-nosdn\\-kvm\\-ha|os\\-nosdn\\-nofeature\\-ha|os\\-nosdn\\-nofeature\\-noha|os\\-nosdn\\-ovs\\-ha|os\\-ocl\\-nofeature\\-ha|os\\-odl_l2\\-bgpvpn\\-ha|os\\-odl_l2\\-nofeature\\-ha|os\\-odl_l2\\-nofeature\\-noha|os\\-odl_l2\\-sfc\\-ha|os\\-odl_l3\\-nofeature\\-ha|os\\-onos\\-nofeature\\-ha|os\\-onos\\-sfc\\-ha|os\\-ovs\\-nofeature\\-ha|unknown)",
+ "selected": true
+ },
+ {
+ "text": "os-no_sdn-ovs-ha",
+ "value": "os\\-no_sdn\\-ovs\\-ha",
+ "selected": false
+ },
+ {
+ "text": "os-nosdn-kvm-ha",
+ "value": "os\\-nosdn\\-kvm\\-ha",
+ "selected": false
},
{
- "selected": false,
"text": "os-nosdn-nofeature-ha",
- "value": "os\\-nosdn\\-nofeature\\-ha"
+ "value": "os\\-nosdn\\-nofeature\\-ha",
+ "selected": false
+ },
+ {
+ "text": "os-nosdn-nofeature-noha",
+ "value": "os\\-nosdn\\-nofeature\\-noha",
+ "selected": false
},
{
- "selected": false,
"text": "os-nosdn-ovs-ha",
- "value": "os\\-nosdn\\-ovs\\-ha"
+ "value": "os\\-nosdn\\-ovs\\-ha",
+ "selected": false
+ },
+ {
+ "text": "os-ocl-nofeature-ha",
+ "value": "os\\-ocl\\-nofeature\\-ha",
+ "selected": false
},
{
- "selected": false,
"text": "os-odl_l2-bgpvpn-ha",
- "value": "os\\-odl_l2\\-bgpvpn\\-ha"
+ "value": "os\\-odl_l2\\-bgpvpn\\-ha",
+ "selected": false
},
{
- "selected": false,
"text": "os-odl_l2-nofeature-ha",
- "value": "os\\-odl_l2\\-nofeature\\-ha"
+ "value": "os\\-odl_l2\\-nofeature\\-ha",
+ "selected": false
},
{
- "selected": false,
"text": "os-odl_l2-nofeature-noha",
- "value": "os\\-odl_l2\\-nofeature\\-noha"
+ "value": "os\\-odl_l2\\-nofeature\\-noha",
+ "selected": false
},
{
- "selected": false,
"text": "os-odl_l2-sfc-ha",
- "value": "os\\-odl_l2\\-sfc\\-ha"
+ "value": "os\\-odl_l2\\-sfc\\-ha",
+ "selected": false
},
{
- "selected": false,
"text": "os-odl_l3-nofeature-ha",
- "value": "os\\-odl_l3\\-nofeature\\-ha"
+ "value": "os\\-odl_l3\\-nofeature\\-ha",
+ "selected": false
},
{
- "selected": false,
"text": "os-onos-nofeature-ha",
- "value": "os\\-onos\\-nofeature\\-ha"
+ "value": "os\\-onos\\-nofeature\\-ha",
+ "selected": false
+ },
+ {
+ "text": "os-onos-sfc-ha",
+ "value": "os\\-onos\\-sfc\\-ha",
+ "selected": false
+ },
+ {
+ "text": "os-ovs-nofeature-ha",
+ "value": "os\\-ovs\\-nofeature\\-ha",
+ "selected": false
+ },
+ {
+ "text": "unknown",
+ "value": "unknown",
+ "selected": false
}
],
"query": "SHOW TAG VALUES WITH KEY = \"deploy_scenario\" ",
@@ -505,8 +1889,8 @@
"annotations": {
"list": []
},
- "refresh": false,
+ "refresh": "30m",
"schemaVersion": 8,
- "version": 29,
+ "version": 3,
"links": []
}
diff --git a/dashboard/Yardstick-TC014-1456496016450 b/dashboard/Yardstick-TC014-1456496016450
index a06ddb603..fb6badedc 100644
--- a/dashboard/Yardstick-TC014-1456496016450
+++ b/dashboard/Yardstick-TC014-1456496016450
@@ -158,7 +158,7 @@
]
}
],
- "timeFrom": "24h",
+ "timeFrom": "14d",
"timeShift": null,
"title": "Processor Speed - Unixbench single score",
"tooltip": {
@@ -216,9 +216,9 @@
"repeat": "POD",
"scopedVars": {
"POD": {
- "selected": true,
"text": "ericsson-pod2",
- "value": "ericsson\\-pod2"
+ "value": "ericsson\\-pod2",
+ "selected": true
}
},
"scroll": true,
@@ -302,7 +302,7 @@
]
}
],
- "timeFrom": "24h",
+ "timeFrom": "14d",
"title": "$POD",
"transform": "timeseries_to_rows",
"type": "table"
@@ -321,9 +321,9 @@
"repeat": null,
"scopedVars": {
"POD": {
- "selected": true,
- "text": "huawei-us-deploy-bare-1",
- "value": "huawei\\-us\\-deploy\\-bare\\-1"
+ "text": "huawei-pod1",
+ "value": "huawei\\-pod1",
+ "selected": true
}
},
"scroll": true,
@@ -407,11 +407,11 @@
]
}
],
- "timeFrom": "24h",
+ "timeFrom": "14d",
"title": "$POD",
"transform": "timeseries_to_rows",
"type": "table",
- "repeatIteration": 1456496008517,
+ "repeatIteration": 1468309859583,
"repeatPanelId": 6
},
{
@@ -428,9 +428,9 @@
"repeat": null,
"scopedVars": {
"POD": {
- "selected": true,
- "text": "intel-pod6",
- "value": "intel\\-pod6"
+ "text": "huawei-pod2",
+ "value": "huawei\\-pod2",
+ "selected": true
}
},
"scroll": true,
@@ -514,11 +514,11 @@
]
}
],
- "timeFrom": "24h",
+ "timeFrom": "14d",
"title": "$POD",
"transform": "timeseries_to_rows",
"type": "table",
- "repeatIteration": 1456496008517,
+ "repeatIteration": 1468309859583,
"repeatPanelId": 6
},
{
@@ -535,9 +535,9 @@
"repeat": null,
"scopedVars": {
"POD": {
- "selected": true,
- "text": "opnfv-jump-1",
- "value": "opnfv\\-jump\\-1"
+ "text": "intel-pod6",
+ "value": "intel\\-pod6",
+ "selected": true
}
},
"scroll": true,
@@ -621,11 +621,11 @@
]
}
],
- "timeFrom": "24h",
+ "timeFrom": "14d",
"title": "$POD",
"transform": "timeseries_to_rows",
"type": "table",
- "repeatIteration": 1456496008517,
+ "repeatIteration": 1468309859583,
"repeatPanelId": 6
},
{
@@ -642,9 +642,9 @@
"repeat": null,
"scopedVars": {
"POD": {
- "selected": true,
- "text": "opnfv-jump-2",
- "value": "opnfv\\-jump\\-2"
+ "text": "lf-pod2",
+ "value": "lf\\-pod2",
+ "selected": true
}
},
"scroll": true,
@@ -728,11 +728,11 @@
]
}
],
- "timeFrom": "24h",
+ "timeFrom": "14d",
"title": "$POD",
"transform": "timeseries_to_rows",
"type": "table",
- "repeatIteration": 1456496008517,
+ "repeatIteration": 1468309859583,
"repeatPanelId": 6
},
{
@@ -749,116 +749,9 @@
"repeat": null,
"scopedVars": {
"POD": {
- "selected": true,
- "text": "orange-fr-pod2",
- "value": "orange\\-fr\\-pod2"
- }
- },
- "scroll": true,
- "showHeader": true,
- "sort": {
- "col": 0,
- "desc": true
- },
- "span": 2,
- "styles": [
- {
- "dateFormat": "YYYY-MM-DD HH:mm:ss",
- "pattern": "Time",
- "type": "date"
- },
- {
- "colorMode": null,
- "colors": [
- "rgba(245, 54, 54, 0.9)",
- "rgba(237, 129, 40, 0.89)",
- "rgba(50, 172, 45, 0.97)"
- ],
- "decimals": 2,
- "pattern": "deploy_scenario",
- "thresholds": [],
- "type": "string",
- "unit": "short"
- },
- {
- "colorMode": null,
- "colors": [
- "rgba(245, 54, 54, 0.9)",
- "rgba(237, 129, 40, 0.89)",
- "rgba(50, 172, 45, 0.97)"
- ],
- "dateFormat": "YYYY-MM-DD HH:mm:ss",
- "decimals": 2,
- "pattern": "/.*/",
- "thresholds": [],
- "type": "number",
- "unit": "short"
- }
- ],
- "targets": [
- {
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "deploy_scenario"
- ],
- "type": "tag"
- }
- ],
- "measurement": "opnfv_yardstick_tc014",
- "query": "SELECT \"parallel_score\" FROM \"opnfv_yardstick_tc014\" WHERE \"pod_name\" =~ /$POD$/ AND \"deploy_scenario\" =~ /$SCENARIO$/ AND $timeFilter GROUP BY \"deploy_scenario\"",
- "refId": "A",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "parallel_score"
- ],
- "type": "field"
- }
- ]
- ],
- "tags": [
- {
- "key": "pod_name",
- "operator": "=~",
- "value": "/$POD$/"
- },
- {
- "condition": "AND",
- "key": "deploy_scenario",
- "operator": "=~",
- "value": "/$SCENARIO$/"
- }
- ]
- }
- ],
- "timeFrom": "24h",
- "title": "$POD",
- "transform": "timeseries_to_rows",
- "type": "table",
- "repeatIteration": 1456496008517,
- "repeatPanelId": 6
- },
- {
- "columns": [],
- "datasource": "yardstick-vtc",
- "editable": true,
- "error": false,
- "fontSize": "90%",
- "id": 24,
- "isNew": true,
- "links": [],
- "minSpan": 2,
- "pageSize": null,
- "repeat": null,
- "scopedVars": {
- "POD": {
- "selected": true,
"text": "zte-pod1",
- "value": "zte\\-pod1"
+ "value": "zte\\-pod1",
+ "selected": true
}
},
"scroll": true,
@@ -942,11 +835,11 @@
]
}
],
- "timeFrom": "24h",
+ "timeFrom": "14d",
"title": "$POD",
"transform": "timeseries_to_rows",
"type": "table",
- "repeatIteration": 1456496008517,
+ "repeatIteration": 1468309859583,
"repeatPanelId": 6
}
],
@@ -1000,9 +893,9 @@
"repeat": "POD",
"scopedVars": {
"POD": {
- "selected": true,
"text": "ericsson-pod2",
- "value": "ericsson\\-pod2"
+ "value": "ericsson\\-pod2",
+ "selected": true
}
},
"seriesOverrides": [
@@ -1061,7 +954,7 @@
]
}
],
- "timeFrom": "10d",
+ "timeFrom": "14d",
"timeShift": null,
"title": "$POD",
"tooltip": {
@@ -1119,9 +1012,9 @@
"repeat": null,
"scopedVars": {
"POD": {
- "selected": true,
- "text": "huawei-us-deploy-bare-1",
- "value": "huawei\\-us\\-deploy\\-bare\\-1"
+ "text": "huawei-pod1",
+ "value": "huawei\\-pod1",
+ "selected": true
}
},
"seriesOverrides": [
@@ -1180,7 +1073,7 @@
]
}
],
- "timeFrom": "10d",
+ "timeFrom": "14d",
"timeShift": null,
"title": "$POD",
"tooltip": {
@@ -1194,7 +1087,7 @@
"short",
"short"
],
- "repeatIteration": 1456496008517,
+ "repeatIteration": 1468309859583,
"repeatPanelId": 5
},
{
@@ -1240,9 +1133,9 @@
"repeat": null,
"scopedVars": {
"POD": {
- "selected": true,
- "text": "intel-pod6",
- "value": "intel\\-pod6"
+ "text": "huawei-pod2",
+ "value": "huawei\\-pod2",
+ "selected": true
}
},
"seriesOverrides": [
@@ -1301,7 +1194,7 @@
]
}
],
- "timeFrom": "10d",
+ "timeFrom": "14d",
"timeShift": null,
"title": "$POD",
"tooltip": {
@@ -1315,7 +1208,7 @@
"short",
"short"
],
- "repeatIteration": 1456496008517,
+ "repeatIteration": 1468309859583,
"repeatPanelId": 5
},
{
@@ -1361,9 +1254,9 @@
"repeat": null,
"scopedVars": {
"POD": {
- "selected": true,
- "text": "opnfv-jump-1",
- "value": "opnfv\\-jump\\-1"
+ "text": "intel-pod6",
+ "value": "intel\\-pod6",
+ "selected": true
}
},
"seriesOverrides": [
@@ -1422,7 +1315,7 @@
]
}
],
- "timeFrom": "10d",
+ "timeFrom": "14d",
"timeShift": null,
"title": "$POD",
"tooltip": {
@@ -1436,7 +1329,7 @@
"short",
"short"
],
- "repeatIteration": 1456496008517,
+ "repeatIteration": 1468309859583,
"repeatPanelId": 5
},
{
@@ -1482,9 +1375,9 @@
"repeat": null,
"scopedVars": {
"POD": {
- "selected": true,
- "text": "opnfv-jump-2",
- "value": "opnfv\\-jump\\-2"
+ "text": "lf-pod2",
+ "value": "lf\\-pod2",
+ "selected": true
}
},
"seriesOverrides": [
@@ -1543,7 +1436,7 @@
]
}
],
- "timeFrom": "10d",
+ "timeFrom": "14d",
"timeShift": null,
"title": "$POD",
"tooltip": {
@@ -1557,7 +1450,7 @@
"short",
"short"
],
- "repeatIteration": 1456496008517,
+ "repeatIteration": 1468309859583,
"repeatPanelId": 5
},
{
@@ -1603,130 +1496,9 @@
"repeat": null,
"scopedVars": {
"POD": {
- "selected": true,
- "text": "orange-fr-pod2",
- "value": "orange\\-fr\\-pod2"
- }
- },
- "seriesOverrides": [
- {
- "alias": "os-odl_l2-bgpvpn-ha",
- "color": "#7EB26D"
- }
- ],
- "span": 2,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "alias": "$tag_deploy_scenario",
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "deploy_scenario"
- ],
- "type": "tag"
- },
- {
- "params": [
- "pod_name"
- ],
- "type": "tag"
- }
- ],
- "measurement": "opnfv_yardstick_tc014",
- "query": "SELECT \"single_score\" FROM \"opnfv_yardstick_tc014\" WHERE \"pod_name\" =~ /$POD$/ AND \"deploy_scenario\" =~ /$SCENARIO$/ AND $timeFilter GROUP BY \"deploy_scenario\", \"pod_name\"",
- "refId": "A",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "single_score"
- ],
- "type": "field"
- }
- ]
- ],
- "tags": [
- {
- "key": "pod_name",
- "operator": "=~",
- "value": "/$POD$/"
- },
- {
- "condition": "AND",
- "key": "deploy_scenario",
- "operator": "=~",
- "value": "/$SCENARIO$/"
- }
- ]
- }
- ],
- "timeFrom": "10d",
- "timeShift": null,
- "title": "$POD",
- "tooltip": {
- "shared": true,
- "value_type": "cumulative"
- },
- "type": "graph",
- "x-axis": true,
- "y-axis": true,
- "y_formats": [
- "short",
- "short"
- ],
- "repeatIteration": 1456496008517,
- "repeatPanelId": 5
- },
- {
- "aliasColors": {},
- "bars": false,
- "datasource": "yardstick-vtc",
- "editable": true,
- "error": false,
- "fill": 1,
- "grid": {
- "leftLogBase": 1,
- "leftMax": null,
- "leftMin": 0,
- "rightLogBase": 1,
- "rightMax": null,
- "rightMin": null,
- "threshold1": null,
- "threshold1Color": "rgba(216, 200, 27, 0.27)",
- "threshold2": null,
- "threshold2Color": "rgba(234, 112, 112, 0.22)"
- },
- "id": 25,
- "isNew": true,
- "leftYAxisLabel": "score",
- "legend": {
- "avg": false,
- "current": false,
- "max": false,
- "min": false,
- "show": true,
- "total": false,
- "values": false
- },
- "lines": true,
- "linewidth": 2,
- "links": [],
- "minSpan": 2,
- "nullPointMode": "connected",
- "percentage": false,
- "pointradius": 5,
- "points": true,
- "renderer": "flot",
- "repeat": null,
- "scopedVars": {
- "POD": {
- "selected": true,
"text": "zte-pod1",
- "value": "zte\\-pod1"
+ "value": "zte\\-pod1",
+ "selected": true
}
},
"seriesOverrides": [
@@ -1785,7 +1557,7 @@
]
}
],
- "timeFrom": "10d",
+ "timeFrom": "14d",
"timeShift": null,
"title": "$POD",
"tooltip": {
@@ -1799,7 +1571,7 @@
"short",
"short"
],
- "repeatIteration": 1456496008517,
+ "repeatIteration": 1468309859583,
"repeatPanelId": 5
}
],
@@ -1907,7 +1679,7 @@
]
}
],
- "timeFrom": "24h",
+ "timeFrom": "14d",
"timeShift": null,
"title": "Processor Speed - Unixbench parallel score",
"tooltip": {
@@ -1962,14 +1734,13 @@
"allFormat": "regex values",
"current": {
"tags": [],
- "text": "ericsson-pod2 + huawei-us-deploy-bare-1 + intel-pod6 + opnfv-jump-1 + opnfv-jump-2 + orange-fr-pod2 + zte-pod1",
+ "text": "ericsson-pod2 + huawei-pod1 + huawei-pod2 + intel-pod6 + lf-pod2 + zte-pod1",
"value": [
"ericsson\\-pod2",
- "huawei\\-us\\-deploy\\-bare\\-1",
+ "huawei\\-pod1",
+ "huawei\\-pod2",
"intel\\-pod6",
- "opnfv\\-jump\\-1",
- "opnfv\\-jump\\-2",
- "orange\\-fr\\-pod2",
+ "lf\\-pod2",
"zte\\-pod1"
]
},
@@ -1980,54 +1751,84 @@
"name": "POD",
"options": [
{
- "selected": false,
"text": "All",
- "value": "(elxg482ls42|ericsson\\-pod2|huawei\\-us\\-deploy\\-bare\\-1|intel\\-pod6|opnfv\\-jump\\-1|opnfv\\-jump\\-2|orange\\-fr\\-pod2|unknown)"
+ "value": "(elxg482ls42|ericsson\\-pod1|ericsson\\-pod2|huawei\\-pod1|huawei\\-pod2|huawei\\-us\\-deploy\\-bare\\-1|intel\\-pod5|intel\\-pod6|lf\\-pod1|lf\\-pod2|opnfv\\-jump\\-1|opnfv\\-jump\\-2|orange\\-fr\\-pod2|unknown|zte\\-pod1)",
+ "selected": false
},
{
- "selected": false,
"text": "elxg482ls42",
- "value": "elxg482ls42"
+ "value": "elxg482ls42",
+ "selected": false
+ },
+ {
+ "text": "ericsson-pod1",
+ "value": "ericsson\\-pod1",
+ "selected": false
},
{
- "selected": true,
"text": "ericsson-pod2",
- "value": "ericsson\\-pod2"
+ "value": "ericsson\\-pod2",
+ "selected": true
+ },
+ {
+ "text": "huawei-pod1",
+ "value": "huawei\\-pod1",
+ "selected": true
+ },
+ {
+ "text": "huawei-pod2",
+ "value": "huawei\\-pod2",
+ "selected": true
},
{
- "selected": true,
"text": "huawei-us-deploy-bare-1",
- "value": "huawei\\-us\\-deploy\\-bare\\-1"
+ "value": "huawei\\-us\\-deploy\\-bare\\-1",
+ "selected": false
+ },
+ {
+ "text": "intel-pod5",
+ "value": "intel\\-pod5",
+ "selected": false
},
{
- "selected": true,
"text": "intel-pod6",
- "value": "intel\\-pod6"
+ "value": "intel\\-pod6",
+ "selected": true
+ },
+ {
+ "text": "lf-pod1",
+ "value": "lf\\-pod1",
+ "selected": false
+ },
+ {
+ "text": "lf-pod2",
+ "value": "lf\\-pod2",
+ "selected": true
},
{
- "selected": true,
"text": "opnfv-jump-1",
- "value": "opnfv\\-jump\\-1"
+ "value": "opnfv\\-jump\\-1",
+ "selected": false
},
{
- "selected": true,
"text": "opnfv-jump-2",
- "value": "opnfv\\-jump\\-2"
+ "value": "opnfv\\-jump\\-2",
+ "selected": false
},
{
- "selected": true,
"text": "orange-fr-pod2",
- "value": "orange\\-fr\\-pod2"
+ "value": "orange\\-fr\\-pod2",
+ "selected": false
},
{
- "selected": true,
- "text": "zte-pod1",
- "value": "zte\\-pod1"
+ "text": "unknown",
+ "value": "unknown",
+ "selected": false
},
{
- "selected": false,
- "text": "unknown",
- "value": "unknown"
+ "text": "zte-pod1",
+ "value": "zte\\-pod1",
+ "selected": true
}
],
"query": "SHOW TAG VALUES WITH KEY = \"pod_name\"",
@@ -2038,9 +1839,9 @@
{
"allFormat": "regex values",
"current": {
- "tags": [],
"text": "All",
- "value": "(os\\-nosdn\\-nofeature\\-ha|os\\-nosdn\\-ovs\\-ha|os\\-odl_l2\\-bgpvpn\\-ha|os\\-odl_l2\\-nofeature\\-ha|os\\-odl_l2\\-nofeature\\-noha|os\\-odl_l2\\-sfc\\-ha|os\\-odl_l3\\-nofeature\\-ha|os\\-onos\\-nofeature\\-ha)"
+ "value": "(os\\-no_sdn\\-ovs\\-ha|os\\-nosdn\\-kvm\\-ha|os\\-nosdn\\-nofeature\\-ha|os\\-nosdn\\-nofeature\\-noha|os\\-nosdn\\-ovs\\-ha|os\\-ocl\\-nofeature\\-ha|os\\-odl_l2\\-bgpvpn\\-ha|os\\-odl_l2\\-nofeature\\-ha|os\\-odl_l2\\-nofeature\\-noha|os\\-odl_l2\\-sfc\\-ha|os\\-odl_l3\\-nofeature\\-ha|os\\-onos\\-nofeature\\-ha|os\\-onos\\-sfc\\-ha|os\\-ovs\\-nofeature\\-ha|unknown)",
+ "tags": []
},
"datasource": "yardstick-vtc",
"includeAll": true,
@@ -2049,49 +1850,84 @@
"name": "SCENARIO",
"options": [
{
- "selected": true,
"text": "All",
- "value": "(os\\-nosdn\\-nofeature\\-ha|os\\-nosdn\\-ovs\\-ha|os\\-odl_l2\\-bgpvpn\\-ha|os\\-odl_l2\\-nofeature\\-ha|os\\-odl_l2\\-nofeature\\-noha|os\\-odl_l2\\-sfc\\-ha|os\\-odl_l3\\-nofeature\\-ha|os\\-onos\\-nofeature\\-ha)"
+ "value": "(os\\-no_sdn\\-ovs\\-ha|os\\-nosdn\\-kvm\\-ha|os\\-nosdn\\-nofeature\\-ha|os\\-nosdn\\-nofeature\\-noha|os\\-nosdn\\-ovs\\-ha|os\\-ocl\\-nofeature\\-ha|os\\-odl_l2\\-bgpvpn\\-ha|os\\-odl_l2\\-nofeature\\-ha|os\\-odl_l2\\-nofeature\\-noha|os\\-odl_l2\\-sfc\\-ha|os\\-odl_l3\\-nofeature\\-ha|os\\-onos\\-nofeature\\-ha|os\\-onos\\-sfc\\-ha|os\\-ovs\\-nofeature\\-ha|unknown)",
+ "selected": true
+ },
+ {
+ "text": "os-no_sdn-ovs-ha",
+ "value": "os\\-no_sdn\\-ovs\\-ha",
+ "selected": false
+ },
+ {
+ "text": "os-nosdn-kvm-ha",
+ "value": "os\\-nosdn\\-kvm\\-ha",
+ "selected": false
},
{
- "selected": false,
"text": "os-nosdn-nofeature-ha",
- "value": "os\\-nosdn\\-nofeature\\-ha"
+ "value": "os\\-nosdn\\-nofeature\\-ha",
+ "selected": false
+ },
+ {
+ "text": "os-nosdn-nofeature-noha",
+ "value": "os\\-nosdn\\-nofeature\\-noha",
+ "selected": false
},
{
- "selected": false,
"text": "os-nosdn-ovs-ha",
- "value": "os\\-nosdn\\-ovs\\-ha"
+ "value": "os\\-nosdn\\-ovs\\-ha",
+ "selected": false
+ },
+ {
+ "text": "os-ocl-nofeature-ha",
+ "value": "os\\-ocl\\-nofeature\\-ha",
+ "selected": false
},
{
- "selected": false,
"text": "os-odl_l2-bgpvpn-ha",
- "value": "os\\-odl_l2\\-bgpvpn\\-ha"
+ "value": "os\\-odl_l2\\-bgpvpn\\-ha",
+ "selected": false
},
{
- "selected": false,
"text": "os-odl_l2-nofeature-ha",
- "value": "os\\-odl_l2\\-nofeature\\-ha"
+ "value": "os\\-odl_l2\\-nofeature\\-ha",
+ "selected": false
},
{
- "selected": false,
"text": "os-odl_l2-nofeature-noha",
- "value": "os\\-odl_l2\\-nofeature\\-noha"
+ "value": "os\\-odl_l2\\-nofeature\\-noha",
+ "selected": false
},
{
- "selected": false,
"text": "os-odl_l2-sfc-ha",
- "value": "os\\-odl_l2\\-sfc\\-ha"
+ "value": "os\\-odl_l2\\-sfc\\-ha",
+ "selected": false
},
{
- "selected": false,
"text": "os-odl_l3-nofeature-ha",
- "value": "os\\-odl_l3\\-nofeature\\-ha"
+ "value": "os\\-odl_l3\\-nofeature\\-ha",
+ "selected": false
},
{
- "selected": false,
"text": "os-onos-nofeature-ha",
- "value": "os\\-onos\\-nofeature\\-ha"
+ "value": "os\\-onos\\-nofeature\\-ha",
+ "selected": false
+ },
+ {
+ "text": "os-onos-sfc-ha",
+ "value": "os\\-onos\\-sfc\\-ha",
+ "selected": false
+ },
+ {
+ "text": "os-ovs-nofeature-ha",
+ "value": "os\\-ovs\\-nofeature\\-ha",
+ "selected": false
+ },
+ {
+ "text": "unknown",
+ "value": "unknown",
+ "selected": false
}
],
"query": "SHOW TAG VALUES WITH KEY = \"deploy_scenario\"",
@@ -2106,6 +1942,6 @@
},
"refresh": "5m",
"schemaVersion": 8,
- "version": 13,
+ "version": 2,
"links": []
}
diff --git a/dashboard/Yardstick-TC027-1456496061153 b/dashboard/Yardstick-TC027-1456496061153
index e52d08ab7..4531c1552 100644
--- a/dashboard/Yardstick-TC027-1456496061153
+++ b/dashboard/Yardstick-TC027-1456496061153
@@ -103,30 +103,24 @@
"steppedLine": false,
"targets": [
{
- "alias": "$tag_pod_name - $tag_deploy_scenario",
+ "alias": "",
"dsType": "influxdb",
"groupBy": [
{
+ "type": "tag",
"params": [
- "pod_name"
- ],
- "type": "tag"
- },
- {
- "params": [
- "task_id"
- ],
- "type": "tag"
+ "deploy_scenario"
+ ]
},
{
+ "type": "tag",
"params": [
- "deploy_scenario"
- ],
- "type": "tag"
+ "installer"
+ ]
}
],
"measurement": "opnfv_yardstick_tc027",
- "query": "SELECT \"rtt\" FROM \"opnfv_yardstick_tc027\" WHERE \"pod_name\" =~ /$POD$/ AND \"deploy_scenario\" =~ /$SCENARIO$/ AND $timeFilter GROUP BY \"pod_name\", \"task_id\", \"deploy_scenario\"",
+ "query": "SELECT \"rtt\" FROM \"opnfv_yardstick_tc027\" WHERE \"pod_name\" = 'huawei-pod1' AND \"deploy_scenario\" = 'os-nosdn-nofeature-ha' AND $timeFilter GROUP BY \"deploy_scenario\", \"installer\"",
"refId": "A",
"resultFormat": "time_series",
"select": [
@@ -142,19 +136,19 @@
"tags": [
{
"key": "pod_name",
- "operator": "=~",
- "value": "/$POD$/"
+ "operator": "=",
+ "value": "huawei-pod1"
},
{
"condition": "AND",
"key": "deploy_scenario",
- "operator": "=~",
- "value": "/$SCENARIO$/"
+ "operator": "=",
+ "value": "os-nosdn-nofeature-ha"
}
]
}
],
- "timeFrom": "24h",
+ "timeFrom": "14d",
"timeShift": null,
"title": "RTT",
"tooltip": {
@@ -282,8 +276,8 @@
]
}
],
- "timeFrom": "24h",
- "title": "Panel Title",
+ "timeFrom": "14d",
+ "title": "$POD",
"transform": "timeseries_to_rows",
"type": "table"
}
@@ -384,9 +378,9 @@
]
}
],
- "timeFrom": "10d",
+ "timeFrom": "14d",
"timeShift": null,
- "title": "Panel Title",
+ "title": "$POD",
"tooltip": {
"shared": true,
"value_type": "cumulative"
@@ -397,7 +391,8 @@
"y_formats": [
"short",
"short"
- ]
+ ],
+ "links": []
}
],
"title": "New row"
@@ -439,14 +434,8 @@
"allFormat": "regex values",
"current": {
"tags": [],
- "text": "ericsson-pod2 + huawei-us-deploy-bare-1 + opnfv-jump-1 + opnfv-jump-2 + orange-fr-pod2",
- "value": [
- "ericsson\\-pod2",
- "huawei\\-us\\-deploy\\-bare\\-1",
- "opnfv\\-jump\\-1",
- "opnfv\\-jump\\-2",
- "orange\\-fr\\-pod2"
- ]
+ "text": "huawei-pod1",
+ "value": "huawei\\-pod1"
},
"datasource": "yardstick-vtc",
"includeAll": true,
@@ -455,44 +444,84 @@
"name": "POD",
"options": [
{
- "selected": false,
"text": "All",
- "value": "(elxg482ls42|ericsson\\-pod2|huawei\\-us\\-deploy\\-bare\\-1|opnfv\\-jump\\-1|opnfv\\-jump\\-2|orange\\-fr\\-pod2|unknown)"
+ "value": "(elxg482ls42|ericsson\\-pod1|ericsson\\-pod2|huawei\\-pod1|huawei\\-pod2|huawei\\-us\\-deploy\\-bare\\-1|intel\\-pod5|intel\\-pod6|lf\\-pod1|lf\\-pod2|opnfv\\-jump\\-1|opnfv\\-jump\\-2|orange\\-fr\\-pod2|unknown|zte\\-pod1)",
+ "selected": false
},
{
- "selected": false,
"text": "elxg482ls42",
- "value": "elxg482ls42"
+ "value": "elxg482ls42",
+ "selected": false
+ },
+ {
+ "text": "ericsson-pod1",
+ "value": "ericsson\\-pod1",
+ "selected": false
},
{
- "selected": true,
"text": "ericsson-pod2",
- "value": "ericsson\\-pod2"
+ "value": "ericsson\\-pod2",
+ "selected": false
+ },
+ {
+ "text": "huawei-pod1",
+ "value": "huawei\\-pod1",
+ "selected": true
+ },
+ {
+ "text": "huawei-pod2",
+ "value": "huawei\\-pod2",
+ "selected": false
},
{
- "selected": true,
"text": "huawei-us-deploy-bare-1",
- "value": "huawei\\-us\\-deploy\\-bare\\-1"
+ "value": "huawei\\-us\\-deploy\\-bare\\-1",
+ "selected": false
+ },
+ {
+ "text": "intel-pod5",
+ "value": "intel\\-pod5",
+ "selected": false
+ },
+ {
+ "text": "intel-pod6",
+ "value": "intel\\-pod6",
+ "selected": false
+ },
+ {
+ "text": "lf-pod1",
+ "value": "lf\\-pod1",
+ "selected": false
+ },
+ {
+ "text": "lf-pod2",
+ "value": "lf\\-pod2",
+ "selected": false
},
{
- "selected": true,
"text": "opnfv-jump-1",
- "value": "opnfv\\-jump\\-1"
+ "value": "opnfv\\-jump\\-1",
+ "selected": false
},
{
- "selected": true,
"text": "opnfv-jump-2",
- "value": "opnfv\\-jump\\-2"
+ "value": "opnfv\\-jump\\-2",
+ "selected": false
},
{
- "selected": true,
"text": "orange-fr-pod2",
- "value": "orange\\-fr\\-pod2"
+ "value": "orange\\-fr\\-pod2",
+ "selected": false
},
{
- "selected": false,
"text": "unknown",
- "value": "unknown"
+ "value": "unknown",
+ "selected": false
+ },
+ {
+ "text": "zte-pod1",
+ "value": "zte\\-pod1",
+ "selected": false
}
],
"query": "SHOW TAG VALUES WITH KEY = \"pod_name\"",
@@ -502,9 +531,12 @@
{
"allFormat": "regex values",
"current": {
- "tags": [],
- "text": "All",
- "value": "(os\\-nosdn\\-nofeature\\-ha|os\\-nosdn\\-ovs\\-ha|os\\-odl_l2\\-bgpvpn\\-ha|os\\-odl_l2\\-nofeature\\-ha|os\\-odl_l2\\-nofeature\\-noha|os\\-odl_l2\\-sfc\\-ha|os\\-odl_l3\\-nofeature\\-ha|os\\-onos\\-nofeature\\-ha)"
+ "text": "os-nosdn-nofeature-ha + os-nosdn-nofeature-noha",
+ "value": [
+ "os\\-nosdn\\-nofeature\\-ha",
+ "os\\-nosdn\\-nofeature\\-noha"
+ ],
+ "tags": []
},
"datasource": "yardstick-vtc",
"includeAll": true,
@@ -513,49 +545,84 @@
"name": "SCENARIO",
"options": [
{
- "selected": true,
"text": "All",
- "value": "(os\\-nosdn\\-nofeature\\-ha|os\\-nosdn\\-ovs\\-ha|os\\-odl_l2\\-bgpvpn\\-ha|os\\-odl_l2\\-nofeature\\-ha|os\\-odl_l2\\-nofeature\\-noha|os\\-odl_l2\\-sfc\\-ha|os\\-odl_l3\\-nofeature\\-ha|os\\-onos\\-nofeature\\-ha)"
+ "value": "(os\\-no_sdn\\-ovs\\-ha|os\\-nosdn\\-kvm\\-ha|os\\-nosdn\\-nofeature\\-ha|os\\-nosdn\\-nofeature\\-noha|os\\-nosdn\\-ovs\\-ha|os\\-ocl\\-nofeature\\-ha|os\\-odl_l2\\-bgpvpn\\-ha|os\\-odl_l2\\-nofeature\\-ha|os\\-odl_l2\\-nofeature\\-noha|os\\-odl_l2\\-sfc\\-ha|os\\-odl_l3\\-nofeature\\-ha|os\\-onos\\-nofeature\\-ha|os\\-onos\\-sfc\\-ha|os\\-ovs\\-nofeature\\-ha|unknown)",
+ "selected": false
+ },
+ {
+ "text": "os-no_sdn-ovs-ha",
+ "value": "os\\-no_sdn\\-ovs\\-ha",
+ "selected": false
+ },
+ {
+ "text": "os-nosdn-kvm-ha",
+ "value": "os\\-nosdn\\-kvm\\-ha",
+ "selected": false
},
{
- "selected": false,
"text": "os-nosdn-nofeature-ha",
- "value": "os\\-nosdn\\-nofeature\\-ha"
+ "value": "os\\-nosdn\\-nofeature\\-ha",
+ "selected": true
+ },
+ {
+ "text": "os-nosdn-nofeature-noha",
+ "value": "os\\-nosdn\\-nofeature\\-noha",
+ "selected": true
},
{
- "selected": false,
"text": "os-nosdn-ovs-ha",
- "value": "os\\-nosdn\\-ovs\\-ha"
+ "value": "os\\-nosdn\\-ovs\\-ha",
+ "selected": false
+ },
+ {
+ "text": "os-ocl-nofeature-ha",
+ "value": "os\\-ocl\\-nofeature\\-ha",
+ "selected": false
},
{
- "selected": false,
"text": "os-odl_l2-bgpvpn-ha",
- "value": "os\\-odl_l2\\-bgpvpn\\-ha"
+ "value": "os\\-odl_l2\\-bgpvpn\\-ha",
+ "selected": false
},
{
- "selected": false,
"text": "os-odl_l2-nofeature-ha",
- "value": "os\\-odl_l2\\-nofeature\\-ha"
+ "value": "os\\-odl_l2\\-nofeature\\-ha",
+ "selected": false
},
{
- "selected": false,
"text": "os-odl_l2-nofeature-noha",
- "value": "os\\-odl_l2\\-nofeature\\-noha"
+ "value": "os\\-odl_l2\\-nofeature\\-noha",
+ "selected": false
},
{
- "selected": false,
"text": "os-odl_l2-sfc-ha",
- "value": "os\\-odl_l2\\-sfc\\-ha"
+ "value": "os\\-odl_l2\\-sfc\\-ha",
+ "selected": false
},
{
- "selected": false,
"text": "os-odl_l3-nofeature-ha",
- "value": "os\\-odl_l3\\-nofeature\\-ha"
+ "value": "os\\-odl_l3\\-nofeature\\-ha",
+ "selected": false
},
{
- "selected": false,
"text": "os-onos-nofeature-ha",
- "value": "os\\-onos\\-nofeature\\-ha"
+ "value": "os\\-onos\\-nofeature\\-ha",
+ "selected": false
+ },
+ {
+ "text": "os-onos-sfc-ha",
+ "value": "os\\-onos\\-sfc\\-ha",
+ "selected": false
+ },
+ {
+ "text": "os-ovs-nofeature-ha",
+ "value": "os\\-ovs\\-nofeature\\-ha",
+ "selected": false
+ },
+ {
+ "text": "unknown",
+ "value": "unknown",
+ "selected": false
}
],
"query": "SHOW TAG VALUES WITH KEY = \"deploy_scenario\"",
@@ -568,6 +635,6 @@
"list": []
},
"schemaVersion": 8,
- "version": 7,
+ "version": 8,
"links": []
-} \ No newline at end of file
+}
diff --git a/dashboard/Yardstick-TC037-1456496078470 b/dashboard/Yardstick-TC037-1456496078470
index 6072c327b..271b76e29 100644
--- a/dashboard/Yardstick-TC037-1456496078470
+++ b/dashboard/Yardstick-TC037-1456496078470
@@ -139,7 +139,7 @@
]
}
],
- "timeFrom": "10d",
+ "timeFrom": "14d",
"timeShift": null,
"title": "Throughput mean trend",
"tooltip": {
@@ -255,7 +255,7 @@
]
}
],
- "timeFrom": "10d",
+ "timeFrom": "14d",
"timeShift": null,
"title": "RTT mean trend",
"tooltip": {
@@ -674,7 +674,7 @@
]
}
],
- "timeFrom": null,
+ "timeFrom": "14d",
"timeShift": null,
"title": "Round-trip time - ping",
"tooltip": {
@@ -947,7 +947,8 @@
],
"title": "RTT mean - ping",
"transform": "table",
- "type": "table"
+ "type": "table",
+ "timeFrom": "14d"
}
],
"showTitle": false,
@@ -1113,14 +1114,13 @@
"allFormat": "regex values",
"current": {
"tags": [],
- "text": "ericsson-pod2 + huawei-us-deploy-bare-1 + intel-pod6 + opnfv-jump-1 + opnfv-jump-2 + orange-fr-pod2 + zte-pod1",
+ "text": "ericsson-pod2 + huawei-pod1 + huawei-pod2 + intel-pod6 + lf-pod2 + zte-pod1",
"value": [
"ericsson\\-pod2",
- "huawei\\-us\\-deploy\\-bare\\-1",
+ "huawei\\-pod1",
+ "huawei\\-pod2",
"intel\\-pod6",
- "opnfv\\-jump\\-1",
- "opnfv\\-jump\\-2",
- "orange\\-fr\\-pod2",
+ "lf\\-pod2",
"zte\\-pod1"
]
},
@@ -1132,54 +1132,84 @@
"name": "POD",
"options": [
{
- "selected": false,
"text": "All",
- "value": "(elxg482ls42|ericsson\\-pod2|huawei\\-us\\-deploy\\-bare\\-1|intel\\-pod6|opnfv\\-jump\\-1|opnfv\\-jump\\-2|orange\\-fr\\-pod2|zte\\-pod1|unknown)"
+ "value": "(elxg482ls42|ericsson\\-pod1|ericsson\\-pod2|huawei\\-pod1|huawei\\-pod2|huawei\\-us\\-deploy\\-bare\\-1|intel\\-pod5|intel\\-pod6|lf\\-pod1|lf\\-pod2|opnfv\\-jump\\-1|opnfv\\-jump\\-2|orange\\-fr\\-pod2|unknown|zte\\-pod1)",
+ "selected": false
},
{
- "selected": false,
"text": "elxg482ls42",
- "value": "elxg482ls42"
+ "value": "elxg482ls42",
+ "selected": false
+ },
+ {
+ "text": "ericsson-pod1",
+ "value": "ericsson\\-pod1",
+ "selected": false
},
{
- "selected": true,
"text": "ericsson-pod2",
- "value": "ericsson\\-pod2"
+ "value": "ericsson\\-pod2",
+ "selected": true
+ },
+ {
+ "text": "huawei-pod1",
+ "value": "huawei\\-pod1",
+ "selected": true
+ },
+ {
+ "text": "huawei-pod2",
+ "value": "huawei\\-pod2",
+ "selected": true
},
{
- "selected": true,
"text": "huawei-us-deploy-bare-1",
- "value": "huawei\\-us\\-deploy\\-bare\\-1"
+ "value": "huawei\\-us\\-deploy\\-bare\\-1",
+ "selected": false
+ },
+ {
+ "text": "intel-pod5",
+ "value": "intel\\-pod5",
+ "selected": false
},
{
- "selected": true,
"text": "intel-pod6",
- "value": "intel\\-pod6"
+ "value": "intel\\-pod6",
+ "selected": true
+ },
+ {
+ "text": "lf-pod1",
+ "value": "lf\\-pod1",
+ "selected": false
+ },
+ {
+ "text": "lf-pod2",
+ "value": "lf\\-pod2",
+ "selected": true
},
{
- "selected": true,
"text": "opnfv-jump-1",
- "value": "opnfv\\-jump\\-1"
+ "value": "opnfv\\-jump\\-1",
+ "selected": false
},
{
- "selected": true,
"text": "opnfv-jump-2",
- "value": "opnfv\\-jump\\-2"
+ "value": "opnfv\\-jump\\-2",
+ "selected": false
},
{
- "selected": true,
"text": "orange-fr-pod2",
- "value": "orange\\-fr\\-pod2"
+ "value": "orange\\-fr\\-pod2",
+ "selected": false
},
{
- "selected": true,
- "text": "zte-pod1",
- "value": "zte\\-pod1"
+ "text": "unknown",
+ "value": "unknown",
+ "selected": false
},
{
- "selected": false,
- "text": "unknown",
- "value": "unknown"
+ "text": "zte-pod1",
+ "value": "zte\\-pod1",
+ "selected": true
}
],
"query": "SHOW TAG VALUES WITH KEY = \"pod_name\" ",
@@ -1189,9 +1219,9 @@
{
"allFormat": "regex values",
"current": {
- "tags": [],
"text": "All",
- "value": "(os\\-nosdn\\-nofeature\\-ha|os\\-nosdn\\-ovs\\-ha|os\\-odl_l2\\-bgpvpn\\-ha|os\\-odl_l2\\-nofeature\\-ha|os\\-odl_l2\\-nofeature\\-noha|os\\-odl_l2\\-sfc\\-ha|os\\-odl_l3\\-nofeature\\-ha|os\\-onos\\-nofeature\\-ha)"
+ "value": "(os\\-no_sdn\\-ovs\\-ha|os\\-nosdn\\-kvm\\-ha|os\\-nosdn\\-nofeature\\-ha|os\\-nosdn\\-nofeature\\-noha|os\\-nosdn\\-ovs\\-ha|os\\-ocl\\-nofeature\\-ha|os\\-odl_l2\\-bgpvpn\\-ha|os\\-odl_l2\\-nofeature\\-ha|os\\-odl_l2\\-nofeature\\-noha|os\\-odl_l2\\-sfc\\-ha|os\\-odl_l3\\-nofeature\\-ha|os\\-onos\\-nofeature\\-ha|os\\-onos\\-sfc\\-ha|os\\-ovs\\-nofeature\\-ha|unknown)",
+ "tags": []
},
"datasource": "yardstick-vtc",
"includeAll": true,
@@ -1200,49 +1230,84 @@
"name": "SCENARIO",
"options": [
{
- "selected": true,
"text": "All",
- "value": "(os\\-nosdn\\-nofeature\\-ha|os\\-nosdn\\-ovs\\-ha|os\\-odl_l2\\-bgpvpn\\-ha|os\\-odl_l2\\-nofeature\\-ha|os\\-odl_l2\\-nofeature\\-noha|os\\-odl_l2\\-sfc\\-ha|os\\-odl_l3\\-nofeature\\-ha|os\\-onos\\-nofeature\\-ha)"
+ "value": "(os\\-no_sdn\\-ovs\\-ha|os\\-nosdn\\-kvm\\-ha|os\\-nosdn\\-nofeature\\-ha|os\\-nosdn\\-nofeature\\-noha|os\\-nosdn\\-ovs\\-ha|os\\-ocl\\-nofeature\\-ha|os\\-odl_l2\\-bgpvpn\\-ha|os\\-odl_l2\\-nofeature\\-ha|os\\-odl_l2\\-nofeature\\-noha|os\\-odl_l2\\-sfc\\-ha|os\\-odl_l3\\-nofeature\\-ha|os\\-onos\\-nofeature\\-ha|os\\-onos\\-sfc\\-ha|os\\-ovs\\-nofeature\\-ha|unknown)",
+ "selected": true
+ },
+ {
+ "text": "os-no_sdn-ovs-ha",
+ "value": "os\\-no_sdn\\-ovs\\-ha",
+ "selected": false
+ },
+ {
+ "text": "os-nosdn-kvm-ha",
+ "value": "os\\-nosdn\\-kvm\\-ha",
+ "selected": false
},
{
- "selected": false,
"text": "os-nosdn-nofeature-ha",
- "value": "os\\-nosdn\\-nofeature\\-ha"
+ "value": "os\\-nosdn\\-nofeature\\-ha",
+ "selected": false
+ },
+ {
+ "text": "os-nosdn-nofeature-noha",
+ "value": "os\\-nosdn\\-nofeature\\-noha",
+ "selected": false
},
{
- "selected": false,
"text": "os-nosdn-ovs-ha",
- "value": "os\\-nosdn\\-ovs\\-ha"
+ "value": "os\\-nosdn\\-ovs\\-ha",
+ "selected": false
+ },
+ {
+ "text": "os-ocl-nofeature-ha",
+ "value": "os\\-ocl\\-nofeature\\-ha",
+ "selected": false
},
{
- "selected": false,
"text": "os-odl_l2-bgpvpn-ha",
- "value": "os\\-odl_l2\\-bgpvpn\\-ha"
+ "value": "os\\-odl_l2\\-bgpvpn\\-ha",
+ "selected": false
},
{
- "selected": false,
"text": "os-odl_l2-nofeature-ha",
- "value": "os\\-odl_l2\\-nofeature\\-ha"
+ "value": "os\\-odl_l2\\-nofeature\\-ha",
+ "selected": false
},
{
- "selected": false,
"text": "os-odl_l2-nofeature-noha",
- "value": "os\\-odl_l2\\-nofeature\\-noha"
+ "value": "os\\-odl_l2\\-nofeature\\-noha",
+ "selected": false
},
{
- "selected": false,
"text": "os-odl_l2-sfc-ha",
- "value": "os\\-odl_l2\\-sfc\\-ha"
+ "value": "os\\-odl_l2\\-sfc\\-ha",
+ "selected": false
},
{
- "selected": false,
"text": "os-odl_l3-nofeature-ha",
- "value": "os\\-odl_l3\\-nofeature\\-ha"
+ "value": "os\\-odl_l3\\-nofeature\\-ha",
+ "selected": false
},
{
- "selected": false,
"text": "os-onos-nofeature-ha",
- "value": "os\\-onos\\-nofeature\\-ha"
+ "value": "os\\-onos\\-nofeature\\-ha",
+ "selected": false
+ },
+ {
+ "text": "os-onos-sfc-ha",
+ "value": "os\\-onos\\-sfc\\-ha",
+ "selected": false
+ },
+ {
+ "text": "os-ovs-nofeature-ha",
+ "value": "os\\-ovs\\-nofeature\\-ha",
+ "selected": false
+ },
+ {
+ "text": "unknown",
+ "value": "unknown",
+ "selected": false
}
],
"query": "SHOW TAG VALUES WITH KEY = \"deploy_scenario\" ",
@@ -1256,6 +1321,6 @@
},
"refresh": false,
"schemaVersion": 8,
- "version": 85,
+ "version": 3,
"links": []
}
diff --git a/docs/userguide/opnfv_yardstick_tc045.rst b/docs/userguide/opnfv_yardstick_tc045.rst
new file mode 100644
index 000000000..0b0993c34
--- /dev/null
+++ b/docs/userguide/opnfv_yardstick_tc045.rst
@@ -0,0 +1,139 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International
+.. License.
+.. http://creativecommons.org/licenses/by/4.0
+.. (c) OPNFV, Yin Kanglin and others.
+.. 14_ykl@tongji.edu.cn
+
+*************************************
+Yardstick Test Case Description TC045
+*************************************
+
++-----------------------------------------------------------------------------+
+|Control Node Openstack Service High Availability - Neutron Server |
+| |
++--------------+--------------------------------------------------------------+
+|test case id | OPNFV_YARDSTICK_TC045: Control node Openstack service down - |
+| | neutron server |
++--------------+--------------------------------------------------------------+
+|test purpose | This test case will verify the high availability of the |
+| | network service provided by OpenStack (neutro-server) on |
+| | control node. |
+| | |
++--------------+--------------------------------------------------------------+
+|test method | This test case kills the processes of neutron-server service |
+| | on a selected control node, then checks whether the request |
+| | of the related Openstack command is OK and the killed |
+| | processes are recovered. |
+| | |
++--------------+--------------------------------------------------------------+
+|attackers | In this test case, an attacker called "kill-process" is |
+| | needed. This attacker includes three parameters: |
+| | 1) fault_type: which is used for finding the attacker's |
+| | scripts. It should be always set to "kill-process" in this |
+| | test case. |
+| | 2) process_name: which is the process name of the specified |
+| | OpenStack service. If there are multiple processes use the |
+| | same name on the host, all of them are killed by this |
+| | attacker. |
+| | In this case. This parameter should always set to "neutron- |
+| | server". |
+| | 3) host: which is the name of a control node being attacked. |
+| | |
+| | e.g. |
+| | -fault_type: "kill-process" |
+| | -process_name: "neutron-server" |
+| | -host: node1 |
+| | |
++--------------+--------------------------------------------------------------+
+|monitors | In this test case, two kinds of monitor are needed: |
+| | 1. the "openstack-cmd" monitor constantly request a specific |
+| | Openstack command, which needs two parameters: |
+| | 1) monitor_type: which is used for finding the monitor class |
+| | and related scritps. It should be always set to |
+| | "openstack-cmd" for this monitor. |
+| | 2) command_name: which is the command name used for request. |
+| | In this case, the command name should be neutron related |
+| | commands. |
+| | |
+| | 2. the "process" monitor check whether a process is running |
+| | on a specific node, which needs three parameters: |
+| | 1) monitor_type: which used for finding the monitor class and|
+| | related scritps. It should be always set to "process" |
+| | for this monitor. |
+| | 2) process_name: which is the process name for monitor |
+| | 3) host: which is the name of the node runing the process |
+| | |
+| | e.g. |
+| | monitor1: |
+| | -monitor_type: "openstack-cmd" |
+| | -command_name: "neutron agent-list" |
+| | monitor2: |
+| | -monitor_type: "process" |
+| | -process_name: "neutron-server" |
+| | -host: node1 |
+| | |
++--------------+--------------------------------------------------------------+
+|metrics | In this test case, there are two metrics: |
+| | 1)service_outage_time: which indicates the maximum outage |
+| | time (seconds) of the specified Openstack command request. |
+| | 2)process_recover_time: which indicates the maximun time |
+| | (seconds) from the process being killed to recovered |
+| | |
++--------------+--------------------------------------------------------------+
+|test tool | Developed by the project. Please see folder: |
+| | "yardstick/benchmark/scenarios/availability/ha_tools" |
+| | |
++--------------+--------------------------------------------------------------+
+|references | ETSI NFV REL001 |
+| | |
++--------------+--------------------------------------------------------------+
+|configuration | This test case needs two configuration files: |
+| | 1) test case file: opnfv_yardstick_tc045.yaml |
+| | -Attackers: see above "attackers" discription |
+| | -waiting_time: which is the time (seconds) from the process |
+| | being killed to stoping monitors the monitors |
+| | -Monitors: see above "monitors" discription |
+| | -SLA: see above "metrics" discription |
+| | |
+| | 2)POD file: pod.yaml |
+| | The POD configuration should record on pod.yaml first. |
+| | the "host" item in this test case will use the node name in |
+| | the pod.yaml. |
+| | |
++--------------+--------------------------------------------------------------+
+|test sequence | description and expected result |
+| | |
++--------------+--------------------------------------------------------------+
+|step 1 | start monitors: |
+| | each monitor will run with independently process |
+| | |
+| | Result: The monitor info will be collected. |
+| | |
++--------------+--------------------------------------------------------------+
+|step 2 | do attacker: connect the host through SSH, and then execute |
+| | the kill process script with param value specified by |
+| | "process_name" |
+| | |
+| | Result: Process will be killed. |
+| | |
++--------------+--------------------------------------------------------------+
+|step 3 | stop monitors after a period of time specified by |
+| | "waiting_time" |
+| | |
+| | Result: The monitor info will be aggregated. |
+| | |
++--------------+--------------------------------------------------------------+
+|step 4 | verify the SLA |
+| | |
+| | Result: The test case is passed or not. |
+| | |
++--------------+--------------------------------------------------------------+
+|post-action | It is the action when the test cases exist. It will check the|
+| | status of the specified process on the host, and restart the |
+| | process if it is not running for next test cases |
+| | |
++--------------+--------------------------------------------------------------+
+|test verdict | Fails only if SLA is not passed, or if there is a test case |
+| | execution problem. |
+| | |
++--------------+--------------------------------------------------------------+
diff --git a/docs/userguide/opnfv_yardstick_tc046.rst b/docs/userguide/opnfv_yardstick_tc046.rst
new file mode 100644
index 000000000..612676434
--- /dev/null
+++ b/docs/userguide/opnfv_yardstick_tc046.rst
@@ -0,0 +1,138 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International
+.. License.
+.. http://creativecommons.org/licenses/by/4.0
+.. (c) OPNFV, Yin Kanglin and others.
+.. 14_ykl@tongji.edu.cn
+
+*************************************
+Yardstick Test Case Description TC046
+*************************************
+
++-----------------------------------------------------------------------------+
+|Control Node Openstack Service High Availability - Keystone |
+| |
++--------------+--------------------------------------------------------------+
+|test case id | OPNFV_YARDSTICK_TC046: Control node Openstack service down - |
+| | keystone |
++--------------+--------------------------------------------------------------+
+|test purpose | This test case will verify the high availability of the |
+| | user service provided by OpenStack (keystone) on control |
+| | node. |
+| | |
++--------------+--------------------------------------------------------------+
+|test method | This test case kills the processes of keystone service on a |
+| | selected control node, then checks whether the request of |
+| | the related Openstack command is OK and the killed processes |
+| | are recovered. |
+| | |
++--------------+--------------------------------------------------------------+
+|attackers | In this test case, an attacker called "kill-process" is |
+| | needed. This attacker includes three parameters: |
+| | 1) fault_type: which is used for finding the attacker's |
+| | scripts. It should be always set to "kill-process" in this |
+| | test case. |
+| | 2) process_name: which is the process name of the specified |
+| | OpenStack service. If there are multiple processes use the |
+| | same name on the host, all of them are killed by this |
+| | attacker. |
+| | In this case. This parameter should always set to "keystone" |
+| | 3) host: which is the name of a control node being attacked. |
+| | |
+| | e.g. |
+| | -fault_type: "kill-process" |
+| | -process_name: "keystone" |
+| | -host: node1 |
+| | |
++--------------+--------------------------------------------------------------+
+|monitors | In this test case, two kinds of monitor are needed: |
+| | 1. the "openstack-cmd" monitor constantly request a specific |
+| | Openstack command, which needs two parameters: |
+| | 1) monitor_type: which is used for finding the monitor class |
+| | and related scritps. It should be always set to |
+| | "openstack-cmd" for this monitor. |
+| | 2) command_name: which is the command name used for request. |
+| | In this case, the command name should be keystone related |
+| | commands. |
+| | |
+| | 2. the "process" monitor check whether a process is running |
+| | on a specific node, which needs three parameters: |
+| | 1) monitor_type: which used for finding the monitor class and|
+| | related scritps. It should be always set to "process" |
+| | for this monitor. |
+| | 2) process_name: which is the process name for monitor |
+| | 3) host: which is the name of the node runing the process |
+| | |
+| | e.g. |
+| | monitor1: |
+| | -monitor_type: "openstack-cmd" |
+| | -command_name: "keystone user-list" |
+| | monitor2: |
+| | -monitor_type: "process" |
+| | -process_name: "keystone" |
+| | -host: node1 |
+| | |
++--------------+--------------------------------------------------------------+
+|metrics | In this test case, there are two metrics: |
+| | 1)service_outage_time: which indicates the maximum outage |
+| | time (seconds) of the specified Openstack command request. |
+| | 2)process_recover_time: which indicates the maximun time |
+| | (seconds) from the process being killed to recovered |
+| | |
++--------------+--------------------------------------------------------------+
+|test tool | Developed by the project. Please see folder: |
+| | "yardstick/benchmark/scenarios/availability/ha_tools" |
+| | |
++--------------+--------------------------------------------------------------+
+|references | ETSI NFV REL001 |
+| | |
++--------------+--------------------------------------------------------------+
+|configuration | This test case needs two configuration files: |
+| | 1) test case file: opnfv_yardstick_tc046.yaml |
+| | -Attackers: see above "attackers" discription |
+| | -waiting_time: which is the time (seconds) from the process |
+| | being killed to stoping monitors the monitors |
+| | -Monitors: see above "monitors" discription |
+| | -SLA: see above "metrics" discription |
+| | |
+| | 2)POD file: pod.yaml |
+| | The POD configuration should record on pod.yaml first. |
+| | the "host" item in this test case will use the node name in |
+| | the pod.yaml. |
+| | |
++--------------+--------------------------------------------------------------+
+|test sequence | description and expected result |
+| | |
++--------------+--------------------------------------------------------------+
+|step 1 | start monitors: |
+| | each monitor will run with independently process |
+| | |
+| | Result: The monitor info will be collected. |
+| | |
++--------------+--------------------------------------------------------------+
+|step 2 | do attacker: connect the host through SSH, and then execute |
+| | the kill process script with param value specified by |
+| | "process_name" |
+| | |
+| | Result: Process will be killed. |
+| | |
++--------------+--------------------------------------------------------------+
+|step 3 | stop monitors after a period of time specified by |
+| | "waiting_time" |
+| | |
+| | Result: The monitor info will be aggregated. |
+| | |
++--------------+--------------------------------------------------------------+
+|step 4 | verify the SLA |
+| | |
+| | Result: The test case is passed or not. |
+| | |
++--------------+--------------------------------------------------------------+
+|post-action | It is the action when the test cases exist. It will check the|
+| | status of the specified process on the host, and restart the |
+| | process if it is not running for next test cases |
+| | |
++--------------+--------------------------------------------------------------+
+|test verdict | Fails only if SLA is not passed, or if there is a test case |
+| | execution problem. |
+| | |
++--------------+--------------------------------------------------------------+
diff --git a/fuel-plugin/README.md b/fuel-plugin/README.md
index b5a954269..8c00d4b68 100644
--- a/fuel-plugin/README.md
+++ b/fuel-plugin/README.md
@@ -4,16 +4,13 @@ plugin-yardstick
Plugin description
Installs Yardstick on base-os node via a fuel plugin.
-
-To build:
-1) install fuel plugin builder (fpb)
- sudo apt-get install createrepo rpm dpkg-dev
- easy_install pip
- pip install fuel-plugin-builder
-
+1) install vagrant fuel plugin builder (fpb)
+ sudo apt-get install -y ruby-dev rubygems-integration python-pip rpm createrepo dpkg-dev
+ sudo gem install fpm
+ sudo pip install fuel-plugin-builder
2) build plugin
- fpb --build <plugin-name>
- e.g.: fpb --build plugin-yardstick
+ fpb --build <plugin-dir>
+ e.g.: fpb --build yardstick/fuel-plugin
3) copy plugin rpm to fuel master
e.g. scp plugin-yardstick-0.1-0.1.0-1.noarch.rpm <user>@<server-name>:~/
@@ -33,4 +30,7 @@ To build:
8) run
Once deployed, SSH to deployed node. Find IP of yardstick node.
SSH to yardstick node, Activate yardstick:
- source yardstick_env/bin/activate
+ source /var/lib/yardstick.openrc
+ source /var/lib/yardstick/bin/activate
+ export EXTERNAL_NETWORK="admin_floating_net"
+ yardstick task start /opt/yardstick/fuel-plugin/fuel_ping.yaml
diff --git a/fuel-plugin/deployment_scripts/install.sh b/fuel-plugin/deployment_scripts/install.sh
index f0bb3e366..84ef96c48 100755
--- a/fuel-plugin/deployment_scripts/install.sh
+++ b/fuel-plugin/deployment_scripts/install.sh
@@ -3,24 +3,24 @@
set -eux
HOST=$1
-INSTALL_HOME=/opt/yardstick
-rm -rf $INSTALL_HOME; mkdir -p $INSTALL_HOME
+BIN_HOME=/opt/yardstick
+VAR_HOME=/var/lib/yardstick
+rm -rf $BIN_HOME; mkdir -p $BIN_HOME
+rm -rf $VAR_HOME; mkdir -p $VAR_HOME
-cd $INSTALL_HOME
-
-sudo apt-get install -y python-virtualenv python-dev python-pip libffi-dev libssl-dev libxml2-dev libxslt1-dev
-pip install --user virtualenv
-pip install --upgrade virtualenv
+sudo apt-get install -y python-dev python-pip libffi-dev libssl-dev libxml2-dev libxslt1-dev
+pip install virtualenv
# create python virtual env
-virtualenv $INSTALL_HOME/yardstick_venv
-# source $INSTALL_HOME/yardstick_venv/bin/activate
+virtualenv $VAR_HOME
+
+export PS1="yardstick"
+source $VAR_HOME/bin/activate
easy_install -U setuptools
-mkdir bin
-cd $INSTALL_HOME/bin
+cd $BIN_HOME
curl http://$HOST:8080/plugins/fuel-plugin-yardstick-0.9/repositories/ubuntu/yardstick.tar.gz | tar xzvf -
-pip install -r tests/ci/requirements.txt
+python setup.py develop
diff --git a/fuel-plugin/deployment_scripts/puppet/manifests/yardstick-install.pp b/fuel-plugin/deployment_scripts/puppet/manifests/yardstick-install.pp
index 6547cb452..7993524d0 100644
--- a/fuel-plugin/deployment_scripts/puppet/manifests/yardstick-install.pp
+++ b/fuel-plugin/deployment_scripts/puppet/manifests/yardstick-install.pp
@@ -7,6 +7,7 @@ $admin_user = $access_hash['user']
$admin_password = $access_hash['password']
$region = hiera('region', 'RegionOne')
+$auth_api_version = 'v2.0'
$service_endpoint = hiera('service_endpoint', $management_vip)
$ssl_hash = hiera_hash('use_ssl', {})
$internal_auth_protocol = get_ssl_property($ssl_hash, {}, 'keystone', 'internal', 'protocol', 'http')
@@ -19,7 +20,7 @@ exec { "install yardstick":
path => "/usr/local/bin:/usr/bin:/usr/sbin:/bin:/sbin";
}
-osnailyfacter::credentials_file { '/opt/yardstick/openrc':
+osnailyfacter::credentials_file { '/var/lib/yardstick.openrc':
admin_user => $admin_user,
admin_password => $admin_password,
admin_tenant => $admin_tenant,
diff --git a/fuel-plugin/fuel_ping.yaml b/fuel-plugin/fuel_ping.yaml
new file mode 100644
index 000000000..e367e98d1
--- /dev/null
+++ b/fuel-plugin/fuel_ping.yaml
@@ -0,0 +1,43 @@
+---
+# Sample file copied from sampls/ping.yaml
+# context part is modified according to fuel default env
+
+schema: "yardstick:task:0.1"
+
+scenarios:
+-
+ type: Ping
+ options:
+ packetsize: 200
+ host: athena.demo
+ target: ares.demo
+
+ runner:
+ type: Duration
+ duration: 60
+ interval: 1
+
+ sla:
+ max_rtt: 10
+ action: monitor
+
+context:
+ name: demo
+ image: TestVM
+ flavor: m1.micro
+ user: cirros
+
+ placement_groups:
+ pgrp1:
+ policy: "availability"
+
+ servers:
+ athena:
+ floating_ip: true
+ placement: "pgrp1"
+ ares:
+ placement: "pgrp1"
+
+ networks:
+ test:
+ cidr: '192.169.111.0/24'
diff --git a/fuel-plugin/vagrant/build_fuel_plugin.sh b/fuel-plugin/vagrant/build_fuel_plugin.sh
index b016176fb..ddf2d6a6e 100755
--- a/fuel-plugin/vagrant/build_fuel_plugin.sh
+++ b/fuel-plugin/vagrant/build_fuel_plugin.sh
@@ -1,14 +1,8 @@
#!/bin/bash
sudo apt-get update -y
-sudo apt-get install createrepo rpm dpkg-dev -y
-sudo apt-get install python-setuptools -y
-sudo apt-get install python-pip -y
-sudo easy_install pip
-sudo pip install fuel-plugin-builder
-sudo apt-get install ruby -y
-sudo gem install rubygems-update
+sudo apt-get install -y ruby-dev rubygems-integration python-pip rpm createrepo dpkg-dev
sudo gem install fpm
-sudo apt-get install docker.io -y
+sudo pip install fuel-plugin-builder
cp -r /yardstick /home/vagrant
cd /home/vagrant/yardstick/fuel-plugin;
rm -rf vagrant/.vagrant
diff --git a/samples/cpuload.yaml b/samples/cpuload.yaml
index 7ca528278..21d068205 100644
--- a/samples/cpuload.yaml
+++ b/samples/cpuload.yaml
@@ -10,7 +10,8 @@ scenarios:
-
type: CPUload
options:
- interval: 2
+ interval: 1
+ count: 1
host: apollo.demo
runner:
type: Duration
diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc044.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc044.yaml
new file mode 100644
index 000000000..d7406832d
--- /dev/null
+++ b/tests/opnfv/test_cases/opnfv_yardstick_tc044.yaml
@@ -0,0 +1,87 @@
+---
+# Yardstick TC044 config file
+# Measure memory usage statistics, network throughput, latency and packet loss.
+# Different amounts of flows are tested with, from 2 up to 1001000.
+# All tests are run 2 times each. First 2 times with the least
+# amount of ports, then 2 times with the next amount of ports,
+# and so on until all packet sizes have been run with.
+#
+# During the measurements memory usage statistics and network latency are
+# recorded/measured using sar and ping, respectively.
+
+schema: "yardstick:task:0.1"
+
+scenarios:
+-
+ type: MEMORYload
+ run_in_background: true
+
+ options:
+ interval: 1
+ count: 1
+
+ host: demeter.yardstick-TC044
+-
+ type: MEMORYload
+ run_in_background: true
+
+ options:
+ interval: 1
+ count: 1
+
+ host: poseidon.yardstick-TC044
+-
+ type: Ping
+ run_in_background: true
+
+ options:
+ packetsize: 100
+
+ host: demeter.yardstick-TC044
+ target: poseidon.yardstick-TC044
+
+ sla:
+ max_rtt: 10
+ action: monitor
+{% for num_ports in [1, 10, 50, 100, 300, 500, 750, 1000] %}
+-
+ type: Pktgen
+ options:
+ packetsize: 64
+ number_of_ports: {{num_ports}}
+ duration: 20
+
+ host: demeter.yardstick-TC044
+ target: poseidon.yardstick-TC044
+
+ runner:
+ type: Iteration
+ iterations: 2
+ interval: 1
+
+ sla:
+ max_ppm: 1000
+ action: monitor
+{% endfor %}
+
+context:
+ name: yardstick-TC044
+ image: yardstick-trusty-server
+ flavor: yardstick-flavor
+ user: ubuntu
+
+ placement_groups:
+ pgrp1:
+ policy: "availability"
+
+ servers:
+ demeter:
+ floating_ip: true
+ placement: "pgrp1"
+ poseidon:
+ floating_ip: true
+ placement: "pgrp1"
+
+ networks:
+ test:
+ cidr: '10.0.1.0/24'
diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc045.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc045.yaml
new file mode 100644
index 000000000..812d53dd8
--- /dev/null
+++ b/tests/opnfv/test_cases/opnfv_yardstick_tc045.yaml
@@ -0,0 +1,43 @@
+---
+# Test case for TC045 :Control node Openstack service down - neutron server
+
+schema: "yardstick:task:0.1"
+
+scenarios:
+-
+ type: ServiceHA
+ options:
+ attackers:
+ - fault_type: "kill-process"
+ process_name: "neutron-server"
+ host: node1
+
+ monitors:
+ - monitor_type: "openstack-cmd"
+ command_name: "neutron agent-list"
+ monitor_time: 10
+ sla:
+ max_outage_time: 5
+ - monitor_type: "process"
+ process_name: "neutron-server"
+ host: node1
+ monitor_time: 10
+ sla:
+ max_recover_time: 5
+
+ nodes:
+ node1: node1.LF
+
+ runner:
+ type: Duration
+ duration: 1
+ sla:
+ outage_time: 5
+ action: monitor
+
+
+context:
+ type: Node
+ name: LF
+ file: /root/yardstick/etc/yardstick/nodes/fuel_virtual/pod.yaml
+
diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc046.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc046.yaml
new file mode 100644
index 000000000..867553d21
--- /dev/null
+++ b/tests/opnfv/test_cases/opnfv_yardstick_tc046.yaml
@@ -0,0 +1,42 @@
+---
+# Test case for TC046 :Control node Openstack service down - keystone
+
+schema: "yardstick:task:0.1"
+
+scenarios:
+-
+ type: ServiceHA
+ options:
+ attackers:
+ - fault_type: "kill-process"
+ process_name: "keystone"
+ host: node1
+
+ monitors:
+ - monitor_type: "openstack-cmd"
+ command_name: "keystone user-list"
+ monitor_time: 10
+ sla:
+ max_outage_time: 5
+ - monitor_type: "process"
+ process_name: "keystone"
+ host: node1
+ monitor_time: 10
+ sla:
+ max_recover_time: 5
+
+ nodes:
+ node1: node1.LF
+
+ runner:
+ type: Duration
+ duration: 1
+ sla:
+ outage_time: 5
+ action: monitor
+
+
+context:
+ type: Node
+ name: LF
+ file: /root/yardstick/etc/yardstick/nodes/fuel_virtual/pod.yaml
diff --git a/tests/opnfv/test_suites/fuel_test_suite.yaml b/tests/opnfv/test_suites/fuel_test_suite.yaml
new file mode 100644
index 000000000..016bf0953
--- /dev/null
+++ b/tests/opnfv/test_suites/fuel_test_suite.yaml
@@ -0,0 +1,12 @@
+---
+# Fuel integration test task suite
+
+schema: "yardstick:suite:0.1"
+
+name: "fuel_test_suite"
+test_cases_dir: "samples/"
+test_cases:
+-
+ file_name: ping.yaml
+-
+ file_name: iperf3.yaml
diff --git a/tests/opnfv/test_suites/opnfv_huawei-pod2_daily.yaml b/tests/opnfv/test_suites/opnfv_huawei-pod2_daily.yaml
index 3a3bfccc0..435d21c9e 100644
--- a/tests/opnfv/test_suites/opnfv_huawei-pod2_daily.yaml
+++ b/tests/opnfv/test_suites/opnfv_huawei-pod2_daily.yaml
@@ -19,6 +19,4 @@ test_cases:
-
file_name: opnfv_yardstick_tc014.yaml
-
- file_name: opnfv_yardstick_tc027.yaml
--
file_name: opnfv_yardstick_tc037.yaml
diff --git a/tests/unit/benchmark/scenarios/availability/test_baseresultchecker.py b/tests/unit/benchmark/scenarios/availability/test_baseresultchecker.py
new file mode 100644
index 000000000..9972d6b1b
--- /dev/null
+++ b/tests/unit/benchmark/scenarios/availability/test_baseresultchecker.py
@@ -0,0 +1,88 @@
+#!/usr/bin/env python
+
+##############################################################################
+# Copyright (c) 2016 Huan Li and others
+# lihuansse@tongji.edu.cn
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+# Unittest for yardstick.benchmark.scenarios.availability.result_checker
+# .baseresultchecker
+
+import mock
+import unittest
+
+from yardstick.benchmark.scenarios.availability.result_checker import baseresultchecker
+
+
+@mock.patch('yardstick.benchmark.scenarios.availability.result_checker'
+ '.baseresultchecker.BaseResultChecker')
+class ResultCheckerMgrTestCase(unittest.TestCase):
+
+ def setUp(self):
+ config = {
+ 'checker_type': 'general-result-checker',
+ 'key' : 'process-checker'
+ }
+
+ self.checker_configs = []
+ self.checker_configs.append(config)
+
+ def test_ResultCheckerMgr_setup_successful(self, mock_basechacer):
+ mgr_ins = baseresultchecker.ResultCheckerMgr()
+ mgr_ins.init_ResultChecker(self.checker_configs, None)
+ mgr_ins.verify()
+
+ def test_getitem_succeessful(self, mock_basechacer):
+ mgr_ins = baseresultchecker.ResultCheckerMgr()
+ mgr_ins.init_ResultChecker(self.checker_configs, None)
+ checker_ins = mgr_ins["process-checker"]
+
+ def test_getitem_fail(self, mock_basechacer):
+ mgr_ins = baseresultchecker.ResultCheckerMgr()
+ mgr_ins.init_ResultChecker(self.checker_configs, None)
+ with self.assertRaises(KeyError):
+ checker_ins = mgr_ins["checker-not-exist"]
+
+
+class BaseResultCheckerTestCase(unittest.TestCase):
+
+ class ResultCheckeSimple(baseresultchecker.BaseResultChecker):
+ __result_checker__type__ = "ResultCheckeForTest"
+ def setup(self):
+ self.success = False
+
+ def verify(self):
+ return self.success
+
+ def setUp(self):
+ self.checker_cfg = {
+ 'checker_type': 'general-result-checker',
+ 'key' : 'process-checker'
+ }
+
+ def test_baseresultchecker_setup_verify_successful(self):
+ ins = baseresultchecker.BaseResultChecker(self.checker_cfg, None)
+ ins.setup()
+ ins.verify()
+
+ def test_baseresultchecker_verfiy_pass(self):
+ ins = baseresultchecker.BaseResultChecker(self.checker_cfg, None)
+ ins.setup()
+ ins.actualResult = True
+ ins.expectedResult = True
+ ins.verify()
+
+ def test_get_script_fullpath(self):
+ ins = baseresultchecker.BaseResultChecker(self.checker_cfg, None)
+ path = ins.get_script_fullpath("test.bash")
+
+ def test_get_resultchecker_cls_successful(self):
+ baseresultchecker.BaseResultChecker.get_resultchecker_cls("ResultCheckeForTest")
+
+ def test_get_resultchecker_cls_fail(self):
+ with self.assertRaises(RuntimeError):
+ baseresultchecker.BaseResultChecker.get_resultchecker_cls("ResultCheckeNotExist")
diff --git a/tests/unit/benchmark/scenarios/availability/test_director.py b/tests/unit/benchmark/scenarios/availability/test_director.py
new file mode 100644
index 000000000..887ddd631
--- /dev/null
+++ b/tests/unit/benchmark/scenarios/availability/test_director.py
@@ -0,0 +1,103 @@
+#!/usr/bin/env python
+
+##############################################################################
+# Copyright (c) 2016 Huan Li and others
+# lihuansse@tongji.edu.cn
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+# Unittest for yardstick.benchmark.scenarios.availability.director
+
+import mock
+import unittest
+
+from yardstick.benchmark.scenarios.availability.director import Director
+from yardstick.benchmark.scenarios.availability import actionplayers
+
+
+@mock.patch('yardstick.benchmark.scenarios.availability.director.basemonitor')
+@mock.patch('yardstick.benchmark.scenarios.availability.director.baseattacker')
+@mock.patch('yardstick.benchmark.scenarios.availability.director.baseoperation')
+@mock.patch('yardstick.benchmark.scenarios.availability.director.baseresultchecker')
+class DirectorTestCase(unittest.TestCase):
+
+ def setUp(self):
+ self.scenario_cfg = {
+ 'type': "general_scenario",
+ 'options': {
+ 'attackers':[{
+ 'fault_type': "general-attacker",
+ 'key': "kill-process"}],
+ 'monitors': [{
+ 'monitor_type': "general-monitor",
+ 'key': "service_status"}],
+ 'operations': [{
+ 'operation_type': 'general-operation',
+ 'key' : 'service_status'}],
+ 'resultCheckers': [{
+ 'checker_type': 'general-result-checker',
+ 'key' : 'process-checker',}],
+ 'steps':[
+ {
+ 'actionKey': "service_status",
+ 'actionType': "operation",
+ 'index': 1},
+ {
+ 'actionKey': "kill-process",
+ 'actionType': "attacker",
+ 'index': 2},
+ {
+ 'actionKey': "process-checker",
+ 'actionType': "resultchecker",
+ 'index': 3},
+ {
+ 'actionKey': "service_status",
+ 'actionType': "monitor",
+ 'index': 4},
+ ]
+ }
+ }
+ host = {
+ "ip": "10.20.0.5",
+ "user": "root",
+ "key_filename": "/root/.ssh/id_rsa"
+ }
+ self.ctx = {"nodes": {"node1": host}}
+
+ def test_director_all_successful(self, mock_checer, mock_opertion, mock_attacker, mock_monitor):
+ ins = Director(self.scenario_cfg, self.ctx)
+ opertion_action = ins.createActionPlayer("operation", "service_status")
+ attacker_action = ins.createActionPlayer("attacker", "kill-process")
+ checker_action = ins.createActionPlayer("resultchecker", "process-checker")
+ monitor_action = ins.createActionPlayer("monitor", "service_status")
+
+ opertion_rollback = ins.createActionRollbacker("operation", "service_status")
+ attacker_rollback = ins.createActionRollbacker("attacker", "kill-process")
+ ins.executionSteps.append(opertion_rollback)
+ ins.executionSteps.append(attacker_rollback)
+
+ opertion_action.action()
+ attacker_action.action()
+ checker_action.action()
+ monitor_action.action()
+
+ attacker_rollback.rollback()
+ opertion_rollback.rollback()
+
+ ins.stopMonitors()
+ ins.verify()
+ ins.knockoff()
+
+ def test_director_get_wrong_item(self, mock_checer, mock_opertion, mock_attacker, mock_monitor):
+ ins = Director(self.scenario_cfg, self.ctx)
+ ins.createActionPlayer("wrong_type", "wrong_key")
+ ins.createActionRollbacker("wrong_type", "wrong_key")
+
+
+
+
+
+
diff --git a/tests/unit/benchmark/scenarios/availability/test_result_checker_general.py b/tests/unit/benchmark/scenarios/availability/test_result_checker_general.py
new file mode 100644
index 000000000..88a9b9d20
--- /dev/null
+++ b/tests/unit/benchmark/scenarios/availability/test_result_checker_general.py
@@ -0,0 +1,113 @@
+#!/usr/bin/env python
+
+##############################################################################
+# Copyright (c) 2016 Huan Li and others
+# lihuansse@tongji.edu.cn
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+# Unittest for yardstick.benchmark.scenarios.availability.result_checker
+# .result_checker_general
+
+import mock
+import unittest
+import copy
+
+from yardstick.benchmark.scenarios.availability.result_checker import result_checker_general
+
+
+@mock.patch('yardstick.benchmark.scenarios.availability.result_checker.'
+ 'result_checker_general.ssh')
+@mock.patch('yardstick.benchmark.scenarios.availability.result_checker.'
+ 'result_checker_general.open')
+class GeneralResultCheckerTestCase(unittest.TestCase):
+
+ def setUp(self):
+ host = {
+ "ip": "10.20.0.5",
+ "user": "root",
+ "key_filename": "/root/.ssh/id_rsa"
+ }
+ self.context = {"node1": host}
+ self.checker_cfg = {
+ 'parameter': {'processname': 'process'},
+ 'checker_type': 'general-result-checker',
+ 'condition' : 'eq',
+ 'expectedValue' : 1,
+ 'key' : 'process-checker',
+ 'host': 'node1'
+ }
+
+ def test__result_checker_eq(self, mock_open, mock_ssh):
+ ins = result_checker_general.GeneralResultChecker(self.checker_cfg,
+ self.context);
+ mock_ssh.SSH().execute.return_value = (0, "1", '')
+ ins.setup()
+ self.assertTrue(ins.verify())
+
+ def test__result_checker_gt(self, mock_open, mock_ssh):
+ config = copy.deepcopy(self.checker_cfg)
+ config['condition'] = 'gt'
+ ins = result_checker_general.GeneralResultChecker(config,
+ self.context);
+ mock_ssh.SSH().execute.return_value = (0, "2", '')
+ ins.setup()
+ self.assertTrue(ins.verify())
+
+ def test__result_checker_gt_eq(self, mock_open, mock_ssh):
+ config = copy.deepcopy(self.checker_cfg)
+ config['condition'] = 'gt_eq'
+ ins = result_checker_general.GeneralResultChecker(config,
+ self.context);
+ mock_ssh.SSH().execute.return_value = (0, "1", '')
+ ins.setup()
+ self.assertTrue(ins.verify())
+
+ def test__result_checker_lt(self, mock_open, mock_ssh):
+ config = copy.deepcopy(self.checker_cfg)
+ config['condition'] = 'lt'
+ ins = result_checker_general.GeneralResultChecker(config,
+ self.context);
+ mock_ssh.SSH().execute.return_value = (0, "0", '')
+ ins.setup()
+ self.assertTrue(ins.verify())
+
+ def test__result_checker_lt_eq(self, mock_open, mock_ssh):
+ config = copy.deepcopy(self.checker_cfg)
+ config['condition'] = 'lt_eq'
+ ins = result_checker_general.GeneralResultChecker(config,
+ self.context);
+ mock_ssh.SSH().execute.return_value = (0, "1", '')
+ ins.setup()
+ self.assertTrue(ins.verify())
+
+ def test__result_checker_in(self, mock_open, mock_ssh):
+ config = copy.deepcopy(self.checker_cfg)
+ config['condition'] = 'in'
+ config['expectedValue'] = "value"
+ ins = result_checker_general.GeneralResultChecker(config,
+ self.context);
+ mock_ssh.SSH().execute.return_value = (0, "value return", '')
+ ins.setup()
+ self.assertTrue(ins.verify())
+
+ def test__result_checker_wrong(self, mock_open, mock_ssh):
+ config = copy.deepcopy(self.checker_cfg)
+ config['condition'] = 'wrong'
+ ins = result_checker_general.GeneralResultChecker(config,
+ self.context);
+ mock_ssh.SSH().execute.return_value = (0, "1", '')
+ ins.setup()
+ self.assertFalse(ins.verify())
+
+ def test__result_checker_fail(self, mock_open, mock_ssh):
+ config = copy.deepcopy(self.checker_cfg)
+ config.pop('parameter')
+ ins = result_checker_general.GeneralResultChecker(config,
+ self.context);
+ mock_ssh.SSH().execute.return_value = (1, "fail", '')
+ ins.setup()
+ ins.verify() \ No newline at end of file
diff --git a/tests/unit/benchmark/scenarios/availability/test_scenario_general.py b/tests/unit/benchmark/scenarios/availability/test_scenario_general.py
new file mode 100644
index 000000000..c17edea45
--- /dev/null
+++ b/tests/unit/benchmark/scenarios/availability/test_scenario_general.py
@@ -0,0 +1,65 @@
+#!/usr/bin/env python
+
+##############################################################################
+# Copyright (c) 2016 Huan Li and others
+# lihuansse@tongji.edu.cn
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+# Unittest for yardstick.benchmark.scenarios.availability.scenario_general
+
+import mock
+import unittest
+
+from yardstick.benchmark.scenarios.availability.scenario_general import ScenarioGeneral
+
+
+@mock.patch('yardstick.benchmark.scenarios.availability.scenario_general.Director')
+class ScenarioGeneralTestCase(unittest.TestCase):
+
+ def setUp(self):
+ self.scenario_cfg = {
+ 'type': "general_scenario",
+ 'options': {
+ 'attackers':[{
+ 'fault_type': "general-attacker",
+ 'key': "kill-process"}],
+ 'monitors': [{
+ 'monitor_type': "general-monitor",
+ 'key': "service_status"}],
+ 'steps':[
+ {
+ 'actionKey': "kill-process",
+ 'actionType': "attacker",
+ 'index': 1},
+ {
+ 'actionKey': "service_status",
+ 'actionType': "monitor",
+ 'index': 2}]
+ }
+ }
+
+ def test_scenario_general_all_successful(self, mock_director):
+ ins = ScenarioGeneral(self.scenario_cfg, None)
+ ins.setup()
+ ins.run(None)
+ ins.teardown()
+
+ def test_scenario_general_exception(self, mock_director):
+ ins = ScenarioGeneral(self.scenario_cfg, None)
+ mock_obj = mock.Mock()
+ mock_obj.createActionPlayer.side_effect = KeyError('Wrong')
+ ins.director = mock_obj
+ ins.run(None)
+ ins.teardown()
+
+ def test_scenario_general_case_fail(self, mock_director):
+ ins = ScenarioGeneral(self.scenario_cfg, None)
+ mock_obj = mock.Mock()
+ mock_obj.verify.return_value = False
+ ins.director = mock_obj
+ ins.run(None)
+ ins.teardown() \ No newline at end of file
diff --git a/tests/unit/benchmark/scenarios/compute/cpuload_sample_output1.txt b/tests/unit/benchmark/scenarios/compute/cpuload_sample_output1.txt
index b1723ae17..723e64bcb 100644
--- a/tests/unit/benchmark/scenarios/compute/cpuload_sample_output1.txt
+++ b/tests/unit/benchmark/scenarios/compute/cpuload_sample_output1.txt
@@ -1,5 +1,9 @@
-Linux 3.13.0-68-generic (elxg482ls42) 11/30/2015 _x86_64_ (12 CPU)
+Linux 3.13.0-68-generic (elxg482ls42) 11/30/2015 _x86_64_ (1 CPU)
-04:53:04 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
-04:53:04 PM all 11.31 0.03 1.19 0.18 0.00 0.01 0.00 5.51 0.00 81.77
-04:53:04 PM 0 20.03 0.03 1.36 0.33 0.00 0.06 0.00 6.62 0.00 71.56
+04:34:26 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
+04:34:26 PM all 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
+04:34:26 PM 0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
+
+Average: CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
+Average: all 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
+Average: 0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
diff --git a/tests/unit/benchmark/scenarios/compute/test_cpuload.py b/tests/unit/benchmark/scenarios/compute/test_cpuload.py
index 22c4419b2..77f2a02d8 100644
--- a/tests/unit/benchmark/scenarios/compute/test_cpuload.py
+++ b/tests/unit/benchmark/scenarios/compute/test_cpuload.py
@@ -33,7 +33,14 @@ class CPULoadTestCase(unittest.TestCase):
self.result = {}
def test_setup_mpstat_installed(self, mock_ssh):
- l = cpuload.CPULoad({}, self.ctx)
+ options = {
+ "interval": 1,
+ "count": 1
+ }
+
+ args = {'options': options}
+
+ l = cpuload.CPULoad(args, self.ctx)
mock_ssh.SSH().execute.return_value = (0, '', '')
l.setup()
@@ -42,7 +49,14 @@ class CPULoadTestCase(unittest.TestCase):
self.assertTrue(l.has_mpstat)
def test_setup_mpstat_not_installed(self, mock_ssh):
- l = cpuload.CPULoad({}, self.ctx)
+ options = {
+ "interval": 1,
+ "count": 1
+ }
+
+ args = {'options': options}
+
+ l = cpuload.CPULoad(args, self.ctx)
mock_ssh.SSH().execute.return_value = (127, '', '')
l.setup()
@@ -51,7 +65,14 @@ class CPULoadTestCase(unittest.TestCase):
self.assertFalse(l.has_mpstat)
def test_execute_command_success(self, mock_ssh):
- l = cpuload.CPULoad({}, self.ctx)
+ options = {
+ "interval": 1,
+ "count": 1
+ }
+
+ args = {'options': options}
+
+ l = cpuload.CPULoad(args, self.ctx)
mock_ssh.SSH().execute.return_value = (0, '', '')
l.setup()
@@ -61,7 +82,14 @@ class CPULoadTestCase(unittest.TestCase):
self.assertEqual(result, expected_result)
def test_execute_command_failed(self, mock_ssh):
- l = cpuload.CPULoad({}, self.ctx)
+ options = {
+ "interval": 1,
+ "count": 1
+ }
+
+ args = {'options': options}
+
+ l = cpuload.CPULoad(args, self.ctx)
mock_ssh.SSH().execute.return_value = (0, '', '')
l.setup()
@@ -70,7 +98,14 @@ class CPULoadTestCase(unittest.TestCase):
"cat /proc/loadavg")
def test_get_loadavg(self, mock_ssh):
- l = cpuload.CPULoad({}, self.ctx)
+ options = {
+ "interval": 1,
+ "count": 1
+ }
+
+ args = {'options': options}
+
+ l = cpuload.CPULoad(args, self.ctx)
mock_ssh.SSH().execute.return_value = (0, '', '')
l.setup()
@@ -82,44 +117,63 @@ class CPULoadTestCase(unittest.TestCase):
self.assertEqual(result, expected_result)
def test_get_cpu_usage_mpstat(self, mock_ssh):
- l = cpuload.CPULoad({}, self.ctx)
+ options = {
+ "interval": 1,
+ "count": 1
+ }
+
+ args = {'options': options}
+
+ l = cpuload.CPULoad(args, self.ctx)
mock_ssh.SSH().execute.return_value = (0, '', '')
l.setup()
- l.interval = 0
+ l.interval = 1
+ l.count = 1
mpstat_output = self._read_file("cpuload_sample_output1.txt")
mock_ssh.SSH().execute.return_value = (0, mpstat_output, '')
result = l._get_cpu_usage_mpstat()
expected_result = \
- {'mpstat':
- {'cpu':
- {'%gnice': '0.00',
- '%guest': '5.51',
- '%idle': '81.77',
- '%iowait': '0.18',
- '%irq': '0.00',
- '%nice': '0.03',
- '%soft': '0.01',
- '%steal': '0.00',
- '%sys': '1.19',
- '%usr': '11.31'},
- 'cpu0':
- {'%gnice': '0.00',
- '%guest': '6.62',
- '%idle': '71.56',
- '%iowait': '0.33',
- '%irq': '0.00',
- '%nice': '0.03',
- '%soft': '0.06',
- '%steal': '0.00',
- '%sys': '1.36',
- '%usr': '20.03'}}}
+ {"mpstat_minimum":
+ {"cpu": {"%steal": "0.00", "%usr": "0.00", "%gnice": "0.00",
+ "%idle": "100.00", "%guest": "0.00",
+ "%iowait": "0.00", "%sys": "0.00", "%soft": "0.00",
+ "%irq": "0.00", "%nice": "0.00"},
+ "cpu0": {"%steal": "0.00", "%usr": "0.00", "%gnice": "0.00",
+ "%idle": "100.00", "%guest": "0.00",
+ "%iowait": "0.00", "%sys": "0.00", "%soft": "0.00",
+ "%irq": "0.00", "%nice": "0.00"}},
+ "mpstat_average":
+ {"cpu": {"%steal": "0.00", "%usr": "0.00", "%gnice": "0.00",
+ "%idle": "100.00", "%guest": "0.00",
+ "%iowait": "0.00", "%sys": "0.00", "%soft": "0.00",
+ "%irq": "0.00", "%nice": "0.00"},
+ "cpu0": {"%steal": "0.00", "%usr": "0.00", "%gnice": "0.00",
+ "%idle": "100.00", "%guest": "0.00",
+ "%iowait": "0.00", "%sys": "0.00", "%soft": "0.00",
+ "%irq": "0.00", "%nice": "0.00"}},
+ "mpstat_maximun":
+ {"cpu": {"%steal": "0.00", "%usr": "0.00", "%gnice": "0.00",
+ "%idle": "100.00", "%guest": "0.00",
+ "%iowait": "0.00", "%sys": "0.00", "%soft": "0.00",
+ "%irq": "0.00", "%nice": "0.00"},
+ "cpu0": {"%steal": "0.00", "%usr": "0.00", "%gnice": "0.00",
+ "%idle": "100.00", "%guest": "0.00",
+ "%iowait": "0.00", "%sys": "0.00", "%soft": "0.00",
+ "%irq": "0.00", "%nice": "0.00"}}}
self.assertDictEqual(result, expected_result)
def test_get_cpu_usage(self, mock_ssh):
- l = cpuload.CPULoad({}, self.ctx)
+ options = {
+ "interval": 0,
+ "count": 1
+ }
+
+ args = {'options': options}
+
+ l = cpuload.CPULoad(args, self.ctx)
mock_ssh.SSH().execute.return_value = (0, '', '')
l.setup()
@@ -154,45 +208,16 @@ class CPULoadTestCase(unittest.TestCase):
'%nice': '0.03'}}}
self.assertDictEqual(result, expected_result)
+
+ def test_run_proc_stat(self, mock_ssh):
+ options = {
+ "interval": 1,
+ "count": 1
+ }
- def test_run_mpstat(self, mock_ssh):
- l = cpuload.CPULoad({'options': {'interval': 1}}, self.ctx)
- mock_ssh.SSH().execute.return_value = (0, '', '')
-
- mpstat_output = self._read_file("cpuload_sample_output1.txt")
- mock_ssh.SSH().execute.side_effect = \
- [(0, '', ''), (0, '1.50 1.45 1.51 3/813 14322', ''), (0, mpstat_output, '')]
-
- l.run(self.result)
-
- expected_result = {
- 'loadavg': ['1.50', '1.45', '1.51', '3/813', '14322'],
- 'mpstat':
- {'cpu': {'%gnice': '0.00',
- '%guest': '5.51',
- '%idle': '81.77',
- '%iowait': '0.18',
- '%irq': '0.00',
- '%nice': '0.03',
- '%soft': '0.01',
- '%steal': '0.00',
- '%sys': '1.19',
- '%usr': '11.31'},
- 'cpu0': {'%gnice': '0.00',
- '%guest': '6.62',
- '%idle': '71.56',
- '%iowait': '0.33',
- '%irq': '0.00',
- '%nice': '0.03',
- '%soft': '0.06',
- '%steal': '0.00',
- '%sys': '1.36',
- '%usr': '20.03'}}}
-
- self.assertDictEqual(self.result, expected_result)
+ args = {'options': options}
- def test_run_proc_stat(self, mock_ssh):
- l = cpuload.CPULoad({}, self.ctx)
+ l = cpuload.CPULoad(args, self.ctx)
mock_ssh.SSH().execute.return_value = (1, '', '')
l.setup()
diff --git a/tests/unit/benchmark/scenarios/networking/test_vsperf.py b/tests/unit/benchmark/scenarios/networking/test_vsperf.py
new file mode 100644
index 000000000..cb5c09ab3
--- /dev/null
+++ b/tests/unit/benchmark/scenarios/networking/test_vsperf.py
@@ -0,0 +1,132 @@
+#!/usr/bin/env python
+
+# Copyright 2016 Intel Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Unittest for yardstick.benchmark.scenarios.networking.vsperf.Vsperf
+
+import mock
+import unittest
+import os
+import subprocess
+
+from yardstick.benchmark.scenarios.networking import vsperf
+
+
+@mock.patch('yardstick.benchmark.scenarios.networking.vsperf.subprocess')
+@mock.patch('yardstick.benchmark.scenarios.networking.vsperf.ssh')
+@mock.patch("__builtin__.open", return_value=None)
+class VsperfTestCase(unittest.TestCase):
+
+ def setUp(self):
+ self.ctx = {
+ "host": {
+ "ip": "10.229.47.137",
+ "user": "ubuntu",
+ "password": "ubuntu",
+ },
+ }
+ self.args = {
+ 'options': {
+ 'testname': 'rfc2544_p2p_continuous',
+ 'traffic_type': 'continuous',
+ 'pkt_sizes': '64',
+ 'bidirectional': 'True',
+ 'iload': 100,
+ 'duration': 29,
+ 'trafficgen_port1': 'eth1',
+ 'trafficgen_port2': 'eth3',
+ 'external_bridge': 'br-ex',
+ 'conf-file': 'vsperf-yardstick.conf',
+ 'setup-script': 'setup_yardstick.sh',
+ },
+ 'sla': {
+ 'metrics': 'throughput_rx_fps',
+ 'throughput_rx_fps': 500000,
+ 'action': 'monitor',
+ }
+ }
+
+ def test_vsperf_setup(self, mock_open, mock_ssh, mock_subprocess):
+ p = vsperf.Vsperf(self.args, self.ctx)
+ mock_ssh.SSH().execute.return_value = (0, '', '')
+ mock_subprocess.call().execute.return_value = None
+
+ p.setup()
+ self.assertIsNotNone(p.client)
+ self.assertEqual(p.setup_done, True)
+
+ def test_vsperf_teardown(self, mock_open, mock_ssh, mock_subprocess):
+ p = vsperf.Vsperf(self.args, self.ctx)
+
+ # setup() specific mocks
+ mock_ssh.SSH().execute.return_value = (0, '', '')
+ mock_subprocess.call().execute.return_value = None
+
+ p.setup()
+ self.assertIsNotNone(p.client)
+ self.assertEqual(p.setup_done, True)
+
+ p.teardown()
+ self.assertEqual(p.setup_done, False)
+
+ def test_vsperf_run_ok(self, mock_open, mock_ssh, mock_subprocess):
+ p = vsperf.Vsperf(self.args, self.ctx)
+
+ # setup() specific mocks
+ mock_ssh.SSH().execute.return_value = (0, '', '')
+ mock_subprocess.call().execute.return_value = None
+
+ # run() specific mocks
+ mock_ssh.SSH().execute.return_value = (0, '', '')
+ mock_ssh.SSH().execute.return_value = (0, 'throughput_rx_fps\r\n14797660.000\r\n', '')
+
+ result = {}
+ p.run(result)
+
+ self.assertEqual(result['throughput_rx_fps'], '14797660.000')
+
+ def test_vsperf_run_falied_vsperf_execution(self, mock_open, mock_ssh, mock_subprocess):
+ p = vsperf.Vsperf(self.args, self.ctx)
+
+ # setup() specific mocks
+ mock_ssh.SSH().execute.return_value = (0, '', '')
+ mock_subprocess.call().execute.return_value = None
+
+ # run() specific mocks
+ mock_ssh.SSH().execute.return_value = (1, '', '')
+
+ result = {}
+ self.assertRaises(RuntimeError, p.run, result)
+
+ def test_vsperf_run_falied_csv_report(self, mock_open, mock_ssh, mock_subprocess):
+ p = vsperf.Vsperf(self.args, self.ctx)
+
+ # setup() specific mocks
+ mock_ssh.SSH().execute.return_value = (0, '', '')
+ mock_subprocess.call().execute.return_value = None
+
+ # run() specific mocks
+ mock_ssh.SSH().execute.return_value = (0, '', '')
+ mock_ssh.SSH().execute.return_value = (1, '', '')
+
+ result = {}
+ self.assertRaises(RuntimeError, p.run, result)
+
+
+def main():
+ unittest.main()
+
+if __name__ == '__main__':
+ main()
diff --git a/yardstick/benchmark/scenarios/availability/__init__.py b/yardstick/benchmark/scenarios/availability/__init__.py
index e69de29bb..c3b3aae30 100755
--- a/yardstick/benchmark/scenarios/availability/__init__.py
+++ b/yardstick/benchmark/scenarios/availability/__init__.py
@@ -0,0 +1,24 @@
+##############################################################################
+# Copyright (c) 2016 Juan Qiu and others
+# juan_ qiu@tongji.edu.cn
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+
+class ActionType:
+ ATTACKER = "attacker"
+ MONITOR = "monitor"
+ RESULTCHECKER = "resultchecker"
+ OPERATION = "operation"
+
+
+class Condition:
+ EQUAL = "eq"
+ GREATERTHAN = "gt"
+ GREATERTHANEQUAL = "gt_eq"
+ LESSTHAN = "lt"
+ LESSTHANEQUAL = "lt_eq"
+ IN = "in"
diff --git a/yardstick/benchmark/scenarios/availability/actionplayers.py b/yardstick/benchmark/scenarios/availability/actionplayers.py
new file mode 100644
index 000000000..420626413
--- /dev/null
+++ b/yardstick/benchmark/scenarios/availability/actionplayers.py
@@ -0,0 +1,54 @@
+##############################################################################
+# Copyright (c) 2016 Juan Qiu and others
+# juan_ qiu@tongji.edu.cn
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+
+class ActionPlayer(object):
+ """
+ Abstract the action functions of attacker,
+ monitor, operation, resultchecker and mybe others in future
+ """
+
+ def action(self):
+ pass
+
+
+class AttackerPlayer(ActionPlayer):
+
+ def __init__(self, attacker):
+ self.underlyingAttacker = attacker
+
+ def action(self):
+ self.underlyingAttacker.inject_fault()
+
+
+class OperationPlayer(ActionPlayer):
+
+ def __init__(self, operation):
+ self.underlyingOperation = operation
+
+ def action(self):
+ self.underlyingOperation.run()
+
+
+class MonitorPlayer(ActionPlayer):
+
+ def __init__(self, monitor):
+ self.underlyingmonitor = monitor
+
+ def action(self):
+ self.underlyingmonitor.start_monitor()
+
+
+class ResultCheckerPlayer(ActionPlayer):
+
+ def __init__(self, resultChecker):
+ self.underlyingresultChecker = resultChecker
+
+ def action(self):
+ self.underlyingresultChecker.verify()
diff --git a/yardstick/benchmark/scenarios/availability/actionrollbackers.py b/yardstick/benchmark/scenarios/availability/actionrollbackers.py
new file mode 100644
index 000000000..4b732a10c
--- /dev/null
+++ b/yardstick/benchmark/scenarios/availability/actionrollbackers.py
@@ -0,0 +1,45 @@
+##############################################################################
+# Copyright (c) 2016 Juan Qiu and others
+# juan_ qiu@tongji.edu.cn
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+import logging
+
+LOG = logging.getLogger(__name__)
+
+
+class ActionRollbacker(object):
+ """
+ Abstract the rollback functions of attacker, operation
+ and mybe others in future
+ """
+
+ def rollback(self):
+ pass
+
+
+class AttackerRollbacker(ActionRollbacker):
+
+ def __init__(self, attacker):
+ self.underlyingAttacker = attacker
+
+ def rollback(self):
+ LOG.debug(
+ "\033[93m recovering attacker %s \033[0m"
+ % (self.underlyingAttacker.key))
+ self.underlyingAttacker.recover()
+
+
+class OperationRollbacker(ActionRollbacker):
+
+ def __init__(self, operation):
+ self.underlyingOperation = operation
+
+ def rollback(self):
+ LOG.debug(
+ "\033[93m rollback operation %s \033[0m"
+ % (self.underlyingOperation.key))
+ self.underlyingOperation.rollback()
diff --git a/yardstick/benchmark/scenarios/availability/director.py b/yardstick/benchmark/scenarios/availability/director.py
new file mode 100644
index 000000000..267933dd0
--- /dev/null
+++ b/yardstick/benchmark/scenarios/availability/director.py
@@ -0,0 +1,106 @@
+##############################################################################
+# Copyright (c) 2016 Juan Qiu and others
+# juan_ qiu@tongji.edu.cn
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+import logging
+
+from yardstick.benchmark.scenarios.availability.monitor import basemonitor
+from yardstick.benchmark.scenarios.availability.attacker import baseattacker
+from yardstick.benchmark.scenarios.availability.operation import baseoperation
+from yardstick.benchmark.scenarios.availability.result_checker \
+ import baseresultchecker
+from yardstick.benchmark.scenarios.availability import ActionType
+from yardstick.benchmark.scenarios.availability import actionplayers
+from yardstick.benchmark.scenarios.availability import actionrollbackers
+
+LOG = logging.getLogger(__name__)
+
+
+class Director(object):
+ """
+ Director is used to direct a test scenaio
+ including the creation of action players, test result verification
+ and rollback of actions.
+ """
+
+ def __init__(self, scenario_cfg, context_cfg):
+
+ # A stack store Rollbacker that will be called after
+ # all actionplayers finish.
+ self.executionSteps = []
+
+ self.scenario_cfg = scenario_cfg
+ self.context_cfg = context_cfg
+ nodes = self.context_cfg.get("nodes", None)
+ # setup attackers
+ if "attackers" in self.scenario_cfg["options"]:
+ LOG.debug("start init attackers...")
+ attacker_cfgs = self.scenario_cfg["options"]["attackers"]
+ self.attackerMgr = baseattacker.AttackerMgr()
+ self.attackerMgr.init_attackers(attacker_cfgs, nodes)
+ # setup monitors
+ if "monitors" in self.scenario_cfg["options"]:
+ LOG.debug("start init monitors...")
+ monitor_cfgs = self.scenario_cfg["options"]["monitors"]
+ self.monitorMgr = basemonitor.MonitorMgr()
+ self.monitorMgr.init_monitors(monitor_cfgs, nodes)
+ # setup operations
+ if "operations" in self.scenario_cfg["options"]:
+ LOG.debug("start init operations...")
+ operation_cfgs = self.scenario_cfg["options"]["operations"]
+ self.operationMgr = baseoperation.OperationMgr()
+ self.operationMgr.init_operations(operation_cfgs, nodes)
+ # setup result checker
+ if "resultCheckers" in self.scenario_cfg["options"]:
+ LOG.debug("start init resultCheckers...")
+ result_check_cfgs = self.scenario_cfg["options"]["resultCheckers"]
+ self.resultCheckerMgr = baseresultchecker.ResultCheckerMgr()
+ self.resultCheckerMgr.init_ResultChecker(result_check_cfgs, nodes)
+
+ def createActionPlayer(self, type, key):
+ LOG.debug(
+ "the type of current action is %s, the key is %s" % (type, key))
+ if type == ActionType.ATTACKER:
+ return actionplayers.AttackerPlayer(self.attackerMgr[key])
+ if type == ActionType.MONITOR:
+ return actionplayers.MonitorPlayer(self.monitorMgr[key])
+ if type == ActionType.RESULTCHECKER:
+ return actionplayers.ResultCheckerPlayer(
+ self.resultCheckerMgr[key])
+ if type == ActionType.OPERATION:
+ return actionplayers.OperationPlayer(self.operationMgr[key])
+ LOG.debug("something run when creatactionplayer")
+
+ def createActionRollbacker(self, type, key):
+ LOG.debug(
+ "the type of current action is %s, the key is %s" % (type, key))
+ if type == ActionType.ATTACKER:
+ return actionrollbackers.AttackerRollbacker(self.attackerMgr[key])
+ if type == ActionType.OPERATION:
+ return actionrollbackers.OperationRollbacker(
+ self.operationMgr[key])
+ LOG.debug("no rollbacker created for %s" % (key))
+
+ def verify(self):
+ result = True
+ if hasattr(self, 'monitorMgr'):
+ result &= self.monitorMgr.verify_SLA()
+ if hasattr(self, 'resultCheckerMgr'):
+ result &= self.resultCheckerMgr.verify()
+ if result:
+ LOG.debug("monitors are passed")
+ return result
+
+ def stopMonitors(self):
+ if "monitors" in self.scenario_cfg["options"]:
+ self.monitorMgr.wait_monitors()
+
+ def knockoff(self):
+ LOG.debug("knock off ....")
+ while self.executionSteps:
+ singleStep = self.executionSteps.pop()
+ singleStep.rollback()
diff --git a/yardstick/benchmark/scenarios/availability/result_checker/__init__.py b/yardstick/benchmark/scenarios/availability/result_checker/__init__.py
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/yardstick/benchmark/scenarios/availability/result_checker/__init__.py
diff --git a/yardstick/benchmark/scenarios/availability/result_checker/baseresultchecker.py b/yardstick/benchmark/scenarios/availability/result_checker/baseresultchecker.py
new file mode 100644
index 000000000..1bdb9f2c2
--- /dev/null
+++ b/yardstick/benchmark/scenarios/availability/result_checker/baseresultchecker.py
@@ -0,0 +1,88 @@
+##############################################################################
+# Copyright (c) 2016 Juan Qiu and others
+# juan_ qiu@tongji.edu.cn
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+import pkg_resources
+import yaml
+import logging
+import os
+
+import yardstick.common.utils as utils
+
+LOG = logging.getLogger(__name__)
+
+resultchecker_conf_path = pkg_resources.resource_filename(
+ "yardstick.benchmark.scenarios.availability",
+ "result_checker_conf.yaml")
+
+
+class ResultCheckerMgr(object):
+
+ def __init__(self):
+ self._result_checker_list = []
+
+ def init_ResultChecker(self, resultchecker_cfgs, context):
+ LOG.debug("resultcheckerMgr confg: %s" % resultchecker_cfgs)
+
+ for cfg in resultchecker_cfgs:
+ resultchecker_type = cfg['checker_type']
+ resultchecker_cls = BaseResultChecker.get_resultchecker_cls(
+ resultchecker_type)
+ resultchecker_ins = resultchecker_cls(cfg, context)
+ resultchecker_ins.key = cfg['key']
+ resultchecker_ins.setup()
+ self._result_checker_list.append(resultchecker_ins)
+
+ def __getitem__(self, item):
+ for obj in self._result_checker_list:
+ if(obj.key == item):
+ return obj
+ raise KeyError("No such result checker instance of key - %s" % item)
+
+ def verify(self):
+ result = True
+ for obj in self._result_checker_list:
+ result &= obj.success
+ return result
+
+
+class BaseResultChecker(object):
+
+ resultchecker_cfgs = {}
+
+ def __init__(self, config, context):
+ if not BaseResultChecker.resultchecker_cfgs:
+ with open(resultchecker_conf_path) as stream:
+ BaseResultChecker.resultchecker_cfgs = yaml.load(stream)
+ self.actualResult = object()
+ self.expectedResult = object()
+ self.success = False
+
+ self._config = config
+ self._context = context
+ self.setup_done = False
+
+ @staticmethod
+ def get_resultchecker_cls(type):
+ '''return resultchecker instance of specified type'''
+ resultchecker_type = type
+ for checker_cls in utils.itersubclasses(BaseResultChecker):
+ if resultchecker_type == checker_cls.__result_checker__type__:
+ return checker_cls
+ raise RuntimeError("No such runner_type %s" % resultchecker_type)
+
+ def get_script_fullpath(self, path):
+ base_path = os.path.dirname(resultchecker_conf_path)
+ return os.path.join(base_path, path)
+
+ def setup(self):
+ pass
+
+ def verify(self):
+ if(self.actualResult == self.expectedResult):
+ self.success = True
+ return self.success
diff --git a/yardstick/benchmark/scenarios/availability/result_checker/result_checker_general.py b/yardstick/benchmark/scenarios/availability/result_checker/result_checker_general.py
new file mode 100644
index 000000000..70bf9aea6
--- /dev/null
+++ b/yardstick/benchmark/scenarios/availability/result_checker/result_checker_general.py
@@ -0,0 +1,107 @@
+##############################################################################
+# Copyright (c) 2016 Juan Qiu and others
+# juan_ qiu@tongji.edu.cn
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+import logging
+
+from baseresultchecker import BaseResultChecker
+from yardstick.benchmark.scenarios.availability import Condition
+import yardstick.ssh as ssh
+from yardstick.benchmark.scenarios.availability.util import buildshellparams
+
+LOG = logging.getLogger(__name__)
+
+
+class GeneralResultChecker(BaseResultChecker):
+
+ __result_checker__type__ = "general-result-checker"
+
+ def setup(self):
+ LOG.debug("config:%s context:%s" % (self._config, self._context))
+ host = self._context.get(self._config['host'], None)
+ ip = host.get("ip", None)
+ user = host.get("user", "root")
+ key_filename = host.get("key_filename", "~/.ssh/id_rsa")
+
+ self.connection = ssh.SSH(user, ip, key_filename=key_filename)
+ self.connection.wait(timeout=600)
+ LOG.debug("ssh host success!")
+
+ self.key = self._config['key']
+ self.type = self._config['checker_type']
+ self.condition = self._config['condition']
+ self.expectedResult = self._config['expectedValue']
+ self.actualResult = object()
+
+ self.key = self._config['key']
+ if "parameter" in self._config:
+ parameter = self._config['parameter']
+ str = buildshellparams(parameter)
+ l = list(item for item in parameter.values())
+ self.shell_cmd = str.format(*l)
+
+ self.resultchecker_cfgs = BaseResultChecker.resultchecker_cfgs.get(
+ self.key)
+ self.verify_script = self.get_script_fullpath(
+ self.resultchecker_cfgs['verify_script'])
+
+ def verify(self):
+ if "parameter" in self._config:
+ exit_status, stdout, stderr = self.connection.execute(
+ self.shell_cmd,
+ stdin=open(self.verify_script, "r"))
+ LOG.debug("action script of the operation is: {0}"
+ .format(self.verify_script))
+ LOG.debug("action parameter the of operation is: {0}"
+ .format(self.shell_cmd))
+ else:
+ exit_status, stdout, stderr = self.connection.execute(
+ "/bin/bash -s ",
+ stdin=open(self.verify_script, "r"))
+ LOG.debug("action script of the operation is: {0}"
+ .format(self.verify_script))
+
+ LOG.debug("exit_status ,stdout : {0} ,{1}".format(exit_status, stdout))
+ if exit_status == 0 and stdout:
+ self.actualResult = stdout
+ LOG.debug("verifying resultchecker: {0}".format(self.key))
+ LOG.debug("verifying resultchecker,expected: {0}"
+ .format(self.expectedResult))
+ LOG.debug("verifying resultchecker,actual: {0}"
+ .format(self.actualResult))
+ LOG.debug("verifying resultchecker,condition: {0}"
+ .format(self.condition))
+ if (type(self.expectedResult) is int):
+ self.actualResult = int(self.actualResult)
+ if self.condition == Condition.EQUAL:
+ self.success = self.actualResult == self.expectedResult
+ elif self.condition == Condition.GREATERTHAN:
+ self.success = self.actualResult > self.expectedResult
+ elif self.condition == Condition.GREATERTHANEQUAL:
+ self.success = self.actualResult >= self.expectedResult
+ elif self.condition == Condition.LESSTHANEQUAL:
+ self.success = self.actualResult <= self.expectedResult
+ elif self.condition == Condition.LESSTHAN:
+ self.success = self.actualResult < self.expectedResult
+ elif self.condition == Condition.IN:
+ self.success = self.expectedResult in self.actualResult
+ else:
+ self.success = False
+ LOG.debug(
+ "error happened when resultchecker: {0} Invalid condition"
+ .format(self.key))
+ else:
+ self.success = False
+ LOG.debug(
+ "error happened when resultchecker: {0} verifying the result"
+ .format(self.key))
+ LOG.error(stderr)
+
+ LOG.debug(
+ "verifying resultchecker: {0},the result is : {1}"
+ .format(self.key, self.success))
+ return self.success
diff --git a/yardstick/benchmark/scenarios/availability/result_checker_conf.yaml b/yardstick/benchmark/scenarios/availability/result_checker_conf.yaml
new file mode 100644
index 000000000..638c39a6e
--- /dev/null
+++ b/yardstick/benchmark/scenarios/availability/result_checker_conf.yaml
@@ -0,0 +1,11 @@
+---
+# sample config file for ha test
+#
+schema: "yardstick:task:0.1"
+
+process-checker:
+ verify_script: ha_tools/check_process_python.bash
+service-checker:
+ verify_script: ha_tools/check_service.bash
+nova-instance-checker:
+ verify_script: ha_tools/nova/show_instances.bash \ No newline at end of file
diff --git a/yardstick/benchmark/scenarios/availability/scenario_general.py b/yardstick/benchmark/scenarios/availability/scenario_general.py
new file mode 100644
index 000000000..0a128aa09
--- /dev/null
+++ b/yardstick/benchmark/scenarios/availability/scenario_general.py
@@ -0,0 +1,68 @@
+##############################################################################
+# Copyright (c) 2016 Juan Qiu and others
+# juan_ qiu@tongji.edu.cn
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+import logging
+import traceback
+
+from yardstick.benchmark.scenarios import base
+from yardstick.benchmark.scenarios.availability.director import Director
+
+LOG = logging.getLogger(__name__)
+
+
+class ScenarioGeneral(base.Scenario):
+ """Support orchestrating general HA test scenarios."""
+
+ __scenario_type__ = "GeneralHA"
+
+ def __init__(self, scenario_cfg, context_cfg):
+ LOG.debug(
+ "scenario_cfg:%s context_cfg:%s" % (scenario_cfg, context_cfg))
+ self.scenario_cfg = scenario_cfg
+ self.context_cfg = context_cfg
+
+ def setup(self):
+ self.director = Director(self.scenario_cfg, self.context_cfg)
+
+ def run(self, args):
+ steps = self.scenario_cfg["options"]["steps"]
+ orderedSteps = sorted(steps, key=lambda x: x['index'])
+ for step in orderedSteps:
+ LOG.debug(
+ "\033[94m running step: {0} .... \033[0m"
+ .format(orderedSteps.index(step)+1))
+ try:
+ actionPlayer = self.director.createActionPlayer(
+ step['actionType'], step['actionKey'])
+ actionPlayer.action()
+ actionRollbacker = self.director.createActionRollbacker(
+ step['actionType'], step['actionKey'])
+ if actionRollbacker:
+ self.director.executionSteps.append(actionRollbacker)
+ except Exception, e:
+ LOG.debug(e.message)
+ traceback.print_exc()
+ LOG.debug(
+ "\033[91m exception when running step: {0} .... \033[0m"
+ .format(orderedSteps.index(step)))
+ break
+ finally:
+ pass
+
+ self.director.stopMonitors()
+ if self.director.verify():
+ LOG.debug(
+ "\033[92m congratulations, "
+ "the test cases scenario is pass! \033[0m")
+ else:
+ LOG.debug(
+ "\033[91m aoh,the test cases scenario failed,"
+ "please check the detail debug information! \033[0m")
+
+ def teardown(self):
+ self.director.knockoff()
diff --git a/yardstick/benchmark/scenarios/compute/cpuload.py b/yardstick/benchmark/scenarios/compute/cpuload.py
index d11bec5c3..f45313e91 100644
--- a/yardstick/benchmark/scenarios/compute/cpuload.py
+++ b/yardstick/benchmark/scenarios/compute/cpuload.py
@@ -36,13 +36,17 @@ class CPULoad(base.Scenario):
on the Linux host.
Parameters
- interval - Time interval to measure CPU usage. A value of 0
- indicates that processors statistics are to be
- reported for the time since system startup (boot)
+ interval - Time interval to measure CPU usage.
type: [int]
unit: seconds
- default: 0
+ default: 1
+
+ count (for mpstat only) - Number of CPU usage measurment.
+
+ type: [int]
+ unit: N/A
+ default: 1
"""
@@ -56,6 +60,7 @@ class CPULoad(base.Scenario):
self.context_cfg = context_cfg
self.setup_done = False
self.has_mpstat = False
+ self.has_count = False
def setup(self):
"""Scenario setup."""
@@ -77,10 +82,13 @@ class CPULoad(base.Scenario):
LOG.info("MPSTAT is installed")
self.has_mpstat = True
- if 'options' in self.scenario_cfg:
- self.interval = self.scenario_cfg['options'].get("interval", 0)
+ options = self.scenario_cfg['options']
+ self.interval = options.get("interval", 1)
+ if 'count' in options:
+ self.count = options.get("count", 1)
+ self.has_count = True
else:
- self.interval = 0
+ self.has_count = False
self.setup_done = True
@@ -99,15 +107,17 @@ class CPULoad(base.Scenario):
def _get_cpu_usage_mpstat(self):
"""Get processor usage using mpstat."""
- if self.interval > 0:
- cmd = "mpstat -P ON %s 1" % self.interval
+ if self.interval > 0 and self.has_count:
+ cmd = "mpstat -P ON %s %s" % (self.interval, self.count)
else:
- cmd = "mpstat -P ON"
+ cmd = "mpstat -P ON %s 1" % self.interval
result = self._execute_command(cmd)
fields = []
- mpstat = {}
+ maximum = {}
+ minimum = {}
+ average = {}
time_marker = re.compile("^([0-9]+):([0-9]+):([0-9]+)$")
ampm_marker = re.compile("(AM|PM)$")
@@ -117,7 +127,6 @@ class CPULoad(base.Scenario):
line = row.split()
if line and re.match(time_marker, line[0]):
-
if re.match(ampm_marker, line[1]):
del line[:2]
else:
@@ -134,11 +143,45 @@ class CPULoad(base.Scenario):
cpu = 'cpu' if line[0] == 'all' else 'cpu' + line[0]
values = line[1:]
if values and len(values) == len(fields):
- mpstat[cpu] = dict(zip(fields, values))
+ temp_dict = dict(zip(fields, values))
+ if cpu not in maximum:
+ maximum[cpu] = temp_dict
+ else:
+ for item in temp_dict:
+ if float(maximum[cpu][item]) <\
+ float(temp_dict[item]):
+ maximum[cpu][item] = temp_dict[item]
+
+ if cpu not in minimum:
+ minimum[cpu] = temp_dict
+ else:
+ for item in temp_dict:
+ if float(minimum[cpu][item]) >\
+ float(temp_dict[item]):
+ minimum[cpu][item] = temp_dict[item]
else:
raise RuntimeError("mpstat: parse error", fields, line)
- return {'mpstat': mpstat}
+ elif line and line[0] == 'Average:':
+ del line[:1]
+ if line[0] == 'CPU':
+ # header fields
+ fields = line[1:]
+ if len(fields) != CPULoad.MPSTAT_FIELD_SIZE:
+ raise RuntimeError("mpstat average: unexpected field\
+ size", fields)
+ else:
+ # value fields
+ cpu = 'cpu' if line[0] == 'all' else 'cpu' + line[0]
+ values = line[1:]
+ if values and len(values) == len(fields):
+ average[cpu] = dict(zip(fields, values))
+ else:
+ raise RuntimeError("mpstat average: parse error",
+ fields, line)
+
+ return {'mpstat_maximun': maximum, 'mpstat_minimum': minimum,
+ 'mpstat_average': average}
def _get_cpu_usage(self):
"""Get processor usage from /proc/stat."""
diff --git a/yardstick/benchmark/scenarios/networking/vsperf.py b/yardstick/benchmark/scenarios/networking/vsperf.py
new file mode 100644
index 000000000..d3123083a
--- /dev/null
+++ b/yardstick/benchmark/scenarios/networking/vsperf.py
@@ -0,0 +1,229 @@
+# Copyright 2016 Intel Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+""" Vsperf specific scenario definition """
+
+import logging
+import os
+import subprocess
+import csv
+
+import yardstick.ssh as ssh
+from yardstick.benchmark.scenarios import base
+
+LOG = logging.getLogger(__name__)
+
+
+class Vsperf(base.Scenario):
+ """Execute vsperf with defined parameters
+
+ Parameters:
+ traffic_type - to specify the type of traffic executed by traffic generator
+ the valid values are "rfc2544", "continuous", "back2back"
+ type: string
+ default: "rfc2544"
+ pkt_sizes - a packet size for which test should be executed;
+ Multiple packet sizes can be tested by modification of Sequence runner
+ section inside TC YAML definition.
+ type: string
+ default: "64"
+ duration - sets duration for which traffic will be generated
+ type: int
+ default: 30
+ bidirectional - speficies if traffic will be uni (False) or bi-directional
+ (True)
+ type: string
+ default: False
+ iload - specifies frame rate
+ type: string
+ default: 100
+ rfc2544_trials - the number of trials performed for each packet size
+ type: string
+ default: NA
+ multistream - the number of simulated streams
+ type: string
+ default: 0 (disabled)
+ stream_type - specifies network layer used for multistream simulation
+ the valid values are "L4", "L3" and "L2"
+ type: string
+ default: "L4"
+ conf-file - path to the vsperf configuration file, which will be uploaded
+ to the VM
+ type: string
+ default: NA
+ setup-script - path to the setup script, which will be executed during
+ setup and teardown phases
+ type: string
+ default: NA
+ trafficgen_port1 - specifies device name of 1st interface connected to
+ the trafficgen
+ type: string
+ default: NA
+ trafficgen_port2 - specifies device name of 2nd interface connected to
+ the trafficgen
+ type: string
+ default: NA
+ external_bridge - specifies name of external bridge configured in OVS
+ type: string
+ default: "br-ex"
+
+ """
+ __scenario_type__ = "Vsperf"
+
+ VSPERF_CONF = '~/vsperf-yardstick.conf'
+
+ def __init__(self, scenario_cfg, context_cfg):
+ self.scenario_cfg = scenario_cfg
+ self.context_cfg = context_cfg
+ self.setup_done = False
+ self.client = None
+ self.tg_port1 = self.scenario_cfg['options'].get('trafficgen_port1',
+ None)
+ self.tg_port2 = self.scenario_cfg['options'].get('trafficgen_port2',
+ None)
+ self.br_ex = self.scenario_cfg['options'].get('external_bridge',
+ 'br-ex')
+ self.vsperf_conf = os.path.expanduser(
+ self.scenario_cfg['options'].get('conf-file', Vsperf.VSPERF_CONF))
+ self.setup_script = self.scenario_cfg['options'].get('setup-script',
+ None)
+ if self.setup_script:
+ self.setup_script = os.path.expanduser(self.setup_script)
+
+ def setup(self):
+ '''scenario setup'''
+ vsperf = self.context_cfg['host']
+ vsperf_user = vsperf.get('user', 'ubuntu')
+ vsperf_password = vsperf.get('password', 'ubuntu')
+ vsperf_ip = vsperf.get('ip', None)
+
+ # add trafficgen interfaces to the external bridge
+ if self.tg_port1:
+ subprocess.call('sudo bash -c "ovs-vsctl add-port %s %s"' %
+ (self.br_ex, self.tg_port1), shell=True)
+ if self.tg_port2:
+ subprocess.call('sudo bash -c "ovs-vsctl add-port %s %s"' %
+ (self.br_ex, self.tg_port2), shell=True)
+
+ # copy vsperf conf to VM
+ LOG.info("user:%s, host:%s", vsperf_user, vsperf_ip)
+ self.client = ssh.SSH(vsperf_user, vsperf_ip,
+ password=vsperf_password)
+ # traffic generation could last long
+ self.client.wait(timeout=1800)
+
+ # copy script to host
+ self.client.run("cat > ~/vsperf.conf",
+ stdin=open(self.vsperf_conf, "rb"))
+
+ # execute external setup script
+ if self.setup_script:
+ cmd = "%s setup" % (self.setup_script)
+ LOG.info("Execute setup script \"%s\"", cmd)
+ subprocess.call(cmd, shell=True)
+
+ self.setup_done = True
+
+ def run(self, result):
+ """ execute the vsperf benchmark and return test results
+ within result dictionary
+ """
+ def add_test_params(options, option, default_value):
+ """return parameter and its value as a string to be passed
+ to the VSPERF inside --test-params argument
+
+ Parameters:
+ options - dictionary with scenario options
+ option - a name of option to be added to the string
+ default_value - value to be used in case that option
+ is not defined inside scenario options
+ """
+ if option in options:
+ return "%s=%s" % (option, options[option])
+ elif default_value is not None:
+ return "%s=%s" % (option, default_value)
+ else:
+ return None
+
+ if not self.setup_done:
+ self.setup()
+
+ # remove results from previous tests
+ self.client.execute("rm -rf /tmp/results*")
+
+ # get vsperf options
+ options = self.scenario_cfg['options']
+ test_params = []
+ test_params.append(add_test_params(options, "traffic_type", "rfc2544"))
+ test_params.append(add_test_params(options, "pkt_sizes", "64"))
+ test_params.append(add_test_params(options, "duration", None))
+ test_params.append(add_test_params(options, "bidirectional", "False"))
+ test_params.append(add_test_params(options, "iload", 100))
+ test_params.append(add_test_params(options, "rfc2544_trials", None))
+ test_params.append(add_test_params(options, "multistream", None))
+ test_params.append(add_test_params(options, "stream_type", None))
+
+ # execute vsperf
+ cmd = "source ~/vsperfenv/bin/activate ; cd vswitchperf ; "
+ cmd += "./vsperf --mode trafficgen --conf-file ~/vsperf.conf "
+ cmd += "--test-params=\"%s\"" % (';'.join(filter(None, test_params)))
+ LOG.debug("Executing command: %s", cmd)
+ status, stdout, stderr = self.client.execute(cmd)
+
+ if status:
+ raise RuntimeError(stderr)
+
+ # get test results
+ cmd = "cat /tmp/results*/result.csv"
+ LOG.debug("Executing command: %s", cmd)
+ status, stdout, stderr = self.client.execute(cmd)
+
+ if status:
+ raise RuntimeError(stderr)
+
+ # convert result.csv to JSON format
+ reader = csv.DictReader(stdout.split('\r\n'))
+ result.update(reader.next())
+
+ # sla check; go through all defined SLAs and check if values measured
+ # by VSPERF are higher then those defined by SLAs
+ if 'sla' in self.scenario_cfg and \
+ 'metrics' in self.scenario_cfg['sla']:
+ for metric in self.scenario_cfg['sla']['metrics'].split(','):
+ assert metric in result, \
+ '%s is not collected by VSPERF' % (metric)
+ assert metric in self.scenario_cfg['sla'], \
+ '%s is not defined in SLA' % (metric)
+ vs_res = float(result[metric])
+ sla_res = float(self.scenario_cfg['sla'][metric])
+ assert vs_res >= sla_res, \
+ 'VSPERF_%s(%f) < SLA_%s(%f)' % \
+ (metric, vs_res, metric, sla_res)
+
+ def teardown(self):
+ """cleanup after the test execution"""
+ # remove trafficgen interfaces from the external bridge
+ if self.tg_port1:
+ subprocess.call('sudo bash -c "ovs-vsctl del-port %s %s"' %
+ (self.br_ex, self.tg_port1), shell=True)
+ if self.tg_port2:
+ subprocess.call('sudo bash -c "ovs-vsctl del-port %s %s"' %
+ (self.br_ex, self.tg_port2), shell=True)
+
+ # execute external setup script
+ if self.setup_script:
+ cmd = "%s teardown" % (self.setup_script)
+ LOG.info("Execute setup script \"%s\"", cmd)
+ subprocess.call(cmd, shell=True)
+
+ self.setup_done = False