[CalendarServer-changes] [7421] CalendarServer/trunk/contrib/performance/loadtest/profiles.py
source_changes at macosforge.org
source_changes at macosforge.org
Fri May 6 14:44:59 PDT 2011
Revision: 7421
http://trac.macosforge.org/projects/calendarserver/changeset/7421
Author: exarkun at twistedmatrix.com
Date: 2011-05-06 14:44:57 -0700 (Fri, 06 May 2011)
Log Message:
-----------
Report average scheduling latency in aggregate summary area
Modified Paths:
--------------
CalendarServer/trunk/contrib/performance/loadtest/profiles.py
Modified: CalendarServer/trunk/contrib/performance/loadtest/profiles.py
===================================================================
--- CalendarServer/trunk/contrib/performance/loadtest/profiles.py 2011-05-06 20:30:25 UTC (rev 7420)
+++ CalendarServer/trunk/contrib/performance/loadtest/profiles.py 2011-05-06 21:44:57 UTC (rev 7421)
@@ -37,6 +37,7 @@
from twisted.internet.task import LoopingCall
from twisted.web.http import PRECONDITION_FAILED
+from stats import mean, median
from loadtest.logger import SummarizingMixin
from loadtest.ical import IncorrectResponseCode
@@ -382,24 +383,34 @@
('>3sec', 8, '%8s'),
('mean', 8, '%8.4f'),
('median', 8, '%8.4f'),
+ ('avglag (ms)', 8, '%8.4f'),
]
def __init__(self):
self._perOperationTimes = {}
+ self._perOperationLags = {}
def observe(self, event):
if event.get("type") == "operation":
- if event.get('lag') is None:
+ lag = event.get('lag')
+ if lag is None:
event['lag'] = ''
else:
- event['lag'] = self.lagFormat % (event['lag'] * 1000.0,)
+ event['lag'] = self.lagFormat % (lag * 1000.0,)
print (self.formats[event[u'phase']] % event).encode('utf-8')
if event[u'phase'] == u'end':
dataset = self._perOperationTimes.setdefault(event[u'label'], [])
dataset.append((event[u'success'], event[u'duration']))
+ elif lag is not None:
+ dataset = self._perOperationLags.setdefault(event[u'label'], [])
+ dataset.append(lag)
+ def _summarizeData(self, operation, data):
+ avglag = mean(self._perOperationLags.get(operation, [0.0])) * 1000.0
+ return SummarizingMixin._summarizeData(self, operation, data) + (avglag,)
+
def report(self):
print
self.printHeader([
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20110506/6e8d91a4/attachment.html>
More information about the calendarserver-changes
mailing list