edge 2016 measuring what matters

65
Measuring What Matters

Upload: akamaidevrel

Post on 14-Apr-2017

300 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Edge 2016 measuring what matters

Measuring What Matters

Page 2: Edge 2016 measuring what matters

© AKAMAI - EDGE 2016

Introductions

Cliff CrockerAkamai

Buddy BrewerSOASTA

Page 3: Edge 2016 measuring what matters

© AKAMAI - EDGE 2016

Three eras of modern performance measurement

2001-2006 Basically one browser

2007-2010 Transitional period

2011-2016 WTF just happened

Page 4: Edge 2016 measuring what matters

© AKAMAI - EDGE 2016

2001-2006: Internet Explorer 6

2001 - 2006

Page 5: Edge 2016 measuring what matters

© AKAMAI - EDGE 2016

2007-2010: Transitional period

2007

IE7iPhoneFirefox 2

2008 2009 2010

Page 6: Edge 2016 measuring what matters

© AKAMAI - EDGE 2016

2007-2010: Transitional period

2007

IE7iPhoneFirefox 2

2008

IE7iPhone 3GFirefox 3AndroidChrome 1

2009 2010

Page 7: Edge 2016 measuring what matters

© AKAMAI - EDGE 2016

2007-2010: Transitional period

2007

IE7iPhoneFirefox 2

2008

IE7iPhone 3GFirefox 3AndroidChrome 1

2009

IE8iPhone 3GSFirefox 3Android 2.1Chrome 1

2010

Page 8: Edge 2016 measuring what matters

© AKAMAI - EDGE 2016

2007-2010: Transitional period

2007

IE7iPhoneFirefox 2

2008

IE7iPhone 3GFirefox 3AndroidChrome 1

2009

IE8iPhone 3GSFirefox 3Android 2.1Chrome 1

2010

IE8iPhone 3GSFirefox 3Android 2.1Chrome 1iPadNav Timing

Page 9: Edge 2016 measuring what matters

© AKAMAI - EDGE 2016

2011-2016: WTF just happened

?How many browsers in a typical Thanksgiving weekend?

Page 10: Edge 2016 measuring what matters

© AKAMAI - EDGE 2016

2011-2016: WTF just happened

572How many browsers in a typical Thanksgiving weekend?

Page 11: Edge 2016 measuring what matters

© AKAMAI - EDGE 2016

Meanwhile...

Page 12: Edge 2016 measuring what matters

© AKAMAI - EDGE 2016

Page 13: Edge 2016 measuring what matters

© AKAMAI - EDGE 2016

So what can I measure?

Page 14: Edge 2016 measuring what matters

© AKAMAI - EDGE 2016

What is available today - Synthetic Tooling

ProsCPU metricsTest environments & other places without real usersAccess to everything including headers

ConsGaps in: Geos, browsers, pagesImpossible to precisely match user demo- & technographicsNo way to realistically measure browser cache impact

Page 15: Edge 2016 measuring what matters

© AKAMAI - EDGE 2016

What is available today - RUM

ProsNear perfect coverage of browsers, geos, pagesAbility to understand impact to performanceRealistic measurement of browser cache impact

ConsGaps in: Geos, browsers, pagesImpossible to precisely match user demo- & technographicsNo access to HTTP header data

Page 16: Edge 2016 measuring what matters

© AKAMAI - EDGE 2016

EngagementRevenueCoverageCaching

CPUPre-prod

Availability

Page detailsResourcesHeaders

SyntheticReal

Page 17: Edge 2016 measuring what matters

© AKAMAI - EDGE 2016

Page 18: Edge 2016 measuring what matters

© AKAMAI - EDGE 2016

https://www.w3.org/wiki/Web_Performance/Publications

W3C - Performance Working Group

Page 19: Edge 2016 measuring what matters

© AKAMAI - EDGE 2016

Navigation Timing API

Page 20: Edge 2016 measuring what matters

© AKAMAI - EDGE 2016

Resource Timing API

Page 21: Edge 2016 measuring what matters

© AKAMAI - EDGE 2016

Coming soon to a browser near you! Measure the size of

assets in addition to performance.

Resource Timing (2.0) - Transfer Size

Page 22: Edge 2016 measuring what matters

© AKAMAI - EDGE 2016

● Measure performance using high-precision timestamps

● Consists of “marks” and “measures”● PerformanceMark: Timestamp● PerformanceMeasure: Duration between two given

marks

Browser Support - User Timing API

Page 23: Edge 2016 measuring what matters

© AKAMAI - EDGE 2016

Browser Support - Navigation Timing API

Page 24: Edge 2016 measuring what matters

© AKAMAI - EDGE 2016

Browser Support - Resource Timing API

Page 25: Edge 2016 measuring what matters

© AKAMAI - EDGE 2016

Browser Support - User Timing API

Page 26: Edge 2016 measuring what matters

© AKAMAI - EDGE 2016

So what should I measure?

Page 27: Edge 2016 measuring what matters

© AKAMAI - EDGE 2016

Page 28: Edge 2016 measuring what matters

© AKAMAI - EDGE 2016

What matters depends on you

Page 29: Edge 2016 measuring what matters

© AKAMAI - EDGE 2016

What matters to an ops engineer?

● Preference for binary metrics● Looks for indicators of system performance● Affinity to network and back-end metrics

MTTR

Page 30: Edge 2016 measuring what matters

© AKAMAI - EDGE 2016

What matters to an ops engineer?

Network

Server

Page 31: Edge 2016 measuring what matters

© AKAMAI - EDGE 2016

What matters to an ops engineer?

Network

Server

function getPerf() { var timing = window.performance.timing; return { dns: timing.domainLookupEnd - timing.domainLookupStart, connect: timing.connectEnd - timing.connectStart };}

ttfb: timing.responseStart - timing.connectEnd};

Page 32: Edge 2016 measuring what matters

© AKAMAI - EDGE 2016

Help answers questions like...

● Do I have an issue with an upstream DNS resolver?● Am I having Tier1 connectivity issues?● How fast is my application server responding?

Page 33: Edge 2016 measuring what matters

© AKAMAI - EDGE 2016

What matters to an ops engineer?

Don’t be misled by “super fast” responses● DNS Caching● Prefetching● Connection reuse● Pages served from browser cache

Page 34: Edge 2016 measuring what matters

© AKAMAI - EDGE 2016

What matters to an ops engineer?

Object Level Timing

● Resource timing API● Binary metric for testing infrastructure● Measure performance of a third-party● CDN healthcheck

Page 35: Edge 2016 measuring what matters

© AKAMAI - EDGE 2016

What matters to an ops engineer?

Object Timing

var rUrl = ‘https://edge.akamai.com/ec/us/multimedia/images/edge/akamai-edge-conference-speaker-buddy-brewer.jpg’;var me = performance.getEntriesByName(rUrl)[0];var timings = { loadTime: me.duration, dns: me.domainLookupEnd - me.domainLookupStart, tcp: me.connectEnd - me.connectStart, waiting: me.responseStart - me.requestStart, fetch: me.responseEnd - me.responseStart}

Page 36: Edge 2016 measuring what matters

© AKAMAI - EDGE 2016

What matters to a front-end developer?

Optimized Load Times

● “Do no harm”● Looks for indicators of application performance● Looks to measure a “fully loaded” page● Affinity for front-end metrics

Page 37: Edge 2016 measuring what matters

© AKAMAI - EDGE 2016

What matters to a front-end developer?

Client

Page 38: Edge 2016 measuring what matters

© AKAMAI - EDGE 2016

What matters to a front-end developer?

Page 39: Edge 2016 measuring what matters

© AKAMAI - EDGE 2016

What matters to a front-end developer?

function getPerf() { var timing = window.performance.timing; return { Basepage: timing.responseEnd - timing.responseStart, DLoading: timing.domLoading – timing.navigationStart, DInt: timing.domIneractive – timing.navigationStart, DContLoaded: timing.domContentLoadedEventEnd – timing.navigationStart, DContLoadTime: timing.domContentLoadedEventEnd – timing.domContentLoadedEventStart, DComplete: timing.domComplete - timing.navigationStart, PLoad: timing.loadEventStart - timing.navigationStart

}; }

Client

Page 40: Edge 2016 measuring what matters

© AKAMAI - EDGE 2016

Be wary of onload...

~1s OnLoad ~3.5s visibly complete

Page 41: Edge 2016 measuring what matters

© AKAMAI - EDGE 2016

What matters to a designer?

UX

● Performance by design (D4P)● Looks for indicators of human perception● How quickly the page renders● Affinity for custom metrics and render metrics

Page 42: Edge 2016 measuring what matters

© AKAMAI - EDGE 2016

RUM first paint and start render

Chrome - “First Paint” Visual Start Render

Page 43: Edge 2016 measuring what matters

© AKAMAI - EDGE 2016

User perception

Courtesy of the filament group: https://www.filamentgroup.com/lab/weight-wait.html

Page 44: Edge 2016 measuring what matters

© AKAMAI - EDGE 2016

Custom Metrics

Page 45: Edge 2016 measuring what matters

© AKAMAI - EDGE 2016

Custom Metrics - User Timing API

performance.mark(“startTask”);//Some stuff you want to measure happens hereperformance.mark(“stopTask”);

//Measure the duration between the two marksperformance.measure(“taskDuration”,“startTask”,“stopTask”);

//Measure the load of an image<img src=”image1.gif” onload=”performance.mark(‘image1’)”>

Page 46: Edge 2016 measuring what matters

© AKAMAI - EDGE 2016

What matters to a business executive?

$$$$$$$● Business impact analysis● Simplified/lean metrics● Actionable data

Page 47: Edge 2016 measuring what matters

© AKAMAI - EDGE 2016

What matters to a business executive?

Page 48: Edge 2016 measuring what matters

© AKAMAI - EDGE 2016

What matters to a business executive?

Page 49: Edge 2016 measuring what matters

© AKAMAI - EDGE 2016

What matters to a business executive?

Page 50: Edge 2016 measuring what matters

© AKAMAI - EDGE 2016

Don’t create unintended silos

Biz

Ops

Dev

Design

Page 51: Edge 2016 measuring what matters

© AKAMAI - EDGE 2016

Don’t create unintended silosThe success of my business is a reflection of...

The digital experience I provide, which depends on...

how quickly I can render content in the browser, which is impacted by...

the performance and stability of my infrastructure.

1

2

3

4

Biz

Design

Ops

Dev

Page 52: Edge 2016 measuring what matters

© AKAMAI - EDGE 2016

“I just want to buy my Mom’s birthday present.”

“I just want to know if it will rain today.”

“I just want to share pictures of my vacation”

Page 53: Edge 2016 measuring what matters

© AKAMAI - EDGE 2016

How do I collect it?

Page 54: Edge 2016 measuring what matters

© AKAMAI - EDGE 2016

Page 55: Edge 2016 measuring what matters

© AKAMAI - EDGE 2016

Real users are not normal

What do I do with it?

Page 56: Edge 2016 measuring what matters

© AKAMAI - EDGE 2016

What do I do with it?

Page 57: Edge 2016 measuring what matters

© AKAMAI - EDGE 2016

2.9s - p50 (median)

4.4s - Average

10.4s - p95

What do I do with it?

Page 58: Edge 2016 measuring what matters

© AKAMAI - EDGE 2016

What should I throw out?

Page 59: Edge 2016 measuring what matters

© AKAMAI - EDGE 2016

Load Time = 3500 years

Page 60: Edge 2016 measuring what matters

© AKAMAI - EDGE 2016

Load Time = -(10years)

Page 61: Edge 2016 measuring what matters

© AKAMAI - EDGE 2016

What should I keep?

Page 62: Edge 2016 measuring what matters

© AKAMAI - EDGE 2016

Page 63: Edge 2016 measuring what matters

© AKAMAI - EDGE 2016

Page 64: Edge 2016 measuring what matters

© AKAMAI - EDGE 2016

Other opportunities for bots...

1. How does performance impact bot behavior?2. Are bots skewing the numbers I’m reporting?3. Am I providing an optimal experience for search bots?4. Does any of this impact SEO?

Page 65: Edge 2016 measuring what matters

© AKAMAI - EDGE 2016

Summary

● We have amazing tools at our disposal - your users are wired for sound!

● Measuring what matters is situation independent● Important to look at all metrics from the same context● Use robust statistics when looking at your data