I have one package, one class but two methods (request and response) and want to calculate the time taken between the request sent and getting response.
I see two similiar graphs, one for request type and one for response type with similiar values for average response time at a particular time. Little difference in values.
How shall I check the time taken between the request and response ?
Is request() method subsequently making a call to response(), if yes then just instrumenting request() will give you time spent in response() + any extra time spent in request ().
If request() doesn't do any additional processing before calling response() then what you see on graphs would be expected, with little bit of time diff. for request() metric vs. response().
For single user profiling, you can Take help from "trace View".
Click on the "request" in trace view, you will get "Timestamp" value. That is actually the time when that particular method has been invoked out of full duration.
For e.g. a full trace duration is 8secs and value of timestamp is 2 secs. So it indicates that this method\class was invoked at 2 seconds out of full 8 secs time period. Duration will give you the time consumed by that method\class.
Hope it helps.
The code is developed using Blueprint and they are using CXF Endpoints of Fuse. Now this internally calls many java classes for request and response. We cannot instrument all the request and response classes because it will only give me the separate average response time of the particular request or response in the form of graph and not the overall response time. How shall we calculate the overall time taken and secondly how to show that in dashboard?
Have you tried enabling cross JVM fucnctionality ?
Though it will not contain things which are not isntrumented, but atleast the correlated data for instrumented data will be available in traces to stitch the story.
Can you please elaborate the cross JVM functionality ? How to enable that and what data can we get from that ?
This is from the APM Java Agent Guide
The CA Introscope® Java agent can trace transactions that cross JVM boundaries on WebLogic Server or WebSphere. The environment must be comprised of compatible versions of the application server by the same vendor. Cross-process transaction tracing is supported for synchronous transactions, for instance servlets to EJBs, and asynchronous transactions.
Important! Cross-process transaction tracing is available only with CA Introscope® 9.0 agents at a minimum.
Enable cross-process tracing in WebLogic Server
Enable cross-process tracing in WebSphere
You read further in the documentation as required
Hal German APM Support
Have you read further on Cross-JVM tracing?
This topic is totally unrelated to Cross-JVM tracing.
It's about asynchronous Web Service / HTTP request processing. The in parallel discussed monitoring solution for JBoss Fuse covers asynchronous round trip times for CXF WebServcies on the Consumer and Producer side.