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.

Reply via email to