mirror of
https://github.com/KevinMidboe/mktxp-no-cli.git
synced 2025-12-08 20:38:48 +00:00
Queue tree / Active Users collectors, fixes
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
# coding=utf8
|
||||
## Copyright (c) 2020 Arseniy Kuznetsov
|
||||
## Copyright (c) 2020 Arseniy Kuznenowov
|
||||
##
|
||||
## This program is free software; you can redistribute it and/or
|
||||
## modify it under the terms of the GNU General Public License
|
||||
@@ -13,7 +13,8 @@
|
||||
|
||||
|
||||
from timeit import default_timer
|
||||
|
||||
from datetime import datetime
|
||||
from mktxp.cli.config.config import config_handler
|
||||
|
||||
class CollectorHandler:
|
||||
''' MKTXP Collectors Handler
|
||||
@@ -21,8 +22,18 @@ class CollectorHandler:
|
||||
def __init__(self, entries_handler, collector_registry):
|
||||
self.entries_handler = entries_handler
|
||||
self.collector_registry = collector_registry
|
||||
self.last_collect_timestamp = 0
|
||||
|
||||
def collect(self):
|
||||
now = datetime.now().timestamp()
|
||||
diff = now - self.last_collect_timestamp
|
||||
if diff < config_handler.system_entry().minimal_collect_interval:
|
||||
if config_handler.system_entry().verbose_mode:
|
||||
print(f'An attemp to collect metrics within minimal collection interval: {diff} < {config_handler.system_entry().minimal_collect_interval}')
|
||||
print('deferring..')
|
||||
return
|
||||
self.last_collect_timestamp = now
|
||||
|
||||
yield from self.collector_registry.bandwidthCollector.collect()
|
||||
|
||||
for router_entry in self.entries_handler.router_entries:
|
||||
@@ -36,3 +47,6 @@ class CollectorHandler:
|
||||
yield from collect_func(router_entry)
|
||||
router_entry.time_spent[collector_ID] += default_timer() - start
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -32,6 +32,8 @@ from mktxp.collector.capsman_collector import CapsmanCollector
|
||||
from mktxp.collector.bandwidth_collector import BandwidthCollector
|
||||
from mktxp.collector.firewall_collector import FirewallCollector
|
||||
from mktxp.collector.mktxp_collector import MKTXPCollector
|
||||
from mktxp.collector.user_collector import UserCollector
|
||||
from mktxp.collector.queue_collector import QueueTreeCollector
|
||||
|
||||
|
||||
class CollectorRegistry:
|
||||
@@ -65,6 +67,9 @@ class CollectorRegistry:
|
||||
self.register('WLANCollector', WLANCollector.collect)
|
||||
self.register('CapsmanCollector', CapsmanCollector.collect)
|
||||
|
||||
self.register('UserCollector', UserCollector.collect)
|
||||
self.register('QueueTreeCollector', QueueTreeCollector.collect)
|
||||
|
||||
self.register('MKTXPCollector', MKTXPCollector.collect)
|
||||
|
||||
def register(self, collector_ID, collect_func):
|
||||
|
||||
@@ -44,5 +44,7 @@ class RouterEntry:
|
||||
'RouteCollector': 0,
|
||||
'WLANCollector': 0,
|
||||
'CapsmanCollector': 0,
|
||||
'QueueTreeCollector': 0,
|
||||
'UserCollector': 0,
|
||||
'MKTXPCollector': 0
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user