Announcement Announcement Module
No announcement yet.
JMX performance monitoring Page Title Module
Move Remove Collapse
Conversation Detail Module
  • Filter
  • Time
  • Show
Clear All
new posts

  • JMX performance monitoring

    Hi ,
    We have a need to measure performance of our integration which starts from the inbound gateway in a flow which is currently entirely synchronous. I enabled the JMX MBean exporter and was able to check the performance of individual components like channels and endpoint etc which is all very good. My question is regard to how to measure the performance an integration flow/graph as a whole? I would think measuring the performance of the inbound gateway would be good enough if it is synchronous. But could not find a measurement associated with it. It only had an attribute to suggest if it was running. So would the measures for the request channel to the gateway be a good enough measure?

    The second part is I need to be able to categorize my messages based on a header and measure their performance which I believe warrants a custom MBean. Would you have any tips of this? Use a wiretap and evaluate message stats right after the inbound gateway?

    The third part, how does the above two change in case the gateway is async?


  • #2
    Maybe a ChannelInterceptor ??

    Start a StopWatch and store it in a Threadlocal<StopWatchHolder>; having started it in preSend(), and stopping in postSend().

    Your custom StopWatchHolder could also hold the type of the payload (for categorization). In postSend, after stopping the StopWatch, get it's time and the category and update a @ManagedAttribute or two (average, etc).

    Export your interceptor as a @ManagedResource and you should be all set.

    Sync Vs. Async won't make a difference.

    BTW, I am hosting a webinar "Managing and Monitoring Spring Integration Applications" on June 14th; I might try to include something like this if I have time.


    • #3
      Thank you, Gary! Will keep myself tuned to your webinar.