From ea28496beab48a1fcca58184b73b24af491d4704 Mon Sep 17 00:00:00 2001 From: Kyle Manna Date: Tue, 13 Aug 2013 12:02:49 -0700 Subject: console: Add support for displaying elapsed time * Display the elapsed time in the the response row. * Very handy for passive performance analysis. --- libmproxy/console/common.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'libmproxy/console/common.py') diff --git a/libmproxy/console/common.py b/libmproxy/console/common.py index 187a755f..90a23eaa 100644 --- a/libmproxy/console/common.py +++ b/libmproxy/console/common.py @@ -144,6 +144,9 @@ def raw_format_flow(f, focus, extended, padding): if f["resp_ctype"]: resp.append(fcol(f["resp_ctype"], rc)) resp.append(fcol(f["resp_clen"], rc)) + + resp.append(fcol(f["resp_et"], "time")) + elif f["err_msg"]: resp.append(fcol(SYMBOL_RETURN, "error")) resp.append( @@ -185,11 +188,15 @@ def format_flow(f, focus, extended=False, hostheader=False, padding=2): contentdesc = "[content missing]" else: contentdesc = "[no content]" + + delta = f.response.timestamp_end - f.request.timestamp_start + d.update(dict( resp_code = f.response.code, resp_is_replay = f.response.is_replay(), resp_acked = f.response.reply.acked, - resp_clen = contentdesc + resp_clen = contentdesc, + resp_et = "{0:2.0f}ms".format(delta * 1000), )) t = f.response.headers["content-type"] if t: -- cgit v1.2.3 From 41041159f6d9b260d0d1c95d42b1dd4f14b7f0cb Mon Sep 17 00:00:00 2001 From: Kyle Manna Date: Tue, 13 Aug 2013 16:29:57 -0700 Subject: console: Add support for displaying transfer rate * Display the rate in the the response row. * Very handy for passive performance analysis. --- libmproxy/console/common.py | 3 +++ 1 file changed, 3 insertions(+) (limited to 'libmproxy/console/common.py') diff --git a/libmproxy/console/common.py b/libmproxy/console/common.py index 90a23eaa..74830237 100644 --- a/libmproxy/console/common.py +++ b/libmproxy/console/common.py @@ -146,6 +146,7 @@ def raw_format_flow(f, focus, extended, padding): resp.append(fcol(f["resp_clen"], rc)) resp.append(fcol(f["resp_et"], "time")) + resp.append(fcol(f["resp_rate"], "highlight")) elif f["err_msg"]: resp.append(fcol(SYMBOL_RETURN, "error")) @@ -190,6 +191,7 @@ def format_flow(f, focus, extended=False, hostheader=False, padding=2): contentdesc = "[no content]" delta = f.response.timestamp_end - f.request.timestamp_start + rate = utils.pretty_size(len(f.response.content) / delta) d.update(dict( resp_code = f.response.code, @@ -197,6 +199,7 @@ def format_flow(f, focus, extended=False, hostheader=False, padding=2): resp_acked = f.response.reply.acked, resp_clen = contentdesc, resp_et = "{0:2.0f}ms".format(delta * 1000), + resp_rate = "{0}/s".format(rate), )) t = f.response.headers["content-type"] if t: -- cgit v1.2.3 From a2643b52f909719d4e0fe97e17d3d30f43669341 Mon Sep 17 00:00:00 2001 From: Aldo Cortesi Date: Fri, 23 Aug 2013 10:01:19 +1200 Subject: Tweak timing display - Remove elapsed time. Space is at a premium here, and this is somewhat redundant with the rate figure. We should display complete timing information somewhere in the detailed flow view. - Tone down the colour. Reserve highlights for stuff that should really pop out to the user. - Make rate calculation more acurate. Include header sizes. Use response start and end time, rather than request end and response end. This means that we show actual transfer rates, not including DNS requests and so forth. --- libmproxy/console/common.py | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) (limited to 'libmproxy/console/common.py') diff --git a/libmproxy/console/common.py b/libmproxy/console/common.py index 74830237..006303a7 100644 --- a/libmproxy/console/common.py +++ b/libmproxy/console/common.py @@ -144,9 +144,7 @@ def raw_format_flow(f, focus, extended, padding): if f["resp_ctype"]: resp.append(fcol(f["resp_ctype"], rc)) resp.append(fcol(f["resp_clen"], rc)) - - resp.append(fcol(f["resp_et"], "time")) - resp.append(fcol(f["resp_rate"], "highlight")) + resp.append(fcol(f["resp_rate"], rc)) elif f["err_msg"]: resp.append(fcol(SYMBOL_RETURN, "error")) @@ -190,15 +188,15 @@ def format_flow(f, focus, extended=False, hostheader=False, padding=2): else: contentdesc = "[no content]" - delta = f.response.timestamp_end - f.request.timestamp_start - rate = utils.pretty_size(len(f.response.content) / delta) + delta = f.response.timestamp_end - f.response.timestamp_start + size = len(f.response.content) + f.response.get_header_size() + rate = utils.pretty_size(size / delta) d.update(dict( resp_code = f.response.code, resp_is_replay = f.response.is_replay(), resp_acked = f.response.reply.acked, resp_clen = contentdesc, - resp_et = "{0:2.0f}ms".format(delta * 1000), resp_rate = "{0}/s".format(rate), )) t = f.response.headers["content-type"] -- cgit v1.2.3