SlideShare une entreprise Scribd logo
1  sur  43
A Web
 Performance
Dashboard: Up
and Running in
  90 minutes
  flickr photo courtesy of purplemattfish
About Us
Cliff Crocker                  Aaron Kulick
• VP, Product Management       • Chief Performance Engineer
• SOASTA, Inc.                 • @WalmartLabs
• Performance monitoring,      • Founder of SFWebPerf.org
   evangelism, analytics and     meetup, WebPerfDays.org
   pho connoisseur               and lover of squirrels

@cliffcrocker                  @GoFastWeb
Images Provoke a Response
Foster a Sense of URGENCY!
http://www.flickr.com/photos/barge/501363097
6/lightbox/




                                               Provide Reassurance - All is OK
Dashboards Should NOT Be Complicated




                                www.flickr.com
A Simple 3 Step Approach to Building a
              Dashboard
Step 1

identifying input & getting data
9
How Most RUM Solutions Work
• Source external JS
• Instrument page with start/end timers and/or
  leverage navigation timing API
• Beacon containing timing data is fired at
  onload and sent to a beacon server
Getting Performance Data From Real
                Users
• Episodes
   – Some smart guy wrote this who knows something about
     web performance (Steve Souders)
• boomerang.js
   – Another smart guy wrote this (Phillip Tellis)
   – Extensible (custom API for passing data to beacon)
• ShowSlow
   – Yet another smart guy (Sergey Chernyshev – “mmm beacons”)
   – Crowdsourcing
• Roll your own
   – You can be the smart person to write this
W3C Navigation Timing




  http://www.w3.org/TR/navigation-timing/
Today We are Using boomerang.js
• Steps:
  – Git:
       • https://github.com/lognormal/boomerang/
  – Include:
  <script src="/javascript/boomerang.js" type="text/javascript"></script>

  – Initialize:
  BOOMR.init({
         beacon_url: "http://beacons.yoursite.com/path/to/beacon.gif",
         site_domain: "yoursite.com”
  });
Today We are Using boomerang.js
             (continued)
• Steps:
  – Extend:

  BOOMR.addVar({
         var1: “bing",
         var2: “bang",
         var3: “boom”
  });

  BOOMR.plugins.RT.startTimer(“t_timer”);
     //some foo
  BOOMR.plugins.RT.endTimer(“t_timer”);
Ghetto-Fabulous
<script src="/javascript/boomerang.js" type="text/javascript"></script>




For the high-performance, non-blocking, self-updating version, see:


•http://www.stevesouders.com/blog/2012/05/22/self-updating-scripts/

•http://www.lognormal.com/blog/2012/06/05/updating-cached-boomerang/
Synthetic Data
•   Consistency
•   Object level detail
•   High signal to noise ratio
•   Instrumented real browsers
Getting Synthetic Data
•   WebPagetest.org
•   REDbot.org
•   cURL
•   ShowSlow
•   PageSpeed Insights
•   GTmetrix.com
•   Vendor supported solutions
WebPagetest
• Steps:
  – Download:
     • https://sites.google.com/a/webpagetest.org/docs/priv
       ate-instances/releases
  – Configure:
     • https://sites.google.com/a/webpagetest.org/docs/priv
       ate-instances#TOC-Configuring
  – Automate:
     • Script foo
     • Bribe Patrick Meenan for an API key
Example: Walmart Competitive Index
• Ingredients:
  – URL file
  – Cron job
  – MySQL
  – Flot (javascript)
Example: Walmart Competitive Index
           (continued)
Analytics
• Conversion
   – Add to cart
   – Click
• Engagement
   – Bounce, exit, and entry
   – Time on page/site
• Demographics
   – Geography
   – Browser, device, OS, screen size
• Flow
   – Utilization
• SEO, SEM, and campaign effectiveness
   – A/B, MAB
Analytics
•   Piwik.org
•   Google Analytics
•   Log analysis (BFD)
•   Vendor supported solution
Piwik
• Steps:
  – Download:
     • http://www.piwik.org
  – Install:
     • MySQL
     • PHP
  – Instrument:
Piwik
                                         (continued)
<!--Piwik tracking -->
<script type="text/javascript">
var pkBaseURL = (("https:" == document.location.protocol) ? "https://localhost/test/piwik/" :
"http://localhost/test/piwik/");
document.write(unescape("%3Cscript src='" + pkBaseURL + "piwik.js' type='text/javascript'%3E%3C/script%3E"));
BOOMR.subscribe ('before_beacon', function (o) {
try {
      var piwikTracker = Piwik.getTracker(pkBaseURL + "piwik.php", 2);
      piwikTracker.setCustomVariable (1, "Page Load - sec", Math.ceil((o.t_done/1000)), "page");
      piwikTracker.setCustomVariable (2, "Page Processing - sec.", Math.ceil((o.t_page/1000)), "page");
      piwikTracker.setCustomVariable (3, "Response - sec", Math.ceil((o.t_resp/1000)), "page");
      piwikTracker.setCustomVariable (4, "Latency - msec", o.lat, "visit");
      piwikTracker.setCustomVariable (5, "Bandwidth - kbps", Math.ceil((o.bw/1024)), "visit");
      piwikTracker.trackPageView();
      piwikTracker.enableLinkTracking();
} catch( err ) {}
});
</script>
<!--stone tools-->
<noscript><p><img src="http://localhost/test/piwik/piwik.php?idsite=2" style="border:0" alt="" /></p></noscript>
<!--End Piwik Tracking Code -->

                                                                                      *boomerang integration
                                                                                      **not like this!!
Step 2

collecting, processing & storing data
How It Works
     boomerang.js -> StatsD -> Graphite
1.   JavaScript triggers image request
2.   Beacon server responds with 204 (no cache)
3.   StatsD aggregates metrics
4.   Graphite stores and provides UI
How It Works
     Script foo -> WebPagetest API -> MySQL
1.    wpt_batch.py – submit a batch job for processing
2.    WebPagetest API – run tests
3.    parse_xml.pl – parse XML response
4.    MySQL – store median results
5.    Piwik – CompWPT plugin displays results
Step 3

pulling it into a dashboard
 “Make Them Happy Trees”
Introducing our Sponsor

Sally Squirrel’s Dance Emporium
Demo
•   Demo Site
•   WebPagetest
•   REDbot
•   Graphite
•   WebPerf90 Dashboard - Piwik
Operational RUM
Where Should You Focus?

        stuff                      to
Bu ying                       ly           Pro
                         l ike f              ba
                       ss tuf
                     le s                   air bly o
                   ch uy
                  u b
                                               pla n a
                                                  ne n
                M




                                        yes, there are people
                                        here….
WebPagetest AIR
@patmeenan
“For the next ~3 hours, WebPagetest has a
Virgin in-flight wifi location available. Last
location in the list. #webperf”




                                                               @cliffcrocker
                                                               “@patmeenan > Holy
                                                               Slow! “




                  @patmeenan
                  “@cliffcrocker Yep - when it's even connecting.
                  Talk about a first-world problem.”
How Do You Optimize for the Given Distribution?


          Traditional WPO Techniques – 14+ Rules



              Advanced Optimization/Acceleration – Automated WPO



                                                   Prayer
Set Achievable SLAs
Find Your Own Meaningful Metric



          “Item Page – ‘page processing’ should be 18s or
          faster for 95% of users”
Validate With Analytics
Acknowledgements




http://dl.dropbox.com/u/49030329/WebPerformanceDashboard90.ova
VM INSTRUCTIONS
Username:     webperfdash
Password: webperfdash

To start the Graphite, node beacon, StatsD, and REDbot log into the VM and execute the
following command as the ‘webperfdash’ user from the home directory:

     $ supervisord

The VM should just work (but you may need to disable USB 2.0 controller on import if you do
not have the Oracle VM VirtualBox Extensions, see website) in VirtualBox
which is available for free for Windows, OS X, or Linux.

If you get a USB 2.0 incompatibility error on start then you do not have the the above
extension installed and should disable USB when importing the appliance or via the settings
or install the extensions directly.

The VM has two NICs configured, the first is configured for NAT and the ports are already
forwarded. The second uses the HOST NETWORKING scheme (
http://www.virtualbox.org/manual/ch06.html#network_hostonly) which creates a private
network shared exclusively by the VM and the host (or any other addition hosts such as
WebPagetest workers).
Ports
Service               Port Number
SSH                   42222
Demo Site             40000
Graphite              49999
HAR Viewer            44444
REDbot                45555
WebPagetest           48888
ShowSlow              47777
boomerang.js Beacon   43000
Server
Piwik                 48080
Aaron & Cliff
         Office Hours
   Tuesday 3:50p -4:30p
Exhibit Hall – Office Hours ‘C’
WebPerfDays.org
Come by our booth!
We’re Hiring!

Contenu connexe

Tendances

Front end performance optimization
Front end performance optimizationFront end performance optimization
Front end performance optimizationStevie T
 
Front end performance tip
Front end performance tipFront end performance tip
Front end performance tipSteve Yu
 
Converting Your Dev Environment to a Docker Stack - php[world]
Converting Your Dev Environment to a Docker Stack - php[world]Converting Your Dev Environment to a Docker Stack - php[world]
Converting Your Dev Environment to a Docker Stack - php[world]Dana Luther
 
Velocity 2014 nyc WebPagetest private instances
Velocity 2014 nyc   WebPagetest private instancesVelocity 2014 nyc   WebPagetest private instances
Velocity 2014 nyc WebPagetest private instancesPatrick Meenan
 
Converting Your Dev Environment to a Docker Stack - Cascadia
Converting Your Dev Environment to a Docker Stack - CascadiaConverting Your Dev Environment to a Docker Stack - Cascadia
Converting Your Dev Environment to a Docker Stack - CascadiaDana Luther
 
Node.js 기반 정적 페이지 블로그 엔진, 하루프레스
Node.js 기반 정적 페이지 블로그 엔진, 하루프레스Node.js 기반 정적 페이지 블로그 엔진, 하루프레스
Node.js 기반 정적 페이지 블로그 엔진, 하루프레스Rhio Kim
 
WebPagetest - Good, Bad & Ugly
WebPagetest - Good, Bad & UglyWebPagetest - Good, Bad & Ugly
WebPagetest - Good, Bad & UglyAaron Peters
 
Mobile web performance - MoDev East
Mobile web performance - MoDev EastMobile web performance - MoDev East
Mobile web performance - MoDev EastPatrick Meenan
 
Single page apps with drupal 7
Single page apps with drupal 7Single page apps with drupal 7
Single page apps with drupal 7Chris Tankersley
 
ApacheCon 2014 - What's New in Apache httpd 2.4
ApacheCon 2014 - What's New in Apache httpd 2.4ApacheCon 2014 - What's New in Apache httpd 2.4
ApacheCon 2014 - What's New in Apache httpd 2.4Jim Jagielski
 
Care and feeding notes
Care and feeding notesCare and feeding notes
Care and feeding notesPerrin Harkins
 
Apache httpd Reverse Proxy and Tomcat
Apache httpd Reverse Proxy and TomcatApache httpd Reverse Proxy and Tomcat
Apache httpd Reverse Proxy and TomcatJim Jagielski
 
ApacheConNA 2015: Apache httpd 2.4 Reverse Proxy
ApacheConNA 2015: Apache httpd 2.4 Reverse ProxyApacheConNA 2015: Apache httpd 2.4 Reverse Proxy
ApacheConNA 2015: Apache httpd 2.4 Reverse ProxyJim Jagielski
 
cache concepts and varnish-cache
cache concepts and varnish-cachecache concepts and varnish-cache
cache concepts and varnish-cacheMarc Cortinas Val
 
Advanced front-end automation with npm scripts
Advanced front-end automation with npm scriptsAdvanced front-end automation with npm scripts
Advanced front-end automation with npm scriptsk88hudson
 

Tendances (20)

Front end performance optimization
Front end performance optimizationFront end performance optimization
Front end performance optimization
 
Front end performance tip
Front end performance tipFront end performance tip
Front end performance tip
 
Converting Your Dev Environment to a Docker Stack - php[world]
Converting Your Dev Environment to a Docker Stack - php[world]Converting Your Dev Environment to a Docker Stack - php[world]
Converting Your Dev Environment to a Docker Stack - php[world]
 
Velocity 2014 nyc WebPagetest private instances
Velocity 2014 nyc   WebPagetest private instancesVelocity 2014 nyc   WebPagetest private instances
Velocity 2014 nyc WebPagetest private instances
 
CouchDB Google
CouchDB GoogleCouchDB Google
CouchDB Google
 
Converting Your Dev Environment to a Docker Stack - Cascadia
Converting Your Dev Environment to a Docker Stack - CascadiaConverting Your Dev Environment to a Docker Stack - Cascadia
Converting Your Dev Environment to a Docker Stack - Cascadia
 
Npm scripts
Npm scriptsNpm scripts
Npm scripts
 
The HTML5 WebSocket API
The HTML5 WebSocket APIThe HTML5 WebSocket API
The HTML5 WebSocket API
 
Node.js 기반 정적 페이지 블로그 엔진, 하루프레스
Node.js 기반 정적 페이지 블로그 엔진, 하루프레스Node.js 기반 정적 페이지 블로그 엔진, 하루프레스
Node.js 기반 정적 페이지 블로그 엔진, 하루프레스
 
WebPagetest - Good, Bad & Ugly
WebPagetest - Good, Bad & UglyWebPagetest - Good, Bad & Ugly
WebPagetest - Good, Bad & Ugly
 
Scalable talk notes
Scalable talk notesScalable talk notes
Scalable talk notes
 
Mobile web performance - MoDev East
Mobile web performance - MoDev EastMobile web performance - MoDev East
Mobile web performance - MoDev East
 
Single page apps with drupal 7
Single page apps with drupal 7Single page apps with drupal 7
Single page apps with drupal 7
 
Scaling Django
Scaling DjangoScaling Django
Scaling Django
 
ApacheCon 2014 - What's New in Apache httpd 2.4
ApacheCon 2014 - What's New in Apache httpd 2.4ApacheCon 2014 - What's New in Apache httpd 2.4
ApacheCon 2014 - What's New in Apache httpd 2.4
 
Care and feeding notes
Care and feeding notesCare and feeding notes
Care and feeding notes
 
Apache httpd Reverse Proxy and Tomcat
Apache httpd Reverse Proxy and TomcatApache httpd Reverse Proxy and Tomcat
Apache httpd Reverse Proxy and Tomcat
 
ApacheConNA 2015: Apache httpd 2.4 Reverse Proxy
ApacheConNA 2015: Apache httpd 2.4 Reverse ProxyApacheConNA 2015: Apache httpd 2.4 Reverse Proxy
ApacheConNA 2015: Apache httpd 2.4 Reverse Proxy
 
cache concepts and varnish-cache
cache concepts and varnish-cachecache concepts and varnish-cache
cache concepts and varnish-cache
 
Advanced front-end automation with npm scripts
Advanced front-end automation with npm scriptsAdvanced front-end automation with npm scripts
Advanced front-end automation with npm scripts
 

En vedette

Making the web fast(er) - RailsConf 2012
Making the web fast(er) - RailsConf 2012Making the web fast(er) - RailsConf 2012
Making the web fast(er) - RailsConf 2012Ilya Grigorik
 
What is SEO? Grand Rapids HUG
What is SEO? Grand Rapids HUGWhat is SEO? Grand Rapids HUG
What is SEO? Grand Rapids HUGKevin Dean
 
PageSpeed Optimization
PageSpeed OptimizationPageSpeed Optimization
PageSpeed OptimizationShweta Patel
 
How to increase profit through store benchmarking
How to increase profit through store benchmarkingHow to increase profit through store benchmarking
How to increase profit through store benchmarkingStrongPoint Baltics
 
AD113 Speed Up Your Applications w/ Nginx and PageSpeed
AD113  Speed Up Your Applications w/ Nginx and PageSpeedAD113  Speed Up Your Applications w/ Nginx and PageSpeed
AD113 Speed Up Your Applications w/ Nginx and PageSpeededm00se
 
Walmart experience report agile india 2014
Walmart experience report agile india 2014Walmart experience report agile india 2014
Walmart experience report agile india 2014Bhavin Kamani
 
Walmart Advertising Report
Walmart Advertising ReportWalmart Advertising Report
Walmart Advertising ReportColin Parajon
 
Retail prices - Avoiding the race to the bottom - March 2016
Retail prices - Avoiding the race to the bottom - March 2016Retail prices - Avoiding the race to the bottom - March 2016
Retail prices - Avoiding the race to the bottom - March 2016Insight Retail Group Ltd
 
The Digital Customer Journey
The Digital Customer JourneyThe Digital Customer Journey
The Digital Customer JourneyBart De Waele
 

En vedette (10)

Making the web fast(er) - RailsConf 2012
Making the web fast(er) - RailsConf 2012Making the web fast(er) - RailsConf 2012
Making the web fast(er) - RailsConf 2012
 
What is SEO? Grand Rapids HUG
What is SEO? Grand Rapids HUGWhat is SEO? Grand Rapids HUG
What is SEO? Grand Rapids HUG
 
PageSpeed Optimization
PageSpeed OptimizationPageSpeed Optimization
PageSpeed Optimization
 
How to increase profit through store benchmarking
How to increase profit through store benchmarkingHow to increase profit through store benchmarking
How to increase profit through store benchmarking
 
Aldata Category Insights
Aldata Category InsightsAldata Category Insights
Aldata Category Insights
 
AD113 Speed Up Your Applications w/ Nginx and PageSpeed
AD113  Speed Up Your Applications w/ Nginx and PageSpeedAD113  Speed Up Your Applications w/ Nginx and PageSpeed
AD113 Speed Up Your Applications w/ Nginx and PageSpeed
 
Walmart experience report agile india 2014
Walmart experience report agile india 2014Walmart experience report agile india 2014
Walmart experience report agile india 2014
 
Walmart Advertising Report
Walmart Advertising ReportWalmart Advertising Report
Walmart Advertising Report
 
Retail prices - Avoiding the race to the bottom - March 2016
Retail prices - Avoiding the race to the bottom - March 2016Retail prices - Avoiding the race to the bottom - March 2016
Retail prices - Avoiding the race to the bottom - March 2016
 
The Digital Customer Journey
The Digital Customer JourneyThe Digital Customer Journey
The Digital Customer Journey
 

Similaire à A web perf dashboard up & running in 90 minutes presentation

The Web Becomes Graceful
The Web Becomes GracefulThe Web Becomes Graceful
The Web Becomes Gracefulcolorhook
 
Web Standards Support in WebKit
Web Standards Support in WebKitWeb Standards Support in WebKit
Web Standards Support in WebKitJoone Hur
 
Behavior Driven Development and Automation Testing Using Cucumber
Behavior Driven Development and Automation Testing Using CucumberBehavior Driven Development and Automation Testing Using Cucumber
Behavior Driven Development and Automation Testing Using CucumberKMS Technology
 
EscConf - Deep Dive Frontend Optimization
EscConf - Deep Dive Frontend OptimizationEscConf - Deep Dive Frontend Optimization
EscConf - Deep Dive Frontend OptimizationJonathan Klein
 
SenchaCon 2016: A Look Ahead: Survey Next-Gen Modern Browser APIs - Shikhir S...
SenchaCon 2016: A Look Ahead: Survey Next-Gen Modern Browser APIs - Shikhir S...SenchaCon 2016: A Look Ahead: Survey Next-Gen Modern Browser APIs - Shikhir S...
SenchaCon 2016: A Look Ahead: Survey Next-Gen Modern Browser APIs - Shikhir S...Sencha
 
Northeast PHP - High Performance PHP
Northeast PHP - High Performance PHPNortheast PHP - High Performance PHP
Northeast PHP - High Performance PHPJonathan Klein
 
腾讯大讲堂09 如何建设高性能网站
腾讯大讲堂09 如何建设高性能网站腾讯大讲堂09 如何建设高性能网站
腾讯大讲堂09 如何建设高性能网站areyouok
 
腾讯大讲堂09 如何建设高性能网站
腾讯大讲堂09 如何建设高性能网站腾讯大讲堂09 如何建设高性能网站
腾讯大讲堂09 如何建设高性能网站topgeek
 
(WEB301) Operational Web Log Analysis | AWS re:Invent 2014
(WEB301) Operational Web Log Analysis | AWS re:Invent 2014(WEB301) Operational Web Log Analysis | AWS re:Invent 2014
(WEB301) Operational Web Log Analysis | AWS re:Invent 2014Amazon Web Services
 
vodQA Pune (2019) - Browser automation using dev tools
vodQA Pune (2019) - Browser automation using dev toolsvodQA Pune (2019) - Browser automation using dev tools
vodQA Pune (2019) - Browser automation using dev toolsvodQA
 
Forensic tools for in-depth performance investigations
Forensic tools for in-depth performance investigations Forensic tools for in-depth performance investigations
Forensic tools for in-depth performance investigations SOASTA
 
[convergese] Adaptive Images in Responsive Web Design
[convergese] Adaptive Images in Responsive Web Design[convergese] Adaptive Images in Responsive Web Design
[convergese] Adaptive Images in Responsive Web DesignChristopher Schmitt
 
GDD Japan 2009 - Designing OpenSocial Apps For Speed and Scale
GDD Japan 2009 - Designing OpenSocial Apps For Speed and ScaleGDD Japan 2009 - Designing OpenSocial Apps For Speed and Scale
GDD Japan 2009 - Designing OpenSocial Apps For Speed and ScalePatrick Chanezon
 
What is Nginx and Why You Should to Use it with Wordpress Hosting
What is Nginx and Why You Should to Use it with Wordpress HostingWhat is Nginx and Why You Should to Use it with Wordpress Hosting
What is Nginx and Why You Should to Use it with Wordpress HostingWPSFO Meetup Group
 
CIRCUIT 2015 - Monitoring AEM
CIRCUIT 2015 - Monitoring AEMCIRCUIT 2015 - Monitoring AEM
CIRCUIT 2015 - Monitoring AEMICF CIRCUIT
 
Web Unleashed '19 - Measuring the Adoption of Web Performance Techniques
Web Unleashed '19 - Measuring the Adoption of Web Performance TechniquesWeb Unleashed '19 - Measuring the Adoption of Web Performance Techniques
Web Unleashed '19 - Measuring the Adoption of Web Performance TechniquesPaul Calvano
 
Puppet Camp Melbourne Nov 2014 - A Build Engineering Team’s Journey of Infras...
Puppet Camp Melbourne Nov 2014 - A Build Engineering Team’s Journey of Infras...Puppet Camp Melbourne Nov 2014 - A Build Engineering Team’s Journey of Infras...
Puppet Camp Melbourne Nov 2014 - A Build Engineering Team’s Journey of Infras...Peter Leschev
 

Similaire à A web perf dashboard up & running in 90 minutes presentation (20)

The Web Becomes Graceful
The Web Becomes GracefulThe Web Becomes Graceful
The Web Becomes Graceful
 
Velocity Report 2009
Velocity Report 2009Velocity Report 2009
Velocity Report 2009
 
Web Standards Support in WebKit
Web Standards Support in WebKitWeb Standards Support in WebKit
Web Standards Support in WebKit
 
Behavior Driven Development and Automation Testing Using Cucumber
Behavior Driven Development and Automation Testing Using CucumberBehavior Driven Development and Automation Testing Using Cucumber
Behavior Driven Development and Automation Testing Using Cucumber
 
EscConf - Deep Dive Frontend Optimization
EscConf - Deep Dive Frontend OptimizationEscConf - Deep Dive Frontend Optimization
EscConf - Deep Dive Frontend Optimization
 
HTML5
HTML5HTML5
HTML5
 
SenchaCon 2016: A Look Ahead: Survey Next-Gen Modern Browser APIs - Shikhir S...
SenchaCon 2016: A Look Ahead: Survey Next-Gen Modern Browser APIs - Shikhir S...SenchaCon 2016: A Look Ahead: Survey Next-Gen Modern Browser APIs - Shikhir S...
SenchaCon 2016: A Look Ahead: Survey Next-Gen Modern Browser APIs - Shikhir S...
 
Northeast PHP - High Performance PHP
Northeast PHP - High Performance PHPNortheast PHP - High Performance PHP
Northeast PHP - High Performance PHP
 
腾讯大讲堂09 如何建设高性能网站
腾讯大讲堂09 如何建设高性能网站腾讯大讲堂09 如何建设高性能网站
腾讯大讲堂09 如何建设高性能网站
 
腾讯大讲堂09 如何建设高性能网站
腾讯大讲堂09 如何建设高性能网站腾讯大讲堂09 如何建设高性能网站
腾讯大讲堂09 如何建设高性能网站
 
VorlonJS
VorlonJSVorlonJS
VorlonJS
 
(WEB301) Operational Web Log Analysis | AWS re:Invent 2014
(WEB301) Operational Web Log Analysis | AWS re:Invent 2014(WEB301) Operational Web Log Analysis | AWS re:Invent 2014
(WEB301) Operational Web Log Analysis | AWS re:Invent 2014
 
vodQA Pune (2019) - Browser automation using dev tools
vodQA Pune (2019) - Browser automation using dev toolsvodQA Pune (2019) - Browser automation using dev tools
vodQA Pune (2019) - Browser automation using dev tools
 
Forensic tools for in-depth performance investigations
Forensic tools for in-depth performance investigations Forensic tools for in-depth performance investigations
Forensic tools for in-depth performance investigations
 
[convergese] Adaptive Images in Responsive Web Design
[convergese] Adaptive Images in Responsive Web Design[convergese] Adaptive Images in Responsive Web Design
[convergese] Adaptive Images in Responsive Web Design
 
GDD Japan 2009 - Designing OpenSocial Apps For Speed and Scale
GDD Japan 2009 - Designing OpenSocial Apps For Speed and ScaleGDD Japan 2009 - Designing OpenSocial Apps For Speed and Scale
GDD Japan 2009 - Designing OpenSocial Apps For Speed and Scale
 
What is Nginx and Why You Should to Use it with Wordpress Hosting
What is Nginx and Why You Should to Use it with Wordpress HostingWhat is Nginx and Why You Should to Use it with Wordpress Hosting
What is Nginx and Why You Should to Use it with Wordpress Hosting
 
CIRCUIT 2015 - Monitoring AEM
CIRCUIT 2015 - Monitoring AEMCIRCUIT 2015 - Monitoring AEM
CIRCUIT 2015 - Monitoring AEM
 
Web Unleashed '19 - Measuring the Adoption of Web Performance Techniques
Web Unleashed '19 - Measuring the Adoption of Web Performance TechniquesWeb Unleashed '19 - Measuring the Adoption of Web Performance Techniques
Web Unleashed '19 - Measuring the Adoption of Web Performance Techniques
 
Puppet Camp Melbourne Nov 2014 - A Build Engineering Team’s Journey of Infras...
Puppet Camp Melbourne Nov 2014 - A Build Engineering Team’s Journey of Infras...Puppet Camp Melbourne Nov 2014 - A Build Engineering Team’s Journey of Infras...
Puppet Camp Melbourne Nov 2014 - A Build Engineering Team’s Journey of Infras...
 

Plus de Justin Dorfman

Open Source CDNs | LAWebSpeed April 29th 2014
Open Source CDNs | LAWebSpeed April 29th 2014Open Source CDNs | LAWebSpeed April 29th 2014
Open Source CDNs | LAWebSpeed April 29th 2014Justin Dorfman
 
Wisdom of the crowd gathering insights from real user monitoring presentation
Wisdom of the crowd gathering insights from real user monitoring presentationWisdom of the crowd gathering insights from real user monitoring presentation
Wisdom of the crowd gathering insights from real user monitoring presentationJustin Dorfman
 
Solving the hard problems of user experience management presentation
Solving the hard problems of user experience management presentationSolving the hard problems of user experience management presentation
Solving the hard problems of user experience management presentationJustin Dorfman
 
Preview toward agile APM at Intel presentation
Preview toward agile APM at Intel presentationPreview toward agile APM at Intel presentation
Preview toward agile APM at Intel presentationJustin Dorfman
 
Predicting user activity to make the web fast presentation
Predicting user activity to make the web fast presentationPredicting user activity to make the web fast presentation
Predicting user activity to make the web fast presentationJustin Dorfman
 
One millions users vs your web application mega testing cloud applications pr...
One millions users vs your web application mega testing cloud applications pr...One millions users vs your web application mega testing cloud applications pr...
One millions users vs your web application mega testing cloud applications pr...Justin Dorfman
 
Develop, deploy and manage tomorrow’s applications…today presentation 1
Develop, deploy and manage tomorrow’s applications…today presentation 1Develop, deploy and manage tomorrow’s applications…today presentation 1
Develop, deploy and manage tomorrow’s applications…today presentation 1Justin Dorfman
 
Broadening the user perspective – from network latency to user experience tim...
Broadening the user perspective – from network latency to user experience tim...Broadening the user perspective – from network latency to user experience tim...
Broadening the user perspective – from network latency to user experience tim...Justin Dorfman
 
Akamai internet insights
Akamai internet insightsAkamai internet insights
Akamai internet insightsJustin Dorfman
 
A new era at GoDaddy.com presentation
A new era at GoDaddy.com presentationA new era at GoDaddy.com presentation
A new era at GoDaddy.com presentationJustin Dorfman
 
Understanding hardware acceleration on mobile browsers presentation
Understanding hardware acceleration on mobile browsers presentationUnderstanding hardware acceleration on mobile browsers presentation
Understanding hardware acceleration on mobile browsers presentationJustin Dorfman
 
Michelin starred cooking with chef presentation
Michelin starred cooking with chef presentationMichelin starred cooking with chef presentation
Michelin starred cooking with chef presentationJustin Dorfman
 
Benchmarks, performance, scalability, and capacity what's behind the numbers
Benchmarks, performance, scalability, and capacity what's behind the numbersBenchmarks, performance, scalability, and capacity what's behind the numbers
Benchmarks, performance, scalability, and capacity what's behind the numbersJustin Dorfman
 
Abuse prevention in the globally distributed economy presentation
Abuse prevention in the globally distributed economy presentationAbuse prevention in the globally distributed economy presentation
Abuse prevention in the globally distributed economy presentationJustin Dorfman
 
Stability patterns presentation
Stability patterns presentationStability patterns presentation
Stability patterns presentationJustin Dorfman
 
WordPress Optimization - WordCampLA 09-10-11
WordPress Optimization - WordCampLA 09-10-11WordPress Optimization - WordCampLA 09-10-11
WordPress Optimization - WordCampLA 09-10-11Justin Dorfman
 

Plus de Justin Dorfman (16)

Open Source CDNs | LAWebSpeed April 29th 2014
Open Source CDNs | LAWebSpeed April 29th 2014Open Source CDNs | LAWebSpeed April 29th 2014
Open Source CDNs | LAWebSpeed April 29th 2014
 
Wisdom of the crowd gathering insights from real user monitoring presentation
Wisdom of the crowd gathering insights from real user monitoring presentationWisdom of the crowd gathering insights from real user monitoring presentation
Wisdom of the crowd gathering insights from real user monitoring presentation
 
Solving the hard problems of user experience management presentation
Solving the hard problems of user experience management presentationSolving the hard problems of user experience management presentation
Solving the hard problems of user experience management presentation
 
Preview toward agile APM at Intel presentation
Preview toward agile APM at Intel presentationPreview toward agile APM at Intel presentation
Preview toward agile APM at Intel presentation
 
Predicting user activity to make the web fast presentation
Predicting user activity to make the web fast presentationPredicting user activity to make the web fast presentation
Predicting user activity to make the web fast presentation
 
One millions users vs your web application mega testing cloud applications pr...
One millions users vs your web application mega testing cloud applications pr...One millions users vs your web application mega testing cloud applications pr...
One millions users vs your web application mega testing cloud applications pr...
 
Develop, deploy and manage tomorrow’s applications…today presentation 1
Develop, deploy and manage tomorrow’s applications…today presentation 1Develop, deploy and manage tomorrow’s applications…today presentation 1
Develop, deploy and manage tomorrow’s applications…today presentation 1
 
Broadening the user perspective – from network latency to user experience tim...
Broadening the user perspective – from network latency to user experience tim...Broadening the user perspective – from network latency to user experience tim...
Broadening the user perspective – from network latency to user experience tim...
 
Akamai internet insights
Akamai internet insightsAkamai internet insights
Akamai internet insights
 
A new era at GoDaddy.com presentation
A new era at GoDaddy.com presentationA new era at GoDaddy.com presentation
A new era at GoDaddy.com presentation
 
Understanding hardware acceleration on mobile browsers presentation
Understanding hardware acceleration on mobile browsers presentationUnderstanding hardware acceleration on mobile browsers presentation
Understanding hardware acceleration on mobile browsers presentation
 
Michelin starred cooking with chef presentation
Michelin starred cooking with chef presentationMichelin starred cooking with chef presentation
Michelin starred cooking with chef presentation
 
Benchmarks, performance, scalability, and capacity what's behind the numbers
Benchmarks, performance, scalability, and capacity what's behind the numbersBenchmarks, performance, scalability, and capacity what's behind the numbers
Benchmarks, performance, scalability, and capacity what's behind the numbers
 
Abuse prevention in the globally distributed economy presentation
Abuse prevention in the globally distributed economy presentationAbuse prevention in the globally distributed economy presentation
Abuse prevention in the globally distributed economy presentation
 
Stability patterns presentation
Stability patterns presentationStability patterns presentation
Stability patterns presentation
 
WordPress Optimization - WordCampLA 09-10-11
WordPress Optimization - WordCampLA 09-10-11WordPress Optimization - WordCampLA 09-10-11
WordPress Optimization - WordCampLA 09-10-11
 

Dernier

Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 

Dernier (20)

Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 

A web perf dashboard up & running in 90 minutes presentation

  • 1. A Web Performance Dashboard: Up and Running in 90 minutes flickr photo courtesy of purplemattfish
  • 2. About Us Cliff Crocker Aaron Kulick • VP, Product Management • Chief Performance Engineer • SOASTA, Inc. • @WalmartLabs • Performance monitoring, • Founder of SFWebPerf.org evangelism, analytics and meetup, WebPerfDays.org pho connoisseur and lover of squirrels @cliffcrocker @GoFastWeb
  • 3. Images Provoke a Response
  • 4. Foster a Sense of URGENCY!
  • 6. Dashboards Should NOT Be Complicated www.flickr.com
  • 7. A Simple 3 Step Approach to Building a Dashboard
  • 8. Step 1 identifying input & getting data
  • 9. 9
  • 10. How Most RUM Solutions Work • Source external JS • Instrument page with start/end timers and/or leverage navigation timing API • Beacon containing timing data is fired at onload and sent to a beacon server
  • 11. Getting Performance Data From Real Users • Episodes – Some smart guy wrote this who knows something about web performance (Steve Souders) • boomerang.js – Another smart guy wrote this (Phillip Tellis) – Extensible (custom API for passing data to beacon) • ShowSlow – Yet another smart guy (Sergey Chernyshev – “mmm beacons”) – Crowdsourcing • Roll your own – You can be the smart person to write this
  • 12. W3C Navigation Timing http://www.w3.org/TR/navigation-timing/
  • 13. Today We are Using boomerang.js • Steps: – Git: • https://github.com/lognormal/boomerang/ – Include: <script src="/javascript/boomerang.js" type="text/javascript"></script> – Initialize: BOOMR.init({ beacon_url: "http://beacons.yoursite.com/path/to/beacon.gif", site_domain: "yoursite.com” });
  • 14. Today We are Using boomerang.js (continued) • Steps: – Extend: BOOMR.addVar({ var1: “bing", var2: “bang", var3: “boom” }); BOOMR.plugins.RT.startTimer(“t_timer”); //some foo BOOMR.plugins.RT.endTimer(“t_timer”);
  • 15. Ghetto-Fabulous <script src="/javascript/boomerang.js" type="text/javascript"></script> For the high-performance, non-blocking, self-updating version, see: •http://www.stevesouders.com/blog/2012/05/22/self-updating-scripts/ •http://www.lognormal.com/blog/2012/06/05/updating-cached-boomerang/
  • 16. Synthetic Data • Consistency • Object level detail • High signal to noise ratio • Instrumented real browsers
  • 17. Getting Synthetic Data • WebPagetest.org • REDbot.org • cURL • ShowSlow • PageSpeed Insights • GTmetrix.com • Vendor supported solutions
  • 18. WebPagetest • Steps: – Download: • https://sites.google.com/a/webpagetest.org/docs/priv ate-instances/releases – Configure: • https://sites.google.com/a/webpagetest.org/docs/priv ate-instances#TOC-Configuring – Automate: • Script foo • Bribe Patrick Meenan for an API key
  • 19. Example: Walmart Competitive Index • Ingredients: – URL file – Cron job – MySQL – Flot (javascript)
  • 20. Example: Walmart Competitive Index (continued)
  • 21. Analytics • Conversion – Add to cart – Click • Engagement – Bounce, exit, and entry – Time on page/site • Demographics – Geography – Browser, device, OS, screen size • Flow – Utilization • SEO, SEM, and campaign effectiveness – A/B, MAB
  • 22. Analytics • Piwik.org • Google Analytics • Log analysis (BFD) • Vendor supported solution
  • 23. Piwik • Steps: – Download: • http://www.piwik.org – Install: • MySQL • PHP – Instrument:
  • 24. Piwik (continued) <!--Piwik tracking --> <script type="text/javascript"> var pkBaseURL = (("https:" == document.location.protocol) ? "https://localhost/test/piwik/" : "http://localhost/test/piwik/"); document.write(unescape("%3Cscript src='" + pkBaseURL + "piwik.js' type='text/javascript'%3E%3C/script%3E")); BOOMR.subscribe ('before_beacon', function (o) { try { var piwikTracker = Piwik.getTracker(pkBaseURL + "piwik.php", 2); piwikTracker.setCustomVariable (1, "Page Load - sec", Math.ceil((o.t_done/1000)), "page"); piwikTracker.setCustomVariable (2, "Page Processing - sec.", Math.ceil((o.t_page/1000)), "page"); piwikTracker.setCustomVariable (3, "Response - sec", Math.ceil((o.t_resp/1000)), "page"); piwikTracker.setCustomVariable (4, "Latency - msec", o.lat, "visit"); piwikTracker.setCustomVariable (5, "Bandwidth - kbps", Math.ceil((o.bw/1024)), "visit"); piwikTracker.trackPageView(); piwikTracker.enableLinkTracking(); } catch( err ) {} }); </script> <!--stone tools--> <noscript><p><img src="http://localhost/test/piwik/piwik.php?idsite=2" style="border:0" alt="" /></p></noscript> <!--End Piwik Tracking Code --> *boomerang integration **not like this!!
  • 26. How It Works boomerang.js -> StatsD -> Graphite 1. JavaScript triggers image request 2. Beacon server responds with 204 (no cache) 3. StatsD aggregates metrics 4. Graphite stores and provides UI
  • 27. How It Works Script foo -> WebPagetest API -> MySQL 1. wpt_batch.py – submit a batch job for processing 2. WebPagetest API – run tests 3. parse_xml.pl – parse XML response 4. MySQL – store median results 5. Piwik – CompWPT plugin displays results
  • 28. Step 3 pulling it into a dashboard “Make Them Happy Trees”
  • 29. Introducing our Sponsor Sally Squirrel’s Dance Emporium
  • 30. Demo • Demo Site • WebPagetest • REDbot • Graphite • WebPerf90 Dashboard - Piwik
  • 32. Where Should You Focus? stuff to Bu ying ly Pro l ike f ba ss tuf le s air bly o ch uy u b pla n a ne n M yes, there are people here….
  • 33. WebPagetest AIR @patmeenan “For the next ~3 hours, WebPagetest has a Virgin in-flight wifi location available. Last location in the list. #webperf” @cliffcrocker “@patmeenan > Holy Slow! “ @patmeenan “@cliffcrocker Yep - when it's even connecting. Talk about a first-world problem.”
  • 34. How Do You Optimize for the Given Distribution? Traditional WPO Techniques – 14+ Rules Advanced Optimization/Acceleration – Automated WPO Prayer
  • 35. Set Achievable SLAs Find Your Own Meaningful Metric “Item Page – ‘page processing’ should be 18s or faster for 95% of users”
  • 38. VM INSTRUCTIONS Username: webperfdash Password: webperfdash To start the Graphite, node beacon, StatsD, and REDbot log into the VM and execute the following command as the ‘webperfdash’ user from the home directory: $ supervisord The VM should just work (but you may need to disable USB 2.0 controller on import if you do not have the Oracle VM VirtualBox Extensions, see website) in VirtualBox which is available for free for Windows, OS X, or Linux. If you get a USB 2.0 incompatibility error on start then you do not have the the above extension installed and should disable USB when importing the appliance or via the settings or install the extensions directly. The VM has two NICs configured, the first is configured for NAT and the ports are already forwarded. The second uses the HOST NETWORKING scheme ( http://www.virtualbox.org/manual/ch06.html#network_hostonly) which creates a private network shared exclusively by the VM and the host (or any other addition hosts such as WebPagetest workers).
  • 39. Ports Service Port Number SSH 42222 Demo Site 40000 Graphite 49999 HAR Viewer 44444 REDbot 45555 WebPagetest 48888 ShowSlow 47777 boomerang.js Beacon 43000 Server Piwik 48080
  • 40. Aaron & Cliff Office Hours Tuesday 3:50p -4:30p Exhibit Hall – Office Hours ‘C’
  • 42. Come by our booth!

Notes de l'éditeur

  1. Cliff: People react to visual stimuli We are just wired this way Aaron and I both are extremely passionate about this – get your data in front of people
  2. Cliff: Effective dashboards can immediately convey that there is a problem or that the fix is not working! Oil spill in the Gulf. Message: Something is definitely wrong here and the clock is ticking.
  3. Cliff: Conversely a good dashboard can convey a feeling that all is well with the world. Creepy baby monitors are widely adopted by paranoid parents. Message: All is well with the world. You can relax.
  4. Cliff: As engineers, we are notorious for adding switches, complex configurations, and basically making dashboards unusable by anyone who can’t pilot a commercial airliner. Keep it simple. Focus on what you want. Start with nothing, then add what you need as you need it.
  5. Cliff -&gt; Aaron: Setting the stage for today’s talk ‘ Hack Day’ type solutions designed to provide you with a sandbox for experimenting with various web perf tools and data experimentation.
  6. A few months back, Aaron and I discussed a holistic approach to performance monitoring. Staying with this same approach, we will look at 3 or the 4 data sets mentioned in that presentation – eliminating first mile monitoring for this discussion. RUM – Real user measurement Synthetic – Puppeteered browser Analytics – User behavior &amp; demographics, site statistics