in scripts/qlog_parser.py [0:0]
def parse_rec_metrics_updated(line):
# [2024/05/14 11:34:11 642348] [rec_metrics_updated]
# |scid:007cc254f81be8e78d765a2e63339fc99a66320d|xqc_send_ctl_on_ack_received|
# cwnd:47152|inflight:1384|mode:0|applimit:0|pacing_rate:1477151|bw:13370|srtt:89748|latest_rtt:89748|ctl_rttvar:0|pto_count:89748|min_rtt:6|send:0|lost:0|tlp:29|recv:47152|
data = {}
event_scid = "unknown"
segments = line.split('|')
segments = [segment.strip() for segment in segments]
assert(len(segments) > 1)
for i in range(1,len(segments)):
item = segments[i].split(':')
item = [i.strip() for i in item]
if(len(item) != 2):
continue
if item[0] == "scid":
event_scid = item[1]
elif item[0] == "cwnd":
data["congestion_window"] = int(item[1])
elif item[0] == "inflight":
data["bytes_in_flight"] = int(item[1])
elif item[0] == "pacing_rate":
data["pacing_rate"] = int(item[1])
elif item[0] == "pto_count":
data["pto_count"] = int(item[1])
elif item[0] == "ctl_rttvar":
data["rtt_variance"] = int(item[1])
elif item[0] == "min_rtt":
data["min_rtt"] = int(item[1])
elif item[0] == "latest_rtt":
data["latest_rtt"] = int(item[1])
return (data, event_scid)