Imagine a finished system that runs (in the sense of there are no runtime bugs) that has lots of threads/routines with all kinds of message queues/channels that interact. I am wondering what kind of visualization tools exist that help me understand where possible bottlenecks are, which parts are active and where there is congestion?
The closest I can kind of think of is
VisualVM , but it is still kind of basic in the sense that it only gives visually access to stuff like fine grained memory usage, performance of subparts, which threads are active, idle, parked but does not give me a lot of insight in how the different system parts interact with one another.
I admit that I also don't know exactly what I am looking for and therefore don't know what I should be typing into my favorite search engine. I am sure somebody has built more elaborate tools in that direction and would like to hear your thoughts and suggestions of what I should be looking at.
So as an example, let's take a simple producer/consumer model on a channel. Let's say the producer is producing more stuff of than the consumer can take from the channel. One could imagine a node (consumer/producer) and a line (channel) visualization where one sees how active the producer/consumer is (via a red to green spectrum), maybe also one could zoom in to see which subpart is active and how full the channel is (maybe also via a red to green spectrum). That is just an example that came to mind in which the channel would be become dark red over time as it becomes "congested".
Keen to hear your thoughts/ideas.