url_response Metric Clarification

Document ID : KB000015777
Last Modified Date : 14/02/2018
Show Technical Document Details
Question:

Please clarify what some of the url_response metrics actually measure.

Answer:

QOS_URL_FIRSTBYTE_TIME
The url_response probe calculates QOS_URL_FIRSTBYTE_TIME in milliseconds based on the output of CURL API. It is the difference between CURLINFO_STARTTRANSFER_TIME and CURLINFO_CONNECT_TIME.  These are curl standard API flags.
•    CURLINFO_STARTTRANSFER_TIME gives the time in seconds from the start, (beginning), until the first byte is received.
•    CURLINFO_CONNECT_TIME give the total time in seconds from the start until the connection to the remote host, (or proxy), was completed.    
So QOS_URL_FIRSTBYTE_TIME starts after connecting to the remote host and stops after reaching the first byte.

QOS_URL_DOWNLOAD_TIME
This metric returns the difference between the curl API flags CURLINFO_TOTAL_TIME and CURLINFO_STARTTRANFER_TIME.
•    CURLINFO_TOTAL_TIME gives the total time in seconds for the previous transfer means until the last byte is received. It includes the DNS resolution time and TCP connection time also.
•    CURLINFO_STARTTRANSFER_TIME gives the time in second from the start(beginning) until the first byte is received. It also includes the DNS resolution time and TCP connection time.
QOS_URL_DOWNLOAD_TIME starts after the QOS_URL_FIRSTBYTE_TIME and runs till the last byte is received.

QOS_URL_RESPONSE
This metric is the total amount of time in milliseconds from beginning to the last transfer. QOS_URL_RESPONSE = (CURLINFO_TOTAL_TIME*1000).
CURLINFO_TOTAL_TIME is part of the curl API and is the total time in seconds for the previous transfer, including name resolving, TCP connect etc. It can be smaller than QOS_URL_FIRSTBYTE_TIME