70 likes | 182 Views
An HTTP Extension to provide Timing Data for Performance Measurement. Mike McCall, Akamai Technologies. State of the Art of Web Page Performance Measurement. Synthetic Tests WebPageTest , Jmeter Keynote, Gomez, Pingdom Etc. Real User Measurement Boomerang, Episodes
E N D
An HTTP Extension to provide Timing Data for Performance Measurement Mike McCall, Akamai Technologies
State of the Art of Web Page Performance Measurement Synthetic Tests WebPageTest, Jmeter Keynote, Gomez, Pingdom Etc. Real User Measurement Boomerang, Episodes Lognormal, New Relic Etc.
JavaScript-less RUM A Proposal: Couple metrics gathering and beaconing of real user measurement data with the HTTP session.
How it works • UserAgent sends a request header, Accept-Measurement, at the initiation of an HTTP session • Server negotiates with the UA to determine which measurements should be sent, as well as a TTL for the data collection • Assuming the negotiation is successful, once all measurements have been collected or the TTL has expired, the measurements are beaconed back in an HTTP POST with a Timing-Measurements header
Illustrative Use Case • GET /index.html HTTP/2.0Host: www.foo.comAccept-Measurement: allowed • HTTP/2.0 200 OKSend-Measurement: dns, firstByte, domReady, onLoad:30000 • Timing-Measurement-Collector: /beacon.gif • POST /beacon.gifHTTP/2.0Host: www.foo.comTiming-Measurements: dns:23;firstByte:120;domReady:1200;onLoad:1331 • HTTP/2.0 200 OK
Other Options Don’t want to POST data back to the initiating page? Specify the resource in a Timing-Measurements-Collector header. Want to override a collector on a per-page basis? Add a meta element to the HTML: <meta http-equiv=“Timing-Measurements-Collector” content=“http://bar.com/beacon.gif”> More here: http://tools.ietf.org/html/draft-mccall-httpbis-timing-measurements-00