All Docs | Index

Boomerang Howto #9: Collect performance data from the Navigation Timing API

The W3C Navigation Timing API is an interface implemented by modern browsers that provides broad and deep data related to the performance of page loads. At the time of this writing, it is supported by the following browsers:

The navtiming.js plugin doesn't require any configuration options as it simply reads data out of the browser (if available) and adds it to the beacon query string.

You will have to build your own version of boomerang.js since it isn't one of the default plugins. To do this, run make in the boomerang directory with the following option:

make PLUGINS=navtiming.js

Then you can include the new boomerang file (don't forget to run it through your favorite Javascript minifier first) as you normally would.

The new query parameters and the browser attributes they map to are shown below. More information about the definition of each attribute can be found in the W3C Navigation Timing specification.

Boomerang beacon parameter Navigation Timing attribute
nt_red_cntwindow.performance.navigation.redirectCount
nt_nav_typewindow.performance.navigation.type
nt_nav_stwindow.performance.timing.navigationStart
nt_red_stwindow.performance.timing.redirectStart
nt_red_endwindow.performance.timing.redirectEnd
nt_fet_stwindow.performance.timing.fetchStart
nt_dns_stwindow.performance.timing.domainLookupStart
nt_dns_endwindow.performance.timing.domainLookupEnd
nt_con_stwindow.performance.timing.connectStart
nt_con_endwindow.performance.timing.connectEnd
nt_req_stwindow.performance.timing.requestStart
nt_res_stwindow.performance.timing.responseStart
nt_res_endwindow.performance.timing.responseEnd
nt_domloadingwindow.performance.timing.domLoading
nt_domintwindow.performance.timing.domInteractive
nt_domcontloaded_stwindow.performance.timing.domContentLoadedStart
nt_domcontloaded_endwindow.performance.timing.domContentLoadedEnd
nt_domcompwindow.performance.timing.domComplete
nt_load_stwindow.performance.timing.loadEventStart
nt_load_endwindow.performance.timing.loadEventEnd
nt_unload_stwindow.performance.timing.unloadEventStart
nt_unload_endwindow.performance.timing.unloadEventEnd