Ensure more updates can fit in the queue, allow scaling to 20 variables on 1000 interfaces

This commit is contained in:
Pim van Pelt
2021-09-05 18:17:05 +00:00
parent 2e7aa607e4
commit 238471d25f
2 changed files with 11 additions and 1 deletions

View File

@ -68,7 +68,7 @@ class Agent(object):
pass
def start(self):
update_queue = queue.Queue(maxsize=20)
update_queue = queue.Queue(maxsize=20000) # 1000 interfaces, 20 variables each
self.setup()
# Start Updaters
for u in self._updater_list:

View File

@ -26,6 +26,15 @@ class ifName(pyagentx.Updater):
self.set_OCTETSTRING(str(i + 1), vppstat['/if/names'][i])
class ifIndex(pyagentx.Updater):
def update(self):
global vppstat
vppstat.connect()
for i in range(len(vppstat['/if/names'])):
self.set_INTEGER(str(i + 1), i + 1)
class ifType(pyagentx.Updater):
def update(self):
global vppstat
@ -307,6 +316,7 @@ class MyAgent(pyagentx.Agent):
def setup(self):
# iso.org.dod.internet.mgmt.mib_2.interfaces.ifTable.ifEntry
self.register('1.3.6.1.2.1.2.2.1.1', ifIndex)
self.register('1.3.6.1.2.1.2.2.1.2', ifName)
self.register('1.3.6.1.2.1.2.2.1.3', ifType)
self.register('1.3.6.1.2.1.2.2.1.9', ifCounterDiscontinuityTime)