44
Extending Boomerang Philip Tellis / [email protected] HTML5 Dev Conf / 2013-04-02 HTML5 Dev Conf / 2013-04-02 Extending Boomerang 1

Extending Boomerang

Embed Size (px)

DESCRIPTION

When we built boomerang at Yahoo!, we planned on it being a generic beaconing system with different payloads attached by plugins. We published an API, and wrote plugins to measure page roundtrip time, network throughput and latency. We received other plugins from Yahoo! to measure IPv6 and DNS latency, and then nothing happened... Until one day, a certain Mr. Brewer submitted a NavTiming plugin. As it turns out, people were using boomerang in-house, and creating their own plugins that were never published. In this talk, we’ll go over the basics of writing a boomerang plugin to measure anything you need, some best practices involved with writing plugins, and examples of third party plugins that others have written.

Citation preview

Page 1: Extending Boomerang

Extending Boomerang

Philip Tellis / [email protected]

HTML5 Dev Conf / 2013-04-02

HTML5 Dev Conf / 2013-04-02 Extending Boomerang 1

Page 2: Extending Boomerang

• Philip Tellis• @bluesmoon• [email protected]• performance / security• javascript

HTML5 Dev Conf / 2013-04-02 Extending Boomerang 2

Page 3: Extending Boomerang

I really like to study performance on the web

HTML5 Dev Conf / 2013-04-02 Extending Boomerang 3

Page 4: Extending Boomerang

0History

HTML5 Dev Conf / 2013-04-02 Extending Boomerang 4

Page 5: Extending Boomerang

Jean-Antoine Nollet – 1746

HTML5 Dev Conf / 2013-04-02 Extending Boomerang 5

Page 6: Extending Boomerang

260 years later. . .

HTML5 Dev Conf / 2013-04-02 Extending Boomerang 6

Page 7: Extending Boomerang

Measure real user to get the real picture

HTML5 Dev Conf / 2013-04-02 Extending Boomerang 7

Page 8: Extending Boomerang

Real Users

• Get delighted• Get frustrated• Have credit cards• ... that they are attached to• Form an impression from experience

HTML5 Dev Conf / 2013-04-02 Extending Boomerang 8

Page 9: Extending Boomerang

Real Users

• Get delighted• Get frustrated• Have credit cards• ... that they are attached to• Form an impression from experience

HTML5 Dev Conf / 2013-04-02 Extending Boomerang 8

Page 10: Extending Boomerang

Real Users

• Get delighted• Get frustrated• Have credit cards• ... that they are attached to• Form an impression from experience

HTML5 Dev Conf / 2013-04-02 Extending Boomerang 8

Page 11: Extending Boomerang

Real Users

• Get delighted• Get frustrated• Have credit cards• ... that they are attached to• Form an impression from experience

HTML5 Dev Conf / 2013-04-02 Extending Boomerang 8

Page 12: Extending Boomerang

Real Users

• Get delighted• Get frustrated• Have credit cards• ... that they are attached to• Form an impression from experience

HTML5 Dev Conf / 2013-04-02 Extending Boomerang 8

Page 13: Extending Boomerang

1boomerang

HTML5 Dev Conf / 2013-04-02 Extending Boomerang 9

Page 14: Extending Boomerang

Real User Measurement–

github.com/lognormal/boomerang

HTML5 Dev Conf / 2013-04-02 Extending Boomerang 10

Page 15: Extending Boomerang

What can we measure?

HTML5 Dev Conf / 2013-04-02 Extending Boomerang 11

Page 16: Extending Boomerang

Anything that the user does!

HTML5 Dev Conf / 2013-04-02 Extending Boomerang 12

Page 17: Extending Boomerang

NavTiming – W3C Candidate Recommendation

HTML5 Dev Conf / 2013-04-02 Extending Boomerang 13

Page 18: Extending Boomerang

Browser Support for NavTiming – April 2013

HTML5 Dev Conf / 2013-04-02 Extending Boomerang 14

Page 19: Extending Boomerang

Real Users don’t always use ideal browsers

HTML5 Dev Conf / 2013-04-02 Extending Boomerang 15

Page 20: Extending Boomerang

So there’s a lot of magic to support the other 33.2%

HTML5 Dev Conf / 2013-04-02 Extending Boomerang 16

Page 21: Extending Boomerang

boomerang

• BSD licensed• Measure load time, bandwidth, latency• DNS lookup time, NavTiming, Connection Type• Page Parameters• And anything else you can write a plugin for

HTML5 Dev Conf / 2013-04-02 Extending Boomerang 17

Page 22: Extending Boomerang

And it beacons all of this back to a predefined URL

HTML5 Dev Conf / 2013-04-02 Extending Boomerang 18

Page 23: Extending Boomerang

boomerang is only a beaconing system, functionalityis added with plugins

HTML5 Dev Conf / 2013-04-02 Extending Boomerang 19

Page 24: Extending Boomerang

2Let’s get hacking

HTML5 Dev Conf / 2013-04-02 Extending Boomerang 20

Page 25: Extending Boomerang

Get the code from github

https://github.com/bluesmoon/boomerang-sample-plugin

• branches are steps• commit logs are explanations

HTML5 Dev Conf / 2013-04-02 Extending Boomerang 21

Page 26: Extending Boomerang

3Fun stuff

HTML5 Dev Conf / 2013-04-02 Extending Boomerang 22

Page 27: Extending Boomerang

Spot the datacenter

HTML5 Dev Conf / 2013-04-02 Extending Boomerang 23

Page 28: Extending Boomerang

It’s actually in Nederland

HTML5 Dev Conf / 2013-04-02 Extending Boomerang 24

Page 29: Extending Boomerang

How does bandwidth change around the world?

HTML5 Dev Conf / 2013-04-02 Extending Boomerang 25

Page 30: Extending Boomerang

What does a website’s performance distribution looklike?

HTML5 Dev Conf / 2013-04-02 Extending Boomerang 26

Page 31: Extending Boomerang

That’s my Blog (please visit)

HTML5 Dev Conf / 2013-04-02 Extending Boomerang 27

Page 32: Extending Boomerang

Log-normal distribution

HTML5 Dev Conf / 2013-04-02 Extending Boomerang 28

Page 33: Extending Boomerang

Bimodal distribution

HTML5 Dev Conf / 2013-04-02 Extending Boomerang 29

Page 34: Extending Boomerang

Did you know that IE7 seems to be faster than IE8?

HTML5 Dev Conf / 2013-04-02 Extending Boomerang 30

Page 35: Extending Boomerang

But that’s mostly IE9 users browsing in IE7compatibility mode.

HTML5 Dev Conf / 2013-04-02 Extending Boomerang 31

Page 36: Extending Boomerang

Did you know that users bounce if a page is toofast?

HTML5 Dev Conf / 2013-04-02 Extending Boomerang 32

Page 37: Extending Boomerang

But that’s mostly because error pages are the fastest.

HTML5 Dev Conf / 2013-04-02 Extending Boomerang 33

Page 38: Extending Boomerang

Did you know that user patience wrt performance isa cultural thing?

HTML5 Dev Conf / 2013-04-02 Extending Boomerang 34

Page 39: Extending Boomerang

It’s tied both to where a user is from, and also thetype of service.

HTML5 Dev Conf / 2013-04-02 Extending Boomerang 35

Page 40: Extending Boomerang

User Engagement: LD50

HTML5 Dev Conf / 2013-04-02 Extending Boomerang 36

Page 41: Extending Boomerang

Summary

Measure→ Hypothesize→ Test → Fix← Repeat ←↩

HTML5 Dev Conf / 2013-04-02 Extending Boomerang 37

Page 42: Extending Boomerang

Thank You!Questions?

HTML5 Dev Conf / 2013-04-02 Extending Boomerang 38

Page 43: Extending Boomerang

Sources

• Jean-Antoine Nollet from Wikimedia Commonshttp://commons.wikimedia.org/wiki/File%3AJean-Antoine_Nollet.jpg

• Steve Souders by weboo on flickrhttp://www.flickr.com/photos/weboo/2539831515/

HTML5 Dev Conf / 2013-04-02 Extending Boomerang 39

Page 44: Extending Boomerang

• Philip Tellis• @bluesmoon• [email protected]• www.SOASTA.com• boomerang• LogNormal Blog

HTML5 Dev Conf / 2013-04-02 Extending Boomerang 40