mirror of
https://github.com/BOSWatch/BW3-Core.git
synced 2025-12-06 07:12:04 +01:00
add statistics for routers
This commit is contained in:
parent
512d72e97a
commit
c07237f2ea
|
|
@ -16,6 +16,7 @@
|
|||
"""
|
||||
import logging
|
||||
import copy
|
||||
import time
|
||||
|
||||
logging.debug("- %s loaded", __name__)
|
||||
|
||||
|
|
@ -28,6 +29,14 @@ class Router:
|
|||
@param name: name of the router"""
|
||||
self.name = name
|
||||
self.routeList = []
|
||||
|
||||
# for time counting
|
||||
self._cumTime = 0
|
||||
self._routerTime = 0
|
||||
|
||||
# for statistics
|
||||
self._runCount = 0
|
||||
|
||||
logging.debug("[%s] add new router", self.name)
|
||||
|
||||
def addRoute(self, route):
|
||||
|
|
@ -44,7 +53,11 @@ class Router:
|
|||
@param bwPacket: instance of Packet class
|
||||
@return a instance of Packet class
|
||||
"""
|
||||
self._runCount += 1
|
||||
tmpTime = time.time()
|
||||
|
||||
logging.debug("[%s] started", self.name)
|
||||
|
||||
for routeObject in self.routeList:
|
||||
logging.debug("[%s] -> run route: %s", self.name, routeObject.name)
|
||||
bwPacket_tmp = routeObject.callback(copy.deepcopy(bwPacket)) # copy bwPacket to prevent edit the original
|
||||
|
|
@ -59,4 +72,19 @@ class Router:
|
|||
bwPacket = bwPacket_tmp
|
||||
logging.debug("[%s] <- bwPacket returned: %s", self.name, bwPacket)
|
||||
logging.debug("[%s] finished", self.name)
|
||||
|
||||
self._routerTime = time.time() - tmpTime
|
||||
self._cumTime += self._routerTime
|
||||
|
||||
return bwPacket
|
||||
|
||||
|
||||
def _getStatistics(self):
|
||||
"""!Returns statistical information's from last router run
|
||||
|
||||
@return Statistics as pyton dict"""
|
||||
stats = {"type": "router",
|
||||
"runCount": self._runCount,
|
||||
"cumTime": self._cumTime,
|
||||
"moduleTime": self._routerTime}
|
||||
return stats
|
||||
|
|
|
|||
|
|
@ -141,6 +141,7 @@ class RouterManager:
|
|||
for name, routerObject in self._routerDict.items():
|
||||
lines.append("[" + name + "]")
|
||||
lines.append(" - Route points: " + str(len(routerObject.routeList)))
|
||||
lines.append(" - Runs: " + str(routerObject._getStatistics()['runCount']))
|
||||
for routePoint in routerObject.routeList:
|
||||
lines.append("[+] " + routePoint.name)
|
||||
if routePoint.statistics:
|
||||
|
|
|
|||
|
|
@ -78,7 +78,7 @@ Eine Auflistung der bereitgestellten Informationen findet sich im entsprechenden
|
|||
Bitte beachten:
|
||||
|
||||
- Selbst vom Modul hinzugefügte Felder **müssen** in der Modul Dokumentation unter `Paket Modifikation` aufgeführt werden.
|
||||
- Sollte ein Modul oder Plugin Felder benutzen, welche in einem anderen Modul erstellt werden, **muss** dies im Punkt `Abhänigkeiten` des jeweiligen Moduls oder Plugins zu dokumentieren.
|
||||
- Sollte ein Modul oder Plugin Felder benutzen, welche in einem anderen Modul erstellt werden, **muss** dies im Punkt `Abhänigkeiten` des jeweiligen Moduls oder Plugins dokumentiert werden.
|
||||
|
||||
### Zu beachten bei Module
|
||||
Module können Pakete beliebig verändern. Diese Änderungen werden im Router entsprechend weitergeleitet.
|
||||
|
|
|
|||
Loading…
Reference in a new issue