runpath += ".tar.gz" if not os.path.isfile(runpath): break # print "Reading {0} run {1}...".format(filename, run) sessions.append(Session.read(runpath)) run += 1 if len(sessions) == 0: # print "No runs in {0}".format(filename) continue # print "Analyzing {0}...".format(filename) for run_zerobased, session in enumerate(sessions): for VLClog in session.VLClogs: summary = PlainObject() summary.total_clients = 1 summary.rebuffering_ratio = VLClog.get_buffering_fraction() summary.avg_bitrate = VLClog.get_avg_bitrate() summary.avg_relative_bitrate = float(summary.avg_bitrate) / session.get_fairshare() * 100 summary.avg_quality_level = VLClog.get_avg_quality() summary.instability = VLClog.get_instability() summary.link_utilization = -1 if len(session.bwprofile) == 1: summary.link_utilization = ( float(session.bandwidth_eth2_toclients.get_avg_rate()) / session.bwprofile.values()[0] * 100 ) summary.avg_router_queue_len = session.bandwidth_buffer.get_avg_queue_len() if len(set(session.buffer_profile.values())) != 1: raise Exception("More to code if router buffer size is not constant!") summary.avg_relative_router_queue_len = ( float(summary.avg_router_queue_len) / session.buffer_profile.values()[0] * 100