REGEX_NIC = re.compile(r'(\d*ge\dp\d\D*\d*[a-z]*)-')
# This value depends on latency stream rate (9001 pps) and duration (5s).
-PERCENTILE_MAX = 99.9995
+PERCENTILE_MAX = 99.9999
def generate_plots(spec, data):
fig = plgo.Figure()
layout = deepcopy(plot[u"layout"])
- xaxis_max = 0
for color, graph in enumerate(graphs):
for idx, direction in enumerate((u"direction1", u"direction2")):
for item in decoded.get_recorded_iterator():
# The real value is "percentile".
- # For 100%, we cut that down to "x_perc" to avoid infinity.
+ # For 100%, we cut that down to "x_perc" to avoid
+ # infinity.
percentile = item.percentile_level_iterated_to
x_perc = min(percentile, PERCENTILE_MAX)
xaxis.append(previous_x)
hoverinfo=u"text"
)
)
- xaxis_max = max(xaxis) if xaxis_max < max(
- xaxis) else xaxis_max
layout[u"title"][u"text"] = f"<b>Latency:</b> {name}"
- layout[u"xaxis"][u"range"] = [0, int(log(xaxis_max, 10)) + 1]
+ layout[u"xaxis"][u"range"] = [
+ 0, round(log(100.0 / (100.0 - PERCENTILE_MAX), 10))
+ ]
fig.update_layout(layout)
# Create plot
titlefont:
size: 14
autorange: False
- fixedrange: False
+ fixedrange: True
gridcolor: "rgb(230, 230, 230)"
linecolor: "rgb(220, 220, 220)"
linewidth: 1
showline: True
showticklabels: True
tickcolor: "rgb(220, 220, 220)"
- tickvals: [1, 2, 1e1, 20, 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9]
- ticktext: [0, 50, 90, 95, 99, 99.9, 99.99, 99.999, 99.9999, 99.99999, 99.999999, 99.9999999]
+ tickvals: [1, 2, 1e1, 20, 1e2, 1e3, 1e4, 1e5, 1e6]
+ ticktext: [0, 50, 90, 95, 99, 99.9, 99.99, 99.999, 99.9999]
tickfont:
size: 14
yaxis: