aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSerhiy Pshyk <serhiyx.pshyk@intel.com>2018-08-17 16:35:41 +0100
committerSerhiy Pshyk <serhiyx.pshyk@intel.com>2018-08-23 09:48:53 +0100
commit06f80e44e3dd48164bee99296d5b2888378a317b (patch)
tree9a79d976a0d4f51cdf7b9f6cb36264f23ed9b4d5
parent27521123b2a178ce5d9038a4901e65ced0b9e35e (diff)
Fix issues with 'Success_' stats reported by ProxBinSearchProfile
List of changes: - Added 'Status' field to indicate status of each search iteration. Possible values are 'Success', 'Failure', 'Result'. - Removed reporting of duplicated stats with 'Success_' prefix. Instead 'Status' field is set to 'Success' - Removed reporting of duplicated stats with 'Result_' prefix. Instead 'Status' field is set to 'Result' - Updated Prox_BM_L2FWD-4Port_MultiSize-1518452496550.json dashboard to query success and result status by 'Status' field value. JIRA: YARDSTICK-1386 Change-Id: I9a21a102af6cb4db137e805011b5d81c4943d77b Signed-off-by: Serhiy Pshyk <serhiyx.pshyk@intel.com>
-rw-r--r--dashboard/Prox_BM_L2FWD-4Port_MultiSize-1518452496550.json207
-rw-r--r--yardstick/network_services/traffic_profile/prox_binsearch.py105
-rw-r--r--yardstick/tests/unit/network_services/traffic_profile/test_prox_binsearch.py131
3 files changed, 243 insertions, 200 deletions
diff --git a/dashboard/Prox_BM_L2FWD-4Port_MultiSize-1518452496550.json b/dashboard/Prox_BM_L2FWD-4Port_MultiSize-1518452496550.json
index 3c78ab18d..659522510 100644
--- a/dashboard/Prox_BM_L2FWD-4Port_MultiSize-1518452496550.json
+++ b/dashboard/Prox_BM_L2FWD-4Port_MultiSize-1518452496550.json
@@ -44,6 +44,7 @@
"annotations": {
"list": []
},
+ "editMode": false,
"editable": true,
"gnetId": null,
"graphTooltip": 0,
@@ -149,7 +150,7 @@
"measurement": "tc_prox_baremetal_l2fwd-4",
"orderByTime": "ASC",
"policy": "default",
- "query": "SELECT mean(\"tg__0.xe0.out_packets\") FROM \"tc_prox_baremetal_l2fwd-4\" WHERE $timeFilter GROUP BY time($interval) fill(null)",
+ "query": "SELECT mean(\"tg__0.collect_stats.xe0.out_packets\") FROM \"tc_prox_baremetal_l2fwd-4\" WHERE $timeFilter GROUP BY time($interval) fill(null)",
"rawQuery": false,
"refId": "A",
"resultFormat": "time_series",
@@ -283,7 +284,7 @@
[
{
"params": [
- "tg__0.xe0.in_packets"
+ "tg__0.collect_stats.xe0.in_packets"
],
"type": "field"
},
@@ -321,7 +322,7 @@
[
{
"params": [
- "tg__0.xe1.in_packets"
+ "tg__0.collect_stats.xe1.in_packets"
],
"type": "field"
},
@@ -359,7 +360,7 @@
[
{
"params": [
- "tg__0.xe2.in_packets"
+ "tg__0.collect_stats.xe2.in_packets"
],
"type": "field"
},
@@ -397,7 +398,7 @@
[
{
"params": [
- "tg__0.xe3.in_packets"
+ "tg__0.collect_stats.xe3.in_packets"
],
"type": "field"
},
@@ -525,7 +526,7 @@
[
{
"params": [
- "tg__0.xe0.out_packets"
+ "tg__0.collect_stats.xe0.out_packets"
],
"type": "field"
},
@@ -563,7 +564,7 @@
[
{
"params": [
- "tg__0.xe1.out_packets"
+ "tg__0.collect_stats.xe1.out_packets"
],
"type": "field"
},
@@ -601,7 +602,7 @@
[
{
"params": [
- "tg__0.xe2.out_packets"
+ "tg__0.collect_stats.xe2.out_packets"
],
"type": "field"
},
@@ -639,7 +640,7 @@
[
{
"params": [
- "tg__0.xe3.out_packets"
+ "tg__0.collect_stats.xe3.out_packets"
],
"type": "field"
},
@@ -1060,7 +1061,7 @@
[
{
"params": [
- "tg__0.TxThroughput"
+ "tg__0.collect_stats.TxThroughput"
],
"type": "field"
},
@@ -1099,7 +1100,7 @@
[
{
"params": [
- "tg__0.RxThroughput"
+ "tg__0.collect_stats.RxThroughput"
],
"type": "field"
},
@@ -1225,7 +1226,7 @@
[
{
"params": [
- "tg__0.PktSize"
+ "tg__0.collect_stats.PktSize"
],
"type": "field"
},
@@ -1355,13 +1356,15 @@
"measurement": "tc_prox_baremetal_l2fwd-4",
"orderByTime": "ASC",
"policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.tx_total\") FROM \"tc_prox_baremetal_l2fwd-4\" WHERE \"tg__0.collect_stats.Status\" = 'Success' AND $timeFilter GROUP BY time($__interval) fill(none)",
+ "rawQuery": false,
"refId": "B",
"resultFormat": "time_series",
"select": [
[
{
"params": [
- "tg__0.Success_tx_total"
+ "tg__0.collect_stats.tx_total"
],
"type": "field"
},
@@ -1371,7 +1374,13 @@
}
]
],
- "tags": []
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.Status",
+ "operator": "=",
+ "value": "Success"
+ }
+ ]
},
{
"alias": "SUCCESS Rx Total",
@@ -1393,13 +1402,15 @@
"measurement": "tc_prox_baremetal_l2fwd-4",
"orderByTime": "ASC",
"policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.rx_total\") FROM \"tc_prox_baremetal_l2fwd-4\" WHERE \"tg__0.collect_stats.Status\" = 'Success' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
"refId": "A",
"resultFormat": "time_series",
"select": [
[
{
"params": [
- "tg__0.Success_rx_total"
+ "tg__0.collect_stats.rx_total"
],
"type": "field"
},
@@ -1409,7 +1420,13 @@
}
]
],
- "tags": []
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.Status",
+ "operator": "=",
+ "value": "Success"
+ }
+ ]
},
{
"alias": "SUCCESS ALLOWABLE LOST PACKETS",
@@ -1431,13 +1448,15 @@
"measurement": "tc_prox_baremetal_l2fwd-4",
"orderByTime": "ASC",
"policy": "default",
+ "query": "SELECT mean(\"tg__0.collect_stats.can_be_lost\") FROM \"tc_prox_baremetal_l2fwd-4\" WHERE \"tg__0.collect_stats.Status\" = 'Success' AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
"refId": "C",
"resultFormat": "time_series",
"select": [
[
{
"params": [
- "tg__0.Success_can_be_lost"
+ "tg__0.collect_stats.can_be_lost"
],
"type": "field"
},
@@ -1447,7 +1466,13 @@
}
]
],
- "tags": []
+ "tags": [
+ {
+ "key": "tg__0.collect_stats.Status",
+ "operator": "=",
+ "value": "Success"
+ }
+ ]
}
],
"thresholds": [],
@@ -1567,7 +1592,7 @@
[
{
"params": [
- "tg__0.duration"
+ "tg__0.collect_stats.duration"
],
"type": "field"
},
@@ -1675,7 +1700,7 @@
[
{
"params": [
- "tg__0.test_duration"
+ "tg__0.collect_stats.test_duration"
],
"type": "field"
},
@@ -1783,7 +1808,7 @@
[
{
"params": [
- "tg__0.test_precision"
+ "tg__0.collect_stats.test_precision"
],
"type": "field"
},
@@ -1891,7 +1916,7 @@
[
{
"params": [
- "tg__0.tolerated_loss"
+ "tg__0.collect_stats.tolerated_loss"
],
"type": "field"
},
@@ -2048,7 +2073,7 @@
"measurement": "tc_prox_baremetal_l2fwd-4",
"orderByTime": "ASC",
"policy": "default",
- "query": "SELECT mean(\"tg__0.Result_pktSize\") FROM \"tc_prox_baremetal_l2fwd-4\" WHERE \"tg__0.Result_pktSize\" = 64 AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "query": "SELECT mean(\"tg__0.collect_stats.PktSize\") FROM \"tc_prox_baremetal_l2fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 64 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
"rawQuery": true,
"refId": "A",
"resultFormat": "time_series",
@@ -2056,7 +2081,7 @@
[
{
"params": [
- "tg__0.Result_pktSize"
+ "tg__0.collect_stats.PktSize"
],
"type": "field"
},
@@ -2068,7 +2093,7 @@
],
"tags": [
{
- "key": "tg__0.Result_pktSize",
+ "key": "tg__0.collect_stats.PktSize",
"operator": "=",
"value": "64"
}
@@ -2165,7 +2190,7 @@
"measurement": "tc_prox_baremetal_l2fwd-4",
"orderByTime": "ASC",
"policy": "default",
- "query": "SELECT mean(\"tg__0.Result_theor_max_throughput\") FROM \"tc_prox_baremetal_l2fwd-4\" WHERE \"tg__0.Result_pktSize\" = 64 AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "query": "SELECT mean(\"tg__0.collect_stats.theor_max_throughput\") FROM \"tc_prox_baremetal_l2fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 64 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
"rawQuery": true,
"refId": "A",
"resultFormat": "time_series",
@@ -2173,7 +2198,7 @@
[
{
"params": [
- "tg__0.Result_theor_max_throughput"
+ "tg__0.collect_stats.theor_max_throughput"
],
"type": "field"
},
@@ -2185,7 +2210,7 @@
],
"tags": [
{
- "key": "tg__0.Result_pktSize",
+ "key": "tg__0.collect_stats.PktSize",
"operator": "=",
"value": "64"
}
@@ -2281,7 +2306,7 @@
"measurement": "tc_prox_baremetal_l2fwd-4",
"orderByTime": "ASC",
"policy": "default",
- "query": "SELECT mean(\"tg__0.Result_Actual_throughput\") FROM \"tc_prox_baremetal_l2fwd-4\" WHERE \"tg__0.Result_pktSize\" = 64 AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "query": "SELECT mean(\"tg__0.collect_stats.Actual_throughput\") FROM \"tc_prox_baremetal_l2fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 64 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
"rawQuery": true,
"refId": "A",
"resultFormat": "time_series",
@@ -2289,7 +2314,7 @@
[
{
"params": [
- "tg__0.Result_Actual_throughput"
+ "tg__0.collect_stats.Actual_throughput"
],
"type": "field"
},
@@ -2301,7 +2326,7 @@
],
"tags": [
{
- "key": "tg__0.Result_pktSize",
+ "key": "tg__0.collect_stats.PktSize",
"operator": "=",
"value": "64"
}
@@ -2409,7 +2434,7 @@
"measurement": "tc_prox_baremetal_l2fwd-4",
"orderByTime": "ASC",
"policy": "default",
- "query": "SELECT mean(\"tg__0.Result_pktSize\") FROM \"tc_prox_baremetal_l2fwd-4\" WHERE \"tg__0.Result_pktSize\" = 128 AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "query": "SELECT mean(\"tg__0.collect_stats.PktSize\") FROM \"tc_prox_baremetal_l2fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 128 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
"rawQuery": true,
"refId": "A",
"resultFormat": "time_series",
@@ -2417,7 +2442,7 @@
[
{
"params": [
- "tg__0.Result_pktSize"
+ "tg__0.collect_stats.PktSize"
],
"type": "field"
},
@@ -2429,7 +2454,7 @@
],
"tags": [
{
- "key": "tg__0.Result_pktSize",
+ "key": "tg__0.collect_stats.PktSize",
"operator": "=",
"value": "128"
}
@@ -2525,7 +2550,7 @@
"measurement": "tc_prox_baremetal_l2fwd-4",
"orderByTime": "ASC",
"policy": "default",
- "query": "SELECT mean(\"tg__0.Result_theor_max_throughput\") FROM \"tc_prox_baremetal_l2fwd-4\" WHERE \"tg__0.Result_pktSize\" = 128 AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "query": "SELECT mean(\"tg__0.collect_stats.theor_max_throughput\") FROM \"tc_prox_baremetal_l2fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 128 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
"rawQuery": true,
"refId": "A",
"resultFormat": "time_series",
@@ -2533,7 +2558,7 @@
[
{
"params": [
- "tg__0.Result_theor_max_throughput"
+ "tg__0.collect_stats.theor_max_throughput"
],
"type": "field"
},
@@ -2545,7 +2570,7 @@
],
"tags": [
{
- "key": "tg__0.Result_pktSize",
+ "key": "tg__0.collect_stats.PktSize",
"operator": "=",
"value": "128"
}
@@ -2641,7 +2666,7 @@
"measurement": "tc_prox_baremetal_l2fwd-4",
"orderByTime": "ASC",
"policy": "default",
- "query": "SELECT mean(\"tg__0.Result_Actual_throughput\") FROM \"tc_prox_baremetal_l2fwd-4\" WHERE \"tg__0.Result_pktSize\" = 128 AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "query": "SELECT mean(\"tg__0.collect_stats.Actual_throughput\") FROM \"tc_prox_baremetal_l2fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 128 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
"rawQuery": true,
"refId": "A",
"resultFormat": "time_series",
@@ -2649,7 +2674,7 @@
[
{
"params": [
- "tg__0.Result_Actual_throughput"
+ "tg__0.collect_stats.Actual_throughput"
],
"type": "field"
},
@@ -2661,7 +2686,7 @@
],
"tags": [
{
- "key": "tg__0.Result_pktSize",
+ "key": "tg__0.collect_stats.PktSize",
"operator": "=",
"value": "128"
}
@@ -2768,7 +2793,7 @@
"measurement": "tc_prox_baremetal_l2fwd-4",
"orderByTime": "ASC",
"policy": "default",
- "query": "SELECT mean(\"tg__0.Result_pktSize\") FROM \"tc_prox_baremetal_l2fwd-4\" WHERE \"tg__0.Result_pktSize\" = 256 AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "query": "SELECT mean(\"tg__0.collect_stats.PktSize\") FROM \"tc_prox_baremetal_l2fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 256 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
"rawQuery": true,
"refId": "A",
"resultFormat": "time_series",
@@ -2776,7 +2801,7 @@
[
{
"params": [
- "tg__0.Result_pktSize"
+ "tg__0.collect_stats.PktSize"
],
"type": "field"
},
@@ -2788,7 +2813,7 @@
],
"tags": [
{
- "key": "tg__0.Result_pktSiuze",
+ "key": "tg__0.collect_stats.PktSize",
"operator": "=",
"value": "256"
}
@@ -2883,7 +2908,7 @@
"measurement": "tc_prox_baremetal_l2fwd-4",
"orderByTime": "ASC",
"policy": "default",
- "query": "SELECT mean(\"tg__0.Result_theor_max_throughput\") FROM \"tc_prox_baremetal_l2fwd-4\" WHERE \"tg__0.Result_pktSize\" = 256 AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "query": "SELECT mean(\"tg__0.collect_stats.theor_max_throughput\") FROM \"tc_prox_baremetal_l2fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 256 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
"rawQuery": true,
"refId": "A",
"resultFormat": "time_series",
@@ -2891,7 +2916,7 @@
[
{
"params": [
- "tg__0.Result_theor_max_throughput"
+ "tg__0.collect_stats.theor_max_throughput"
],
"type": "field"
},
@@ -2903,7 +2928,7 @@
],
"tags": [
{
- "key": "tg__0.Result_pktSize",
+ "key": "tg__0.collect_stats.PktSize",
"operator": "=",
"value": "256"
}
@@ -2998,7 +3023,7 @@
"measurement": "tc_prox_baremetal_l2fwd-4",
"orderByTime": "ASC",
"policy": "default",
- "query": "SELECT mean(\"tg__0.Result_Actual_throughput\") FROM \"tc_prox_baremetal_l2fwd-4\" WHERE \"tg__0.Result_pktSize\" = 256 AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "query": "SELECT mean(\"tg__0.collect_stats.Actual_throughput\") FROM \"tc_prox_baremetal_l2fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 256 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
"rawQuery": true,
"refId": "A",
"resultFormat": "time_series",
@@ -3006,7 +3031,7 @@
[
{
"params": [
- "tg__0.Result_Actual_throughput"
+ "tg__0.collect_stats.Actual_throughput"
],
"type": "field"
},
@@ -3018,7 +3043,7 @@
],
"tags": [
{
- "key": "tg__0.Result_pktSize",
+ "key": "tg__0.collect_stats.PktSize",
"operator": "=",
"value": "256"
}
@@ -3125,7 +3150,7 @@
"measurement": "tc_prox_baremetal_l2fwd-4",
"orderByTime": "ASC",
"policy": "default",
- "query": "SELECT mean(\"tg__0.Result_pktSize\") FROM \"tc_prox_baremetal_l2fwd-4\" WHERE \"tg__0.Result_pktSize\" = 512 AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "query": "SELECT mean(\"tg__0.collect_stats.PktSize\") FROM \"tc_prox_baremetal_l2fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 512 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
"rawQuery": true,
"refId": "A",
"resultFormat": "time_series",
@@ -3133,7 +3158,7 @@
[
{
"params": [
- "tg__0.Result_pktSize"
+ "tg__0.collect_stats.PktSize"
],
"type": "field"
},
@@ -3145,7 +3170,7 @@
],
"tags": [
{
- "key": "tg__0.Result_pktSize",
+ "key": "tg__0.collect_stats.PktSize",
"operator": "=",
"value": "512"
}
@@ -3241,7 +3266,7 @@
"measurement": "tc_prox_baremetal_l2fwd-4",
"orderByTime": "ASC",
"policy": "default",
- "query": "SELECT mean(\"tg__0.Result_theor_max_throughput\") FROM \"tc_prox_baremetal_l2fwd-4\" WHERE \"tg__0.Result_pktSize\" = 512 AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "query": "SELECT mean(\"tg__0.collect_stats.theor_max_throughput\") FROM \"tc_prox_baremetal_l2fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 512 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
"rawQuery": true,
"refId": "A",
"resultFormat": "time_series",
@@ -3249,7 +3274,7 @@
[
{
"params": [
- "tg__0.Result_theor_max_throughput"
+ "tg__0.collect_stats.theor_max_throughput"
],
"type": "field"
},
@@ -3261,7 +3286,7 @@
],
"tags": [
{
- "key": "tg__0.Result_pktSize",
+ "key": "tg__0.collect_stats.PktSize",
"operator": "=",
"value": "512"
}
@@ -3357,7 +3382,7 @@
"measurement": "tc_prox_baremetal_l2fwd-4",
"orderByTime": "ASC",
"policy": "default",
- "query": "SELECT mean(\"tg__0.Result_Actual_throughput\") FROM \"tc_prox_baremetal_l2fwd-4\" WHERE \"tg__0.Result_pktSize\" = 512 AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "query": "SELECT mean(\"tg__0.collect_stats.Actual_throughput\") FROM \"tc_prox_baremetal_l2fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 512 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
"rawQuery": true,
"refId": "A",
"resultFormat": "time_series",
@@ -3365,7 +3390,7 @@
[
{
"params": [
- "tg__0.Result_Actual_throughput"
+ "tg__0.collect_stats.Actual_throughput"
],
"type": "field"
},
@@ -3377,7 +3402,7 @@
],
"tags": [
{
- "key": "tg__0.Result_pktSize",
+ "key": "tg__0.collect_stats.PktSize",
"operator": "=",
"value": "512"
}
@@ -3483,7 +3508,7 @@
"measurement": "tc_prox_baremetal_l2fwd-4",
"orderByTime": "ASC",
"policy": "default",
- "query": "SELECT mean(\"tg__0.Result_pktSize\") FROM \"tc_prox_baremetal_l2fwd-4\" WHERE \"tg__0.Result_pktSize\" = 1024 AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "query": "SELECT mean(\"tg__0.collect_stats.PktSize\") FROM \"tc_prox_baremetal_l2fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 1024 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
"rawQuery": true,
"refId": "A",
"resultFormat": "time_series",
@@ -3491,7 +3516,7 @@
[
{
"params": [
- "tg__0.Result_pktSize"
+ "tg__0.collect_stats.PktSize"
],
"type": "field"
},
@@ -3503,7 +3528,7 @@
],
"tags": [
{
- "key": "tg__0.Result_pktSize",
+ "key": "tg__0.collect_stats.PktSize",
"operator": "=",
"value": "1024"
}
@@ -3598,7 +3623,7 @@
"measurement": "tc_prox_baremetal_l2fwd-4",
"orderByTime": "ASC",
"policy": "default",
- "query": "SELECT mean(\"tg__0.Result_theor_max_throughput\") FROM \"tc_prox_baremetal_l2fwd-4\" WHERE \"tg__0.Result_pktSize\" = 1024 AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "query": "SELECT mean(\"tg__0.collect_stats.theor_max_throughput\") FROM \"tc_prox_baremetal_l2fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 1024 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
"rawQuery": true,
"refId": "A",
"resultFormat": "time_series",
@@ -3606,7 +3631,7 @@
[
{
"params": [
- "tg__0.Result_theor_max_throughput"
+ "tg__0.collect_stats.theor_max_throughput"
],
"type": "field"
},
@@ -3618,7 +3643,7 @@
],
"tags": [
{
- "key": "tg__0.Result_pktSize",
+ "key": "tg__0.collect_stats.PktSize",
"operator": "=",
"value": "1024"
}
@@ -3713,7 +3738,7 @@
"measurement": "tc_prox_baremetal_l2fwd-4",
"orderByTime": "ASC",
"policy": "default",
- "query": "SELECT mean(\"tg__0.Result_Actual_throughput\") FROM \"tc_prox_baremetal_l2fwd-4\" WHERE \"tg__0.Result_pktSize\" = 1024 AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "query": "SELECT mean(\"tg__0.collect_stats.Actual_throughput\") FROM \"tc_prox_baremetal_l2fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 1024 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
"rawQuery": true,
"refId": "A",
"resultFormat": "time_series",
@@ -3721,7 +3746,7 @@
[
{
"params": [
- "tg__0.Result_Actual_throughput"
+ "tg__0.collect_stats.Actual_throughput"
],
"type": "field"
},
@@ -3733,7 +3758,7 @@
],
"tags": [
{
- "key": "tg__0.Result_pktSize",
+ "key": "tg__0.collect_stats.PktSize",
"operator": "=",
"value": "1024"
}
@@ -3840,7 +3865,7 @@
"measurement": "tc_prox_baremetal_l2fwd-4",
"orderByTime": "ASC",
"policy": "default",
- "query": "SELECT mean(\"tg__0.Result_pktSize\") FROM \"tc_prox_baremetal_l2fwd-4\" WHERE \"tg__0.Result_pktSize\" = 1280 AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "query": "SELECT mean(\"tg__0.collect_stats.PktSize\") FROM \"tc_prox_baremetal_l2fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 1280 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
"rawQuery": true,
"refId": "A",
"resultFormat": "time_series",
@@ -3848,7 +3873,7 @@
[
{
"params": [
- "tg__0.Result_pktSize"
+ "tg__0.collect_stats.PktSize"
],
"type": "field"
},
@@ -3860,7 +3885,7 @@
],
"tags": [
{
- "key": "tg__0.Result_pktSize",
+ "key": "tg__0.collect_stats.PktSize",
"operator": "=",
"value": "1280"
}
@@ -3956,7 +3981,7 @@
"measurement": "tc_prox_baremetal_l2fwd-4",
"orderByTime": "ASC",
"policy": "default",
- "query": "SELECT mean(\"tg__0.Result_theor_max_throughput\") FROM \"tc_prox_baremetal_l2fwd-4\" WHERE \"tg__0.Result_pktSize\" = 1280 AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "query": "SELECT mean(\"tg__0.collect_stats.theor_max_throughput\") FROM \"tc_prox_baremetal_l2fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 1280 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
"rawQuery": true,
"refId": "A",
"resultFormat": "time_series",
@@ -3964,7 +3989,7 @@
[
{
"params": [
- "tg__0.Result_theor_max_throughput"
+ "tg__0.collect_stats.theor_max_throughput"
],
"type": "field"
},
@@ -3976,7 +4001,7 @@
],
"tags": [
{
- "key": "tg__0.Result_pktSize",
+ "key": "tg__0.collect_stats.PktSize",
"operator": "=",
"value": "1280"
}
@@ -4072,7 +4097,7 @@
"measurement": "tc_prox_baremetal_l2fwd-4",
"orderByTime": "ASC",
"policy": "default",
- "query": "SELECT mean(\"tg__0.Result_Actual_throughput\") FROM \"tc_prox_baremetal_l2fwd-4\" WHERE \"tg__0.Result_pktSize\" = 1280 AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "query": "SELECT mean(\"tg__0.collect_stats.Actual_throughput\") FROM \"tc_prox_baremetal_l2fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 1280 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
"rawQuery": true,
"refId": "A",
"resultFormat": "time_series",
@@ -4080,7 +4105,7 @@
[
{
"params": [
- "tg__0.Result_Actual_throughput"
+ "tg__0.collect_stats.Actual_throughput"
],
"type": "field"
},
@@ -4092,7 +4117,7 @@
],
"tags": [
{
- "key": "tg__0.Result_pktSize",
+ "key": "tg__0.collect_stats.PktSize",
"operator": "=",
"value": "1280"
}
@@ -4197,7 +4222,7 @@
],
"orderByTime": "ASC",
"policy": "default",
- "query": "SELECT mean(\"tg__0.Result_pktSize\") FROM \"tc_prox_baremetal_l2fwd-4\" WHERE \"tg__0.Result_pktSize\" = 1518 AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "query": "SELECT mean(\"tg__0.collect_stats.PktSize\") FROM \"tc_prox_baremetal_l2fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 1518 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
"rawQuery": true,
"refId": "A",
"resultFormat": "time_series",
@@ -4305,7 +4330,7 @@
],
"orderByTime": "ASC",
"policy": "default",
- "query": "SELECT mean(\"tg__0.Result_theor_max_throughput\") FROM \"tc_prox_baremetal_l2fwd-4\" WHERE \"tg__0.Result_pktSize\" = 1518 AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "query": "SELECT mean(\"tg__0.collect_stats.theor_max_throughput\") FROM \"tc_prox_baremetal_l2fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 1518 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
"rawQuery": true,
"refId": "A",
"resultFormat": "time_series",
@@ -4413,7 +4438,7 @@
],
"orderByTime": "ASC",
"policy": "default",
- "query": "SELECT mean(\"tg__0.Result_Actual_throughput\") FROM \"tc_prox_baremetal_l2fwd-4\" WHERE \"tg__0.Result_pktSize\" = 1518 AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "query": "SELECT mean(\"tg__0.collect_stats.Actual_throughput\") FROM \"tc_prox_baremetal_l2fwd-4\" WHERE \"tg__0.collect_stats.PktSize\" = 1518 AND \"tg__0.collect_stats.Status\" = 'Result' AND $timeFilter GROUP BY time($__interval) fill(null)",
"rawQuery": true,
"refId": "A",
"resultFormat": "time_series",
@@ -4541,7 +4566,7 @@
[
{
"params": [
- "tg__0.LatencyAvg.5"
+ "tg__0.collect_stats.LatencyAvg.5"
],
"type": "field"
},
@@ -4579,7 +4604,7 @@
[
{
"params": [
- "tg__0.LatencyMax.5"
+ "tg__0.collect_stats.LatencyMax.5"
],
"type": "field"
},
@@ -4687,7 +4712,7 @@
[
{
"params": [
- "tg__0.LatencyAvg.6"
+ "tg__0.collect_stats.LatencyAvg.6"
],
"type": "field"
},
@@ -4725,7 +4750,7 @@
[
{
"params": [
- "tg__0.LatencyMax.6"
+ "tg__0.collect_stats.LatencyMax.6"
],
"type": "field"
},
@@ -4833,7 +4858,7 @@
[
{
"params": [
- "tg__0.LatencyAvg.7"
+ "tg__0.collect_stats.LatencyAvg.7"
],
"type": "field"
},
@@ -4871,7 +4896,7 @@
[
{
"params": [
- "tg__0.LatencyMax.7"
+ "tg__0.collect_stats.LatencyMax.7"
],
"type": "field"
},
@@ -4979,7 +5004,7 @@
[
{
"params": [
- "tg__0.LatencyAvg.8"
+ "tg__0.collect_stats.LatencyAvg.8"
],
"type": "field"
},
@@ -5017,7 +5042,7 @@
[
{
"params": [
- "tg__0.LatencyMax.8"
+ "tg__0.collect_stats.LatencyMax.8"
],
"type": "field"
},
@@ -5783,8 +5808,8 @@
"list": []
},
"time": {
- "from": "2018-02-12T15:17:27.733Z",
- "to": "2018-02-12T16:44:28.270Z"
+ "from": "now-2d",
+ "to": "now"
},
"timepicker": {
"refresh_intervals": [
@@ -5813,5 +5838,5 @@
},
"timezone": "browser",
"title": "Prox_BM_L2FWD-4Port_MultiSize",
- "version": 29
-} \ No newline at end of file
+ "version": 12
+}
diff --git a/yardstick/network_services/traffic_profile/prox_binsearch.py b/yardstick/network_services/traffic_profile/prox_binsearch.py
index 506a880e0..16a0411ec 100644
--- a/yardstick/network_services/traffic_profile/prox_binsearch.py
+++ b/yardstick/network_services/traffic_profile/prox_binsearch.py
@@ -25,6 +25,14 @@ from yardstick.common import constants as overall_constants
LOG = logging.getLogger(__name__)
+STATUS_SUCCESS = "Success"
+STATUS_FAIL = "Failure"
+STATUS_RESULT = "Result"
+STEP_CONFIRM = "Confirm retry"
+STEP_INCREASE_LOWER = "Increase lower"
+STEP_DECREASE_LOWER = "Decrease lower"
+STEP_DECREASE_UPPER = "Decrease upper"
+
class ProxBinSearchProfile(ProxProfile):
"""
@@ -85,18 +93,16 @@ class ProxBinSearchProfile(ProxProfile):
# success, the binary search will complete on an integer multiple
# of the precision, rather than on a fraction of it.
- theor_max_thruput = actual_max_thruput = 0
+ theor_max_thruput = 0
result_samples = {}
- # Store one time only value in influxdb
- single_samples = {
+ test_data = {
"test_duration": traffic_gen.scenario_helper.scenario_cfg["runner"]["duration"],
"test_precision": self.params["traffic_profile"]["test_precision"],
"tolerated_loss": self.params["traffic_profile"]["tolerated_loss"],
"duration": duration
}
- self.queue.put(single_samples)
self.prev_time = time.time()
# throughput and packet loss from the most recent successful test
@@ -110,85 +116,88 @@ class ProxBinSearchProfile(ProxProfile):
neg_retry = 0
total_retry = 0
- LOG.info("Checking MAX %s MIN %s TEST %s",
- self.current_upper, self.lower_bound, test_value)
+ LOG.info("Checking MAX %s MIN %s TEST %s", self.current_upper,
+ self.lower_bound, test_value)
+
while (pos_retry <= ok_retry) and (neg_retry <= ok_retry):
total_retry = total_retry + 1
+
result, port_samples = self._profile_helper.run_test(pkt_size, duration,
test_value,
self.tolerated_loss,
line_speed)
- if (total_retry > (ok_retry * 3)) and (ok_retry is not 0):
- LOG.info("Failure.!! .. RETRY EXCEEDED ... decrease lower bound")
+ if (total_retry > (ok_retry * 3)) and (ok_retry is not 0):
+ status = STATUS_FAIL
+ next_step = STEP_DECREASE_LOWER
successful_pkt_loss = result.pkt_loss
- samples = result.get_samples(pkt_size, successful_pkt_loss, port_samples)
-
self.current_upper = test_value
neg_retry = total_retry
elif result.success:
if (pos_retry < ok_retry) and (ok_retry is not 0):
- neg_retry = 0
- LOG.info("Success! ... confirm retry")
-
+ status = STATUS_SUCCESS
+ next_step = STEP_CONFIRM
successful_pkt_loss = result.pkt_loss
- samples = result.get_samples(pkt_size, successful_pkt_loss, port_samples)
-
+ neg_retry = 0
else:
- LOG.info("Success! Increasing lower bound")
+ status = STATUS_SUCCESS
+ next_step = STEP_INCREASE_LOWER
self.current_lower = test_value
-
successful_pkt_loss = result.pkt_loss
- samples = result.get_samples(pkt_size, successful_pkt_loss, port_samples)
-
- # store results with success tag in influxdb
- success_samples = \
- {'Success_' + key: value for key, value in samples.items()}
-
- success_samples["Success_rx_total"] = int(result.rx_total)
- success_samples["Success_tx_total"] = int(result.tx_total)
- success_samples["Success_can_be_lost"] = int(result.can_be_lost)
- success_samples["Success_drop_total"] = int(result.drop_total)
- success_samples["Success_RxThroughput"] = samples["RxThroughput"]
- success_samples["Success_RxThroughput_gbps"] = \
- (samples["RxThroughput"] / 1000) * ((pkt_size + 20)* 8)
- LOG.info(">>>##>>Collect SUCCESS TG KPIs %s %s",
- datetime.datetime.now(), success_samples)
- self.queue.put(success_samples, True, overall_constants.QUEUE_PUT_TIMEOUT)
-
- # Store Actual throughput for result samples
- actual_max_thruput = success_samples["Success_RxThroughput"]
pos_retry = pos_retry + 1
else:
if (neg_retry < ok_retry) and (ok_retry is not 0):
-
+ status = STATUS_FAIL
+ next_step = STEP_CONFIRM
pos_retry = 0
- LOG.info("failure! ... confirm retry")
else:
- LOG.info("Failure... Decreasing upper bound")
+ status = STATUS_FAIL
+ next_step = STEP_DECREASE_UPPER
self.current_upper = test_value
neg_retry = neg_retry + 1
- samples = result.get_samples(pkt_size, successful_pkt_loss, port_samples)
+
+ LOG.info(
+ "Status = '%s' Next_Step = '%s'", status, next_step)
+
+ samples = result.get_samples(pkt_size, successful_pkt_loss, port_samples)
if theor_max_thruput < samples["TxThroughput"]:
theor_max_thruput = samples['TxThroughput']
- self.queue.put({'theor_max_throughput': theor_max_thruput})
-
- LOG.info(">>>##>>Collect TG KPIs %s %s", datetime.datetime.now(), samples)
+ samples['theor_max_throughput'] = theor_max_thruput
+
+ samples["rx_total"] = int(result.rx_total)
+ samples["tx_total"] = int(result.tx_total)
+ samples["can_be_lost"] = int(result.can_be_lost)
+ samples["drop_total"] = int(result.drop_total)
+ samples["RxThroughput_gbps"] = \
+ (samples["RxThroughput"] / 1000) * ((pkt_size + 20) * 8)
+ samples['Status'] = status
+ samples['Next_Step'] = next_step
samples["MAX_Rate"] = self.current_upper
samples["MIN_Rate"] = self.current_lower
samples["Test_Rate"] = test_value
samples["Step_Id"] = step_id
samples["Confirmation_Retry"] = total_retry
+
+ samples.update(test_data)
+
+ if status == STATUS_SUCCESS and next_step == STEP_INCREASE_LOWER:
+ # Store success samples for result samples
+ result_samples = samples
+
+ LOG.info(">>>##>>Collect TG KPIs %s %s", datetime.datetime.now(), samples)
+
self.queue.put(samples, True, overall_constants.QUEUE_PUT_TIMEOUT)
- LOG.info(">>>##>> Result Reached PktSize %s Theor_Max_Thruput %s Actual_throughput %s",
- pkt_size, theor_max_thruput, actual_max_thruput)
- result_samples["Result_pktSize"] = pkt_size
- result_samples["Result_theor_max_throughput"] = theor_max_thruput
- result_samples["Result_Actual_throughput"] = actual_max_thruput
+ LOG.info(
+ ">>>##>> Result Reached PktSize %s Theor_Max_Thruput %s Actual_throughput %s",
+ pkt_size, theor_max_thruput, result_samples.get("RxThroughput", 0))
+ result_samples["Status"] = STATUS_RESULT
+ result_samples["Next_Step"] = ""
+ result_samples["Actual_throughput"] = result_samples.get("RxThroughput", 0)
+ result_samples["theor_max_throughput"] = theor_max_thruput
self.queue.put(result_samples)
diff --git a/yardstick/tests/unit/network_services/traffic_profile/test_prox_binsearch.py b/yardstick/tests/unit/network_services/traffic_profile/test_prox_binsearch.py
index c062308e8..c09903377 100644
--- a/yardstick/tests/unit/network_services/traffic_profile/test_prox_binsearch.py
+++ b/yardstick/tests/unit/network_services/traffic_profile/test_prox_binsearch.py
@@ -71,38 +71,43 @@ class TestProxBinSearchProfile(unittest.TestCase):
self.assertEqual(len(runs), 77)
# Result Samples inc theor_max
- result_tuple = {'Result_Actual_throughput': 5e-07,
- 'Result_theor_max_throughput': 7.5e-07,
- 'Result_pktSize': 200}
-
- profile.queue.put.assert_called_with(result_tuple)
-
- success_result_tuple = {"Success_CurrentDropPackets": 0.5,
- "Success_DropPackets": 0.5,
- "Success_LatencyAvg": 5.3,
- "Success_LatencyMax": 5.2,
- "Success_LatencyMin": 5.1,
- "Success_PktSize": 200,
- "Success_RxThroughput": 7.5e-07,
- "Success_Throughput": 7.5e-07,
- "Success_TxThroughput": 0.00012340000000000002}
+ result_tuple = {'Actual_throughput': 5e-07,
+ 'theor_max_throughput': 7.5e-07,
+ 'PktSize': 200,
+ 'Status': 'Result'}
+
+ test_results = profile.queue.put.call_args[0]
+ for k in result_tuple:
+ self.assertEqual(result_tuple[k], test_results[0][k])
+
+ success_result_tuple = {"CurrentDropPackets": 0.5,
+ "DropPackets": 0.5,
+ "LatencyAvg": 5.3,
+ "LatencyMax": 5.2,
+ "LatencyMin": 5.1,
+ "PktSize": 200,
+ "RxThroughput": 7.5e-07,
+ "Throughput": 7.5e-07,
+ "TxThroughput": 0.00012340000000000002,
+ "Status": 'Success'}
calls = profile.queue.put(success_result_tuple)
profile.queue.put.assert_has_calls(calls)
- success_result_tuple2 = {"Success_CurrentDropPackets": 0.5,
- "Success_DropPackets": 0.5,
- "Success_LatencyAvg": 5.3,
- "Success_LatencyMax": 5.2,
- "Success_LatencyMin": 5.1,
- "Success_PktSize": 200,
- "Success_RxThroughput": 7.5e-07,
- "Success_Throughput": 7.5e-07,
- "Success_TxThroughput": 123.4,
- "Success_can_be_lost": 409600,
- "Success_drop_total": 20480,
- "Success_rx_total": 4075520,
- "Success_tx_total": 4096000}
+ success_result_tuple2 = {"CurrentDropPackets": 0.5,
+ "DropPackets": 0.5,
+ "LatencyAvg": 5.3,
+ "LatencyMax": 5.2,
+ "LatencyMin": 5.1,
+ "PktSize": 200,
+ "RxThroughput": 7.5e-07,
+ "Throughput": 7.5e-07,
+ "TxThroughput": 123.4,
+ "can_be_lost": 409600,
+ "drop_total": 20480,
+ "rx_total": 4075520,
+ "tx_total": 4096000,
+ "Status": 'Success'}
calls = profile.queue.put(success_result_tuple2)
profile.queue.put.assert_has_calls(calls)
@@ -183,17 +188,16 @@ class TestProxBinSearchProfile(unittest.TestCase):
# Result Samples
- result_tuple = {'Result_Actual_throughput': 0, "Result_theor_max_throughput": 0,
- "Result_pktSize": 200}
+ result_tuple = {'Actual_throughput': 0, 'theor_max_throughput': 0,
+ "Status": 'Result', "Next_Step": ''}
profile.queue.put.assert_called_with(result_tuple)
# Check for success_ tuple (None expected)
calls = profile.queue.put.mock_calls
for call in calls:
for call_detail in call[1]:
- for k in call_detail:
- if "Success_" in k:
- self.assertRaises(AttributeError)
+ if call_detail["Status"] == 'Success':
+ self.assertRaises(AttributeError)
def test_execute_4(self):
@@ -237,38 +241,43 @@ class TestProxBinSearchProfile(unittest.TestCase):
self.assertEqual(len(runs), 7)
# Result Samples inc theor_max
- result_tuple = {'Result_Actual_throughput': 5e-07,
- 'Result_theor_max_throughput': 7.5e-07,
- 'Result_pktSize': 200}
-
- profile.queue.put.assert_called_with(result_tuple)
-
- success_result_tuple = {"Success_CurrentDropPackets": 0.5,
- "Success_DropPackets": 0.5,
- "Success_LatencyAvg": 5.3,
- "Success_LatencyMax": 5.2,
- "Success_LatencyMin": 5.1,
- "Success_PktSize": 200,
- "Success_RxThroughput": 7.5e-07,
- "Success_Throughput": 7.5e-07,
- "Success_TxThroughput": 0.00012340000000000002}
+ result_tuple = {'Actual_throughput': 5e-07,
+ 'theor_max_throughput': 7.5e-07,
+ 'PktSize': 200,
+ "Status": 'Result'}
+
+ test_results = profile.queue.put.call_args[0]
+ for k in result_tuple:
+ self.assertEqual(result_tuple[k], test_results[0][k])
+
+ success_result_tuple = {"CurrentDropPackets": 0.5,
+ "DropPackets": 0.5,
+ "LatencyAvg": 5.3,
+ "LatencyMax": 5.2,
+ "LatencyMin": 5.1,
+ "PktSize": 200,
+ "RxThroughput": 7.5e-07,
+ "Throughput": 7.5e-07,
+ "TxThroughput": 0.00012340000000000002,
+ "Status": 'Success'}
calls = profile.queue.put(success_result_tuple)
profile.queue.put.assert_has_calls(calls)
- success_result_tuple2 = {"Success_CurrentDropPackets": 0.5,
- "Success_DropPackets": 0.5,
- "Success_LatencyAvg": 5.3,
- "Success_LatencyMax": 5.2,
- "Success_LatencyMin": 5.1,
- "Success_PktSize": 200,
- "Success_RxThroughput": 7.5e-07,
- "Success_Throughput": 7.5e-07,
- "Success_TxThroughput": 123.4,
- "Success_can_be_lost": 409600,
- "Success_drop_total": 20480,
- "Success_rx_total": 4075520,
- "Success_tx_total": 4096000}
+ success_result_tuple2 = {"CurrentDropPackets": 0.5,
+ "DropPackets": 0.5,
+ "LatencyAvg": 5.3,
+ "LatencyMax": 5.2,
+ "LatencyMin": 5.1,
+ "PktSize": 200,
+ "RxThroughput": 7.5e-07,
+ "Throughput": 7.5e-07,
+ "TxThroughput": 123.4,
+ "can_be_lost": 409600,
+ "drop_total": 20480,
+ "rx_total": 4075520,
+ "tx_total": 4096000,
+ "Status": 'Success'}
calls = profile.queue.put(success_result_tuple2)
profile.queue.put.assert_has_calls(calls)