X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;ds=sidebyside;f=apt_p2p_Khashmir%2Fstats.py;h=5ed7e6d42622b5193d40df4b75da4480ffd7b9ad;hb=52a1d47b47a4f68ee189d0ae7e67dfb815d7258a;hp=126099c08c118902f3618e99c7bf2b61e1f11334;hpb=2f3c17ab7b51cbad0abf11fa66f6cafcb5a41c5e;p=quix0rs-apt-p2p.git diff --git a/apt_p2p_Khashmir/stats.py b/apt_p2p_Khashmir/stats.py index 126099c..5ed7e6d 100644 --- a/apt_p2p_Khashmir/stats.py +++ b/apt_p2p_Khashmir/stats.py @@ -141,13 +141,24 @@ class StatsLogger: # Actions out.write("\n") - out.write("\n") + out.write("") + out.write("") + out.write("\n") actions = self.actions.keys() actions.sort() for action in actions: out.write("") - for i in xrange(6): + for i in xrange(7): out.write("") + for i in xrange(3): + count = self.actions[action][i+2] + if count > 0: + total_delay = self.actions[action][i+7] + avg_delay = total_delay / count + avg_delay_sec = avg_delay.days*86400.0 + avg_delay.seconds + avg_delay.microseconds/1000000.0 + else: + avg_delay_sec = 0.0 + out.write("" % avg_delay_sec) out.write('\n') out.write("

Actions

StartedSentOKFailedReceivedError

Actions

StartedSentSuccessfulFailedCompletedReceivedErrorSuccessful DelayFailed DelayTotal Delay
" + action + "" + str(self.actions[action][i]) + "%0.2f
\n") out.write("\n") @@ -161,7 +172,7 @@ class StatsLogger: @param action: the name of the action """ - act = self.actions.setdefault(action, [0, 0, 0, 0, 0, 0]) + act = self.actions.setdefault(action, [0, 0, 0, 0, 0, 0, 0, timedelta(), timedelta(), timedelta()]) act[0] += 1 #{ Called by the transport @@ -170,47 +181,61 @@ class StatsLogger: @param action: the name of the action """ - act = self.actions.setdefault(action, [0, 0, 0, 0, 0, 0]) + act = self.actions.setdefault(action, [0, 0, 0, 0, 0, 0, 0, timedelta(), timedelta(), timedelta()]) act[1] += 1 - def responseAction(self, response, action): + def responseAction(self, response, action, start): """Record that a response to an action was received. @param response: the response @param action: the name of the action + @param start: the time the action was started @return: the response (for use in deferreds) """ - act = self.actions.setdefault(action, [0, 0, 0, 0, 0, 0]) + act = self.actions.setdefault(action, [0, 0, 0, 0, 0, 0, 0, timedelta(), timedelta(), timedelta()]) act[2] += 1 + act[7] += datetime.now() - start return response - def failedAction(self, response, action): + def failedAction(self, response, action, start): """Record that a failed response to an action was received. @param response: the response @param action: the name of the action + @param start: the time the action was started @return: the response (for use in deferreds) """ - act = self.actions.setdefault(action, [0, 0, 0, 0, 0, 0]) + act = self.actions.setdefault(action, [0, 0, 0, 0, 0, 0, 0, timedelta(), timedelta(), timedelta()]) act[3] += 1 + act[8] += datetime.now() - start return response + def completedAction(self, action, start): + """Record that an action was completed. + + @param action: the name of the action + @param start: the time the action was started + """ + act = self.actions.setdefault(action, [0, 0, 0, 0, 0, 0, 0, timedelta(), timedelta(), timedelta()]) + act[4] += 1 + act[9] += datetime.now() - start + def receivedAction(self, action): """Record that an action was received. @param action: the name of the action """ self.reachable = True - act = self.actions.setdefault(action, [0, 0, 0, 0, 0, 0]) - act[4] += 1 + act = self.actions.setdefault(action, [0, 0, 0, 0, 0, 0, 0, timedelta(), timedelta(), timedelta()]) + act[5] += 1 def errorAction(self, action): """Record that a received action resulted in an error. @param action: the name of the action """ - act = self.actions.setdefault(action, [0, 0, 0, 0, 0, 0]) - act[5] += 1 + act = self.actions.setdefault(action, [0, 0, 0, 0, 0, 0, 0, timedelta(), timedelta(), timedelta()]) + act[6] += 1 def sentBytes(self, bytes): """Record that a single packet of some bytes was sent.