kenliao94 commented on PR #1288:
URL: https://github.com/apache/activemq/pull/1288#issuecomment-3341439512
Actually thanks for the comment. I caught a bug. The TotalManaged counts
suppressed one as well. I,E `safeGetBroker().getTopicViews().size()` returns
suppressed ones as well
However, when I do more deep dive, It turns out that there is no map that
stores managed destinations. The getQueues() and getTopics() are doing the
filtering everytime it is called because of that. When a MBean is registered,
it internally invokes isAllowedToRegister to check if a given MBean can be
registered and register it if allowed. But instead of storing different maps
categorized by destination, it is a single map of all registered MBeans. Hence,
to get the total number of managed queue or topic, we need to iterate a list of
queue or topic and invoke isAllowedToRegister again every time (similar to how
onlyNonSuppressed work, it is not retrieving a cached value, but iterate over a
set and check everytime).
For now, I agree with your suggestion on exposing the APIs and what do that
suppose to mean. I changed the name of those metrics "NonSuppressed" ->
"Managed" and added the testcase to test for suppressed destination. The only
thing I rollback to, is that I need to first generate the array first and reads
the size, the inefficiency you initially pointed out.
```
@Override
public int getTotalManagedTopicsCount() {
return safeGetBroker().getTopicsNonSuppressed().length;
}
```
That said, I can follow up with another PR that changes the way how the
ManagementContext stores the registered destination, such that
getTotalManagedQueuesCount and getTotalManagedTopicsCount can be done by
reading a map size and it won't be a API / breaking change, so it can be done
in a patch version. WDYT? @mattrpav
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
For further information, visit: https://activemq.apache.org/contact