VMware’s Eran Dvir gives RabbitMQ users a peek at how a new plugin works that includes byte code instrumentation of the popular message queue software using the free Spring Insight tool.  Spring Insight is a free code monitoring tool that comes with the Spring Tool Suite or bundled with tc Server.

Both outgoing and received messages are covered are now supported. Received messages provide full traces of how the application interacts with the message sent helping to isolate latencies and errors more quickly, while out going messages provide about the exchange and routing-key in use which can speed troubleshooting configuration errors.  

To bring the point home, Dvir shares a screenshot of how the Spring Insight Dashboard illustrates an error set up in VMware’s Nanotrader application:

Dvir explains the screenshot:

As always, the Applications section in the UI lists the Nanotrader application endpoints. In fact, these endpoints designate a breakdown by exchange and routing-key of the various queues your application attaches to, providing a clear map of incoming message sources and their corresponding business logic flows.

By clicking on each of the endpoints you can browse the traces to conveniently figure out how your application behaves. In this example we can see the AMQP message meta-data and how it’s resolved into specific business logic – “save order” in this case. We can also see that a NullPointerException (NPE) was thrown and got logged in the trace by the plugin, coloring the endpoint in red.

For more information on how this plugin works, see the full article here.