New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Avoid redundant port counter collection from virtualized instances, such as Cisco VRF #1492
Conversation
i.e. in the case of VRF, the physical node is the master. Other modes of operation that are similar to VRF exist (including VDC).
…ances In the case of a master netbox, duplicate all collected port metrics across all instance netboxes when shipping to Graphite. In the case of a virtualized instance, just debug log a list of local ports (that do not appear on the master) and exit. There is _no_ collection of data from local ports at the moment, as this would require a complete restructuring of things (i.e collection from individual ports, rather than full column snmpwalks for the values we want)
instead, have the eventengine make copies of linkState events for master devices.
tests and doc updated.
i.e. in the case of VRF, the physical node is the master. Other modes of operation that are similar to VRF exist (including VDC).
…ances In the case of a master netbox, duplicate all collected port metrics across all instance netboxes when shipping to Graphite. In the case of a virtualized instance, just debug log a list of local ports (that do not appear on the master) and exit. There is _no_ collection of data from local ports at the moment, as this would require a complete restructuring of things (i.e collection from individual ports, rather than full column snmpwalks for the values we want)
instead, have the eventengine make copies of linkState events for master devices.
tests and doc updated.
Please pull my latest changes from https://github.com/jmbredal/nav/tree/vrf |
Reduce the number of redundant polls To achieve that how about:
I tried to identify the biggest gain on deduplication of specific MB: I agree, we should probably do the same for the 1minstats job, as that |
Remove redundant collection of system and sensor stats in cases of virtualized device instance
So, @mdiehm, @sigmunau has made changes to the I will look into making some UI changes, as requested above, but in the meantime, a new Debian packages is being built at https://ci.nav.uninett.no/job/dpkg-build-vrf/ as usual |
SeedDB is, IMNSHO, overdue for a rewrite. The way it's written makes it really hard to do anything useful outside of building tables of text strings. This hack will at least enable any custom templates to access the original model object of each row, instead of a list of dicts containing compressed attribute strings :-P
Implemented as a custom template overriding the row logic for netbox lists.
A new release is upon us this week. All committed changes to the PR work as a unit, and should not break existing functionality. We will therefore merge the PR to master before the release. Any further changes to the UI or polling plugins should go in a separate PR after the release (which means any further work is not likely to appear in 4.7, but 4.8). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not much to comment on, I have only briefly gone through the ipdevpoll-code and the rest looks perfectly fine. One very minor thing that optionally can be done.
Should conform to the bassackwards ways of SeedDB at large. | ||
""" | ||
try: | ||
value = reduce(getattr, attr.split('__'), obj) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Perhaps make it Python 3 compatible
http://python-future.org/compatible_idioms.html#reduce
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
will do, after merging :)
Fixes #1489
This pull request is not complete yet. A few adjustments are needed on the UI after feedback, and the entire functionality should be reviewed by @mdiehm.