From 06f80e44e3dd48164bee99296d5b2888378a317b Mon Sep 17 00:00:00 2001 From: Serhiy Pshyk Date: Fri, 17 Aug 2018 16:35:41 +0100 Subject: 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 --- ...rox_BM_L2FWD-4Port_MultiSize-1518452496550.json | 207 ++++++++++++--------- .../traffic_profile/prox_binsearch.py | 105 ++++++----- .../traffic_profile/test_prox_binsearch.py | 131 +++++++------ 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) -- cgit 1.2.3-korg