From 2d92d1bca3259cf6e5dd89c153566706127deceb Mon Sep 17 00:00:00 2001 From: "R. Tyler Croy" Date: Fri, 25 Mar 2011 16:48:40 -0700 Subject: [PATCH] For all aggregate timing events, record an upper and lower bound, and a count --- aggregated.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/aggregated.py b/aggregated.py index a45f7c1..5045eda 100644 --- a/aggregated.py +++ b/aggregated.py @@ -55,14 +55,24 @@ class StatsServer(SocketServer.UDPServer): def _generate_timings(self): for label, points in self._timing_data.iteritems(): + lower = sys.maxint + upper = 0.0 total = 0.0 count = 0.0 for delta, tstamp in points: + if delta < lower: + lower = delta + if delta > upper: + upper = delta count += 1.0 total += delta now = int(time.time()) average = (total / count) - yield '%(label)s %(average)s %(now)s' % locals() + + yield '%(label)s.avg %(average)s %(now)s' % locals() + yield '%(label)s.lower %(lower)s %(now)s' % locals() + yield '%(label)s.upper %(upper)s %(now)s' % locals() + yield '%(label)s.count %(count)s %(now)s' % locals() def _clear_data(self): for d in (self._count_data, self._timing_data):