Details
-
Enhancement
-
Resolution: Unresolved
-
Major
-
None
-
None
-
None
-
None
Description
Note: There is a work in progress already happening: https://github.com/infinispan/infispector
We know what kind of messages should be generated between nodes to perform specific operations - in theory -, still to debug problems of configuration or implementation on the whole stack (application + Infinispan + JGroups) we often need to look into the logs, having thousands of trace lines even when sampling for small periods of time.
It would be very useful to have a way to automatically extrapolate the interesting patterns out of a running system, we could collect reliable information for example using (just ideas):
- A custom JGroups protocol
- Byteman to instrument JGroups for specific events (like network socket usage, or thresholds being reached in internal structures like resend tables or threadpool sizes)
- Simple log file parsing
The collected information could then be used to generate condensed reports highlighting the patterns being used in practice to compare them with expected patterns.
I have two different kinds if output in mind:
- A graphical visualization, showing the cluster nodes and a sequence of colored arrows showcasing what is being done
- A short text representation, to be used by:
- automated tests to verify invariant expectations are not broken on code changes
- future possible tool to formally proof correctness / race conditions