Table of contents
Navigation timings are taken by the browser and are now the recommended way to perform RUM measurements (when not using Ajax timings). They're defined here in details https://www.w3.org/TR/navigation-timing/
Ip-label RUM collects the following timings:
- DNS Response Time
- TCP connection time (code: 2029)
- Server response time (also know as Time to First byte, code: 2030)
- Page load (code: 2031)
- Full page load time (including external content, code 2032)
- Cumulated full page time (code: 2033)
The configuration variable performancetiming activates the collection of Navigation timings in RUM BI. The code is for example:
var rumbiConf={id:"yourID", performancetiming:5, PTOnly:1, i:9};
Legacy iplabel Onload metrics can be ignored with the option PTOnly:1
All modern browsers support Navigation timings as listed here http://caniuse.com/#feat=nav-timing
For example, the time to the server response (First byte, also known as TTFB) can be calculated as follows:
- If performancetiming = 5, all navigation timings as well as TTI are taken. Except the overall page load time, intermediate times are not cumulated: it is necessary to add "DNS Response Time" and "2 Connection Time" to "3 First Byte received" to have a cumulative TTFB
- If performancetiming = 2 , the start time should be deducted as follows: performance.timing.responseStart - startTimeDTM, with startTimeDTM = performance.timing.domainLookupStart if a DNS lookup was necessary, otherwise performance.timing.connectStart
- If performancetiming = 3 or 4 (no legacy metric), only the TTI (Time To Interactive) is uploaded. The TTI is an specific measurement (code = 2034) and is not impacted by the navigation timings throthling (ratio parameter).
- If performancetiming = 6, only the overall full page response time is taken.
- If performancetiming = 1, only Server response (2030), Full page download (2032) and cumulated page load (2033) are taken
The « domInteractive » event (or TTI = Time To Interactive) can better match user experience in situations where a lot of non visible external content is loaded (analytics, ads & banners, etc.). The TTI in the context of the Navigation timing » API is explained here:
https://www.w3.org/TR/2012/REC-navigation-timing-20121217/#dom-performancetiming-dominteractive
Note: the performance timings metrics can be 'throttled' with a specific ratio <100% to reduce billing impact
Note : this option is also required for particular 'asynchronous' deployment of the RUM BI tag, such as with tag management tools (Tag Commander...). For more details on loading the iplabel script asynchronously, see http://sf1.col.ip-label.net:8000/f/42c8124f3a/
Troubleshooting: Verification of measurements uploaded
Decode url: the page https://gx.ip-label.net/rumbi/decode.php allows to check the response times uploaded based on the encoded data send
- 2029 Connection (incremental)
- 2030 first byte (incremental)
- 2031 Base page (incremental)
- 2032 Full page (incremental)
- 2033 Overall Nav timing (cumulated)
- 2034 : TTI
For detailed explanations , see "debug and troubleshooting"
Comments