From 86ec9713ecde3d92ec4585d487ddfac5077428c8 Mon Sep 17 00:00:00 2001 From: Tibor Frank Date: Tue, 10 Oct 2023 08:14:18 +0000 Subject: [PATCH] C-Dash: Add bandwidth to trending graphs - NDRPDR tests only - MRR to be done when data is in parquets Change-Id: If2b1f76d5e2dc6f3a480eeb0950e7ab9550f8901 Signed-off-by: Tibor Frank --- .../cdash/data/_metadata/coverage_rls2302_device | Bin 0 -> 5373 bytes .../cdash/data/_metadata/coverage_rls2302_ndrpdr | Bin 0 -> 11868 bytes .../data/_metadata/iterative_rls2302_hoststack | Bin 0 -> 7882 bytes ...iterative_rls2210_mrr => iterative_rls2302_mrr} | Bin ...ive_rls2210_ndrpdr => iterative_rls2302_ndrpdr} | Bin .../app/cdash/data/_metadata/trending_ndrpdr | Bin 13999 -> 16091 bytes csit.infra.dash/app/cdash/data/data.py | 23 +++++++++++- csit.infra.dash/app/cdash/data/data.yaml | 7 ++++ csit.infra.dash/app/cdash/trending/graphs.py | 24 ++++++++++++- csit.infra.dash/app/cdash/trending/layout.py | 27 ++++++++++++-- csit.infra.dash/app/cdash/trending/layout.yaml | 40 +++++++++++++++++++++ csit.infra.dash/app/cdash/utils/constants.py | 6 ++++ 12 files changed, 122 insertions(+), 5 deletions(-) create mode 100644 csit.infra.dash/app/cdash/data/_metadata/coverage_rls2302_device create mode 100644 csit.infra.dash/app/cdash/data/_metadata/coverage_rls2302_ndrpdr create mode 100644 csit.infra.dash/app/cdash/data/_metadata/iterative_rls2302_hoststack rename csit.infra.dash/app/cdash/data/_metadata/{iterative_rls2210_mrr => iterative_rls2302_mrr} (100%) rename csit.infra.dash/app/cdash/data/_metadata/{iterative_rls2210_ndrpdr => iterative_rls2302_ndrpdr} (100%) diff --git a/csit.infra.dash/app/cdash/data/_metadata/coverage_rls2302_device b/csit.infra.dash/app/cdash/data/_metadata/coverage_rls2302_device new file mode 100644 index 0000000000000000000000000000000000000000..f619ce8a8ef6ca8add01b94c973a23c3e3f865ec GIT binary patch literal 5373 zcmd5=>u%y!5Jufwt8V{wS4q_$5z_wJ3z&p#*nbBSjAbB0`!mhkN1{@=yS-eX_yn~wJEdFI*E z7vJnX7>wwP%=yom3|~K@p=BFs%C|-s+y>FuOcTFH;>7fPYvd;M45)iN)_mVIxUMIG z=?Ayginb?fn-IfyOm5x8!^qUUL^p~(az<{@Pg5QkS`@FJXZD}&ze4-2q4|4%{_r7d zxrRBr)kk*dxPJEC!LJ{(L!iN1*3;acnSFJTbv4HXf*aa4to%Up0$AqR`)CZW0(&*t z>)mg#;QDTvax+%Ds->@ ztm%Td<@Rvz&2{zlN%k%UW)(#iGKvaTU?jv(#o-4Ynp?$zQM!8taAM!GtX4K{Ey(w4 zEvdszgK5tF+l(uAyV(@;el7EZv}trnU$aL?BOArtm4ZU5skz8VRn$f%m1#&8n^iW^d$Ky0#^}mK&U`#TJf7=-ei|Sc||W zGV%=5GqL-0HQP7uRt^%jx=mCG^$P%Et#%X9g8T&_L9gEg6caxa9M=CmQwv5OYs;~v@%e?2BU0{>Dj_{m=`mWlyuzO%@od4rAR=GGC)2|C5+PFp``|AssT_e$T!V!n z$d}(rjvcC^eAF&9C$uI9)NNQ7R+*Yn-P4rfP#TPSl3VXn$FL=9+LN4OpDH&f6B^3Q zKd%r=KWz1N_X=oa8m}jMMLL#F&wQy;pBth)MLmtSU?9I!DEWpWgzW;it+p37!;T`@ zC`(=0rxmoPj#XtgY!|lJ6{~=~I&UAgin@rHh-E0nG3Xzv?#93*3TGgHv7^sn zkAa@Q(8GH$nX&$ISRX=-W33%aqS~jmrrm9CoSCAkRHI$}#Z=_J&d<@dS{%T6wADfh z&S|qxImRu$+76A=9`A{(JrDbeK;=?Ok34604D>mP?#jV}_tn%;eE%QTZOH!w>Vw_6RJ1MKsYWKh>!v2u zmF|=dd4FA=RqXAJYbk70j%Jbz^_adNmS-OB2q`)rkgyTeOE~J_%tLDNy$fSe1xF)^ zRDg4aV^I~yql+sTiz-JrI}LEG64{s};d+Eh&XRcxSeG!b;qvO{23bw~D6^ppHYQI4 ziE!@>Nyy~c{?mj@$SEi}!DShM5Ym{Ja=DU@qaf1CE!4**HADvw)6d?RDN&eEx5c2r zeqi?EIS({5DZUF|ZxX!Zj1g;>Z*#fhd2Iiz3PUFN$Mj>QVypOufgpsPWyS$0U>xkR zxf56%)Djwslku889qr99r07bAl&7SDM!;^eGx3+%!$Ek-f~=rajo&3~CSto_E{^5+ zUlw1`KSg?t&$~>3$G3U?65=f_V{bcKj2BA z!+ta!+MiJlS@L1MY;`W)6J{B8vHVN!IY`D4W7}j%z+gEzSio z(OxQ_+#ZVud&NCG9_8hH#o$+lXs_@w|4>%s^CW7Tqdepj^0&+<(7{*|6v!t^GAGmc zS!v>&jH2Kd!{$^ZZW literal 0 HcmV?d00001 diff --git a/csit.infra.dash/app/cdash/data/_metadata/coverage_rls2302_ndrpdr b/csit.infra.dash/app/cdash/data/_metadata/coverage_rls2302_ndrpdr new file mode 100644 index 0000000000000000000000000000000000000000..06bc618bea759c9adf728ec036618dad6905dae2 GIT binary patch literal 11868 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 qi%Na5JQvQeVWVf"]), + pd.api.types.is_string_dtype(itm["telemetry"][0]) + )): print(pa.Schema.from_pandas(itm)) pa.parquet.write_metadata( pa.Schema.from_pandas(itm), @@ -357,6 +366,18 @@ class Data: time_period = days else: time_period = None + + if GENERATE_SCHEMA: + # Generate schema: + Data._write_parquet_schema( + path=data_set["path"], + partition_filter=partition_filter, + columns=data_set.get("columns", None), + days=time_period + ) + return + + # Read data: data = Data._create_dataframe_from_parquet( path=data_set["path"], partition_filter=partition_filter, diff --git a/csit.infra.dash/app/cdash/data/data.yaml b/csit.infra.dash/app/cdash/data/data.yaml index 427821d33c..f8c00731cf 100644 --- a/csit.infra.dash/app/cdash/data/data.yaml +++ b/csit.infra.dash/app/cdash/data/data.yaml @@ -26,6 +26,9 @@ - result_receive_rate_rate_avg - result_receive_rate_rate_stdev - result_receive_rate_rate_unit + # - result_receive_rate_bandwidth_avg + # - result_receive_rate_bandwidth_stdev + # - result_receive_rate_bandwidth_unit - telemetry - data_type: trending partition: test_type @@ -46,6 +49,10 @@ - result_pdr_lower_rate_value - result_ndr_lower_rate_unit - result_ndr_lower_rate_value + - result_pdr_lower_bandwidth_unit + - result_pdr_lower_bandwidth_value + - result_ndr_lower_bandwidth_unit + - result_ndr_lower_bandwidth_value - result_latency_reverse_pdr_90_hdrh - result_latency_reverse_pdr_50_hdrh - result_latency_reverse_pdr_10_hdrh diff --git a/csit.infra.dash/app/cdash/trending/graphs.py b/csit.infra.dash/app/cdash/trending/graphs.py index a1d61a07fc..fcfee26e3f 100644 --- a/csit.infra.dash/app/cdash/trending/graphs.py +++ b/csit.infra.dash/app/cdash/trending/graphs.py @@ -162,6 +162,12 @@ def graph_trending( f"latency [{row[C.UNIT['hoststack-latency']]}]: " f"{row[C.VALUE['hoststack-latency']]:,.0f}
" ) + elif ttype in ("ndr", "pdr"): # Add mrr + test_type = f"{ttype}-bandwidth" + add_info = ( + f"bandwidth [{row[C.UNIT[test_type]]}]: " + f"{row[C.VALUE[test_type]]:,.0f}
" + ) else: add_info = str() hover_itm = hover_itm.replace( @@ -295,6 +301,7 @@ def graph_trending( fig_tput = None fig_lat = None + fig_band = None y_units = set() for idx, itm in enumerate(sel): df = select_trending_data(data, itm) @@ -326,6 +333,19 @@ def graph_trending( fig_tput = go.Figure() fig_tput.add_traces(traces) + if ttype in ("ndr", "pdr"): # Add mrr + traces, _ = _generate_trending_traces( + f"{ttype}-bandwidth", + itm["id"], + df, + get_color(idx), + norm_factor + ) + if traces: + if not fig_band: + fig_band = go.Figure() + fig_band.add_traces(traces) + if itm["testtype"] == "pdr": traces, _ = _generate_trending_traces( "latency", @@ -346,10 +366,12 @@ def graph_trending( fig_layout["yaxis"]["title"] = \ f"Throughput [{'|'.join(sorted(y_units))}]" fig_tput.update_layout(fig_layout) + if fig_band: + fig_band.update_layout(layout.get("plot-trending-bandwidth", dict())) if fig_lat: fig_lat.update_layout(layout.get("plot-trending-lat", dict())) - return fig_tput, fig_lat + return fig_tput, fig_band, fig_lat def graph_tm_trending( diff --git a/csit.infra.dash/app/cdash/trending/layout.py b/csit.infra.dash/app/cdash/trending/layout.py index 84a68f5050..d08f911036 100644 --- a/csit.infra.dash/app/cdash/trending/layout.py +++ b/csit.infra.dash/app/cdash/trending/layout.py @@ -265,7 +265,7 @@ class Layout: dbc.Offcanvas( class_name="w-50", id="offcanvas-metadata", - title="Throughput And Latency", + title="Detailed Information", placement="end", is_open=False, children=[ @@ -646,9 +646,21 @@ class Layout: tab_items.append( dbc.Tab( children=dcc.Graph( - id={"type": "graph", "index": "lat"}, + id={"type": "graph", "index": "bandwidth"}, figure=graphs[1] ), + label="Bandwidth", + tab_id="tab-bandwidth" + ) + ) + + if graphs[2]: + tab_items.append( + dbc.Tab( + children=dcc.Graph( + id={"type": "graph", "index": "lat"}, + figure=graphs[2] + ), label="Latency", tab_id="tab-lat" ) @@ -1690,7 +1702,14 @@ class Layout: trigger = Trigger(callback_context.triggered) try: - idx = 0 if trigger.idx == "tput" else 1 + if trigger.idx == "tput": + idx = 0 + elif trigger.idx == "bandwidth": + idx = 1 + elif trigger.idx == "lat": + idx = 2 + else: + raise PreventUpdate graph_data = graph_data[idx]["points"][0] except (IndexError, KeyError, ValueError, TypeError): raise PreventUpdate @@ -1721,6 +1740,8 @@ class Layout: if trigger.idx == "tput": title = "Throughput" + elif trigger.idx == "bandwidth": + title = "Bandwidth" elif trigger.idx == "lat": title = "Latency" hdrh_data = graph_data.get("customdata", None) diff --git a/csit.infra.dash/app/cdash/trending/layout.yaml b/csit.infra.dash/app/cdash/trending/layout.yaml index 5e41b03118..2fcb206153 100644 --- a/csit.infra.dash/app/cdash/trending/layout.yaml +++ b/csit.infra.dash/app/cdash/trending/layout.yaml @@ -38,6 +38,46 @@ plot-trending-tput: hoverlabel: namelength: -1 +plot-trending-bandwidth: + autosize: True + showlegend: False + yaxis: + showticklabels: True + tickformat: ".3s" + title: "Bandwidth [bps]" + hoverformat: ".5s" + gridcolor: "rgb(238, 238, 238)" + linecolor: "rgb(238, 238, 238)" + showline: True + zeroline: False + tickcolor: "rgb(238, 238, 238)" + linewidth: 1 + showgrid: True + xaxis: + title: 'Date [MMDD]' + type: "date" + autorange: True + fixedrange: False + showgrid: True + gridcolor: "rgb(238, 238, 238)" + showline: True + linecolor: "rgb(238, 238, 238)" + zeroline: False + linewidth: 1 + showticklabels: True + tickcolor: "rgb(238, 238, 238)" + tickmode: "auto" + tickformat: "%m%d" + margin: + r: 20 + b: 0 + t: 5 + l: 70 + paper_bgcolor: "#fff" + plot_bgcolor: "#fff" + hoverlabel: + namelength: -1 + plot-trending-lat: autosize: True showlegend: False diff --git a/csit.infra.dash/app/cdash/utils/constants.py b/csit.infra.dash/app/cdash/utils/constants.py index 34892e79bc..fb887fe79e 100644 --- a/csit.infra.dash/app/cdash/utils/constants.py +++ b/csit.infra.dash/app/cdash/utils/constants.py @@ -229,6 +229,9 @@ class Constants: "mrr": "result_receive_rate_rate_avg", "ndr": "result_ndr_lower_rate_value", "pdr": "result_pdr_lower_rate_value", + "mrr-bandwidth": "result_receive_rate_bandwidth_avg", + "ndr-bandwidth": "result_ndr_lower_bandwidth_value", + "pdr-bandwidth": "result_pdr_lower_bandwidth_value", "latency": "result_latency_forward_pdr_50_avg", "hoststack-cps": "result_rate_value", "hoststack-rps": "result_rate_value", @@ -251,6 +254,9 @@ class Constants: "mrr": "result_receive_rate_rate_unit", "ndr": "result_ndr_lower_rate_unit", "pdr": "result_pdr_lower_rate_unit", + "mrr-bandwidth": "result_receive_rate_bandwidth_unit", + "ndr-bandwidth": "result_ndr_lower_bandwidth_unit", + "pdr-bandwidth": "result_pdr_lower_bandwidth_unit", "latency": "result_latency_forward_pdr_50_unit", "hoststack-cps": "result_rate_unit", "hoststack-rps": "result_rate_unit", -- 2.16.6