Conversation
…tead of per node Batch service tracker changes so telemetryd builds all connector configs in a change and publishes once per location. Interpolated parameters are computed once and the duplicate connector guard works.
…S-20352 # Conflicts: # opennms-dao/src/main/java/org/opennms/netmgt/dao/support/DefaultServiceTracker.java # opennms-dao/src/test/java/org/opennms/netmgt/dao/support/DefaultServiceTrackerTest.java
marshallmassengill
left a comment
There was a problem hiding this comment.
Approving but there are some minor things we may want to fix since we're in here:
- Failed config build drops the node permanently. ConnectorManager.java:116. Verified: node 0 never republished after later changes. Retry failed refs on the next update call; don't rethrow.
- Failed publish retries only on a change in that location. ConnectorManager.java:136. Verified: no-change refreshes and other-location changes don't retry. Acceptable; a retry timer would close it.
- HashMap order churns twin patches. LocationPublisher.java:43. Verified: adding 3 configs across a resize = 567 ops at 190 nodes, 2289 at 1530; LinkedHashMap = 3.
- Per-service publish/remove are dead in production. OpenConfigTwinPublisher.java:33. Verified: only the openconfig itest calls them.
Handled these review comments. Retrying publish failures should be handled at the Twin layer. Will do that in a separate issue. |
|
Created https://opennms.atlassian.net/browse/NMS-20385 as follow-ups |
All three depend on DefaultFilterWatcher.refreshNow(), which does nothing unless the filter results actually changed
|
Publish telemetryd connector configs once per location instead of per node.
Batch service tracker changes so telemetryd builds all connector configs in a change and publishes once per location. Interpolated parameters are computed once
Fixes startup time with Telemetryd
External References