How to calculate response time?

How can i calculate total response time taken per request?

0 4 9,543
4 REPLIES 4

adas
Participant V

Hi @Veerendra Deshpande

If you are asking in general then you can either use time curl or curl with -w parameter like below:

time curl http://www.google.com -o /dev/null

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current

                                 Dload  Upload   Total   Spent    Left  Speed

100 19924    0 19924    0     0   112k      0 --:--:-- --:--:-- --:--:--  113k


real	0m0.179s
user	0m0.004s
sys	0m0.004s
curl -s -w "%{time_total}\n" -o /dev/null http://www.google.com

If your question is specific to apigee, then there are a few ways for you to get that information:

1. Trace UI: The transaction panel on the left hand side of the trace UI provides you the response time for each api call.

364-traceui.png

See attached screenshot

2. You can also get this information from Apigee Analytics. Go to Analytics menu option in the Edge UI and select Proxy Performance. You will get the average response times for your selected apis for a selected time range. You can break it down to minute, hour, week level. Note that this is just going to show you the average response time and not the response time for each call. See screenshot attached:

365-apigee-ax.png

Hope this answers your question. if you have any specific question, please post them here so that we can address them correctly.

Hi Arghya Das,Thanks for your response.but my question was how to calculate response time taken per request. after that we have to put this value in Header.

Not applicable

Here is a same Javascript policy code. I should be self explanatory

var client_start_time = context.getVariable('client.received.start.timestamp');
var target_start_time = context.getVariable('target.sent.start.timestamp');
var client_end_time = context.getVariable('system.timestamp');
var target_end_time = context.getVariable('target.received.end.timestamp');

if(target_start_time!=null && target_start_time != "" && target_end_time !=null && target_end_time!="" ){
    context.setVariable("total_request_time",(client_end_time-client_start_time)+'');
    context.setVariable("total_target_time", (target_end_time-target_start_time)+'');
}

i used a JS as the last execution policy in the target endpoint to find the difference between the (current timestamp - client.received.start.timestamp) and used it in the response.