Ensure more updates can fit in the queue, allow scaling to 20 variables on 1000 interfaces
This commit is contained in:
@ -68,7 +68,7 @@ class Agent(object):
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
def start(self):
|
def start(self):
|
||||||
update_queue = queue.Queue(maxsize=20)
|
update_queue = queue.Queue(maxsize=20000) # 1000 interfaces, 20 variables each
|
||||||
self.setup()
|
self.setup()
|
||||||
# Start Updaters
|
# Start Updaters
|
||||||
for u in self._updater_list:
|
for u in self._updater_list:
|
||||||
|
@ -26,6 +26,15 @@ class ifName(pyagentx.Updater):
|
|||||||
self.set_OCTETSTRING(str(i + 1), vppstat['/if/names'][i])
|
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):
|
class ifType(pyagentx.Updater):
|
||||||
def update(self):
|
def update(self):
|
||||||
global vppstat
|
global vppstat
|
||||||
@ -307,6 +316,7 @@ class MyAgent(pyagentx.Agent):
|
|||||||
def setup(self):
|
def setup(self):
|
||||||
|
|
||||||
# iso.org.dod.internet.mgmt.mib_2.interfaces.ifTable.ifEntry
|
# 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.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.3', ifType)
|
||||||
self.register('1.3.6.1.2.1.2.2.1.9', ifCounterDiscontinuityTime)
|
self.register('1.3.6.1.2.1.2.2.1.9', ifCounterDiscontinuityTime)
|
||||||
|
Reference in New Issue
Block a user