Hi Devs, I'm planning to implement a framework for monitoring latency statistics of Axis2 server. The key purpose of this framework is to monitor average time messages spend inside Axis2 server. Here is the summery of my approach.
1. Time t1 is recorded by the transport listener when a request message is received 2. Time t2 is recorded by the transport sender when the response message is sent back to the client 3. Latency is recorded as (t2 - t1) 4. Average latencies are made available via JMX. Statistics will be available on short term basis(last 1 minute, last 5 minutes, etc.) and long term basis(last 1 hour, last 5 hours, etc). To implement this, all the transport listeners and senders should report message arrival and departure to a central component that calculates statistics and publishes them via JMX MBeans. Short term and long term statistics will be available for in-transport name and out-transport name combinations. (statistics for http-in & http-out, statistics for jms-in & jms-out, etc.) Further, this framework will be extensible and able to record meaningful latencies when Axis2 is used in other projects such as Apache Synapse. Any thoughts are welcome. Thanks, -- Sadeep Jayasumana Software Engineer WSO2 Inc.
