Statistics is an important part of management IMHO.
We can divide statistics into two overall groups
- Container
- Resource adapter
where "Container" is statistics which aims at the core container. "Resource adapter" is statistics that is specific to a resource adapter.
While the "Container" part is important it is crucial to give vendors a way to expose statistics through IronJacamar. We have an example of this ourself - namely the JDBC resource adapter, so that can serve as a Proof-of-Concept.
Using modern datastructures to collect information doesn't impose a big overhead, so for now we will just hook statistics directly into the call stack.
A couple of points:
- A statistics plugin must provide a generic interface
- A statistics plugin must provide a way to enable / disable collection of information
- A statistics plugin must provide a way to clear collected information
- A statistics plugin must collect information in milliseconds
- A statistics plugin must use atomic datastructures as much as possible
While resource adapters will have to expose the statistics plugin to IronJacamar - we can do a solution for JDBC that is hidden inside the datasource deployer chain.
I'll code up a prototype of the above.