SlideShare uma empresa Scribd logo
1 de 62
Baixar para ler offline
Tracking Performance
Patrick Meenan
@patmeenan
Slides will be available

http://www.slideshare.net/patrickmeenan
Introducing shop-de-nile.com
System Architecture
Web Server (App)
Web Server (App)
Load Balancer
Load Balancer

Product
DB

Reviews
DB

Web Server (App)
Web Server (App)

SOLR FT Search

Web Server (Static)
Web Server (Static)

Product
Images
Us

Them
http://www.memegen.com/meme/dbuj21
New System Architecture
Product
DB

Web Server (App)
Web Server (App)
Load Balancer

Web Server (App)

Load Balancer

Web Server (App)
Varnish
Varnish

Memcache
Memcache
Memcache

Reviews
DB
SOLR FT Search

Web Server (Static)
Web Server (Static)

Product
Images
Testing Plan
● 14 Locations
● 3 “Representative” Pages
○
○
○

Landing Page
Search Results Page
Product Listing Page

● 1 Browser
● First View Only
● Every 5 Minutes (12 samples per hour)
12,096 Tests Per Day
http://www.memegen.com/meme/ek1v79
CDN test plan
● Test 3 CDN’s
● Over 2 Weeks
● Compare against:
○ Each Other
○ Local Performance
○ No CDN
36,288 Tests Per Day
Re-Run Competitive Comparison
●
●
●
●

Globally
20 Page Loads Per Day
3 Representative Pages
1,680 Page Loads
http://www.memegen.com/meme/duqjfs
Real User Monitoring (RUM)
5.28

1.38
http://www.memegen.com/meme/9vyywz
Instrument back-end
http://www.slideshare.net/mikebrittain/metrics-driven-engineering-at-etsy

http://codeascraft.com/
Access Logs -> logster -> statsd -> graphite
Application Performance Measurement (APM)
Cache Hits
Not no much
Testing Plan
● 14 Locations
● 3 “Representative” Pages
○
○
○

Landing Page
Search Results Page
Product Listing Page

● 1 Browser
● First View Only
● Every 5 Minutes (12 samples per hour)
Go buy an SSD

@crucially
http://www.youtube.com/watch?v=H7PJ1oeEyGg
New New System Architecture
Product
DB (SSD)

Web Server (App)
Web Server (App)
Load Balancer

Web Server (App)

Load Balancer

Web Server (App)
Varnish
(SSD)

Web Server (Static)

Memcache

Reviews
DB (SSD)
SOLR FT Search
(SSD)

Web Server (Static)

Varnish
(SSD)

Memcache
Memcache

Product
Images
(SSD)
4.58
Not matching synthetic testing
● Backbone vs last-mile
● Long-tail images
http://www.belshe.com/2010/05/24/more-bandwidth-doesnt-matter-much/
Our
Testing
http://www.belshe.com/2010/05/24/more-bandwidth-doesnt-matter-much/
Our Users
http://www.belshe.com/2010/05/24/more-bandwidth-doesnt-matter-much/
Testing Plan
Images always in edge cache

● 14 Locations
● 3 “Representative” Pages
○
○
○

Landing Page
Search Results Page
Product Listing Page

● 1 Browser
● First View Only
● Every 5 Minutes (12 samples per hour)
New Experience Testing Plan
● 14 Last-Mile Locations
● 3 “Representative” Pages
○
○
○

Landing Page
Random Search Results Page
Random Product Listing Page

● 2 Browsers
○ Desktop
○ Mobile (actual device)
● First View Only
● 20 Samples per day
Measured Load Times still too slow
●
●
●
●

Social Sharing Widgets
Ads
Retargeting pixels
Analytics

All already Async and using best practices
Ummm….
● Large drop in revenue
● Loss of tracking
● Doesn’t “feel” significantly faster
Speed Index FTW
● Measures visual experience
● Synthetic Only (WebPagetest)
Speed Index 3rd Party Evaluation
Speed Index FTW
● Measures visual experience
● Synthetic Only (WebPagetest)
We got this...it’s only code
onload=”performance.mark(‘aft.Image Loaded’)”...

window.onload:
● performance.getEntriesByType(“mark”)
● Report latest aft.* as custom time

http://blog.patrickmeenan.com/2013/07/measuring-performance-of-user-experience.html
Roll-your-own
● Send http beacon to beacon server
○ All timings as query params
○ 204 or transparent 1px gif
○ Log requests to access log

● IP, User Agent and Timings all in each
record
● access log -> logster -> statsd -> graphite
● Profit!
Google Analytics
_gaq.push(['_trackTiming', 'UserTimings', 'aft', measuredTime);
Boomerang/Soasta mPulse
BOOMR.plugins.RT.setTimer(‘custom0’, measuredTime);

https://gist.github.com/pmeenan/5902672
AFT vs onload
AFT
Median

0.932

95th Percentile

4.141

98th Percentile

7.262

onLoad
Median

2.235

95th Percentile

11.787

98th Percentile

26.72

http://www.soasta.com/products/mpulse/
Custom timings in WebPagetest
Where does that leave us?
● Competitive testing with synthetic last-mile
○

After builds pushed to staging/prod

● Performance tracking with RUM custom measurements
○
○

Data can be noisy
No competitive capability (opportunity)
Where does that leave us?
● Competitive testing with synthetic last-mile
○

After builds pushed to staging/prod

● Performance tracking with RUM custom measurements
○
○

Data can be noisy
No competitive capability (opportunity)
Synthetic testing in CI
● PhantomJS + CI
● WebPagetest Private Instance + CI
○

https://github.com/marcelduran/webpagetest-api

● Graphing/Trending artifacts
○
○
○
○

httparchive
graphite
Show Slow
tsviewdb
tsviewdb
●
●

Trending
Regression Detection

https://github.com/google/tsviewdb
People will optimize for what you measure….
So measure what you want optimized.

Mais conteúdo relacionado

Mais procurados

Hands on performance testing and analysis with web pagetest
Hands on performance testing and analysis with web pagetestHands on performance testing and analysis with web pagetest
Hands on performance testing and analysis with web pagetest
Patrick Meenan
 
Web performance testing with web driver
Web performance testing with web driverWeb performance testing with web driver
Web performance testing with web driver
Michael Klepikov
 

Mais procurados (20)

Making the web faster
Making the web fasterMaking the web faster
Making the web faster
 
Velocity EU 2012 - Third party scripts and you
Velocity EU 2012 - Third party scripts and youVelocity EU 2012 - Third party scripts and you
Velocity EU 2012 - Third party scripts and you
 
Hands on performance testing and analysis with web pagetest
Hands on performance testing and analysis with web pagetestHands on performance testing and analysis with web pagetest
Hands on performance testing and analysis with web pagetest
 
Getting the most out of WebPageTest
Getting the most out of WebPageTestGetting the most out of WebPageTest
Getting the most out of WebPageTest
 
WebPagetest - Good, Bad & Ugly
WebPagetest - Good, Bad & UglyWebPagetest - Good, Bad & Ugly
WebPagetest - Good, Bad & Ugly
 
Front-End Single Point of Failure - Velocity 2016 Training
Front-End Single Point of Failure - Velocity 2016 TrainingFront-End Single Point of Failure - Velocity 2016 Training
Front-End Single Point of Failure - Velocity 2016 Training
 
Web performance testing with web driver
Web performance testing with web driverWeb performance testing with web driver
Web performance testing with web driver
 
Service workers - Velocity 2016 Training
Service workers - Velocity 2016 TrainingService workers - Velocity 2016 Training
Service workers - Velocity 2016 Training
 
Automated Testing with Google Chrome - WebDriver- ChromeDriver
Automated Testing with Google Chrome - WebDriver- ChromeDriverAutomated Testing with Google Chrome - WebDriver- ChromeDriver
Automated Testing with Google Chrome - WebDriver- ChromeDriver
 
Metrics, metrics everywhere (but where the heck do you start?)
Metrics, metrics everywhere (but where the heck do you start?)Metrics, metrics everywhere (but where the heck do you start?)
Metrics, metrics everywhere (but where the heck do you start?)
 
Make It Fast - Using Modern Browser Performance APIs to Monitor and Improve t...
Make It Fast - Using Modern Browser Performance APIs to Monitor and Improve t...Make It Fast - Using Modern Browser Performance APIs to Monitor and Improve t...
Make It Fast - Using Modern Browser Performance APIs to Monitor and Improve t...
 
Metrics, Metrics Everywhere (but where the heck do you start?)
Metrics, Metrics Everywhere (but where the heck do you start?)Metrics, Metrics Everywhere (but where the heck do you start?)
Metrics, Metrics Everywhere (but where the heck do you start?)
 
Monitoring web application response times, a new approach
Monitoring web application response times, a new approachMonitoring web application response times, a new approach
Monitoring web application response times, a new approach
 
Building Next Generation Real-Time Web Applications using Websockets
Building Next Generation Real-Time Web Applications using WebsocketsBuilding Next Generation Real-Time Web Applications using Websockets
Building Next Generation Real-Time Web Applications using Websockets
 
Phpworld.2015 scaling magento
Phpworld.2015 scaling magentoPhpworld.2015 scaling magento
Phpworld.2015 scaling magento
 
Asynchronous Web Programming with HTML5 WebSockets and Java
Asynchronous Web Programming with HTML5 WebSockets and JavaAsynchronous Web Programming with HTML5 WebSockets and Java
Asynchronous Web Programming with HTML5 WebSockets and Java
 
HTTPS and HTTP/2
HTTPS and HTTP/2HTTPS and HTTP/2
HTTPS and HTTP/2
 
Advanced Caching Concepts @ Velocity NY 2015
Advanced Caching Concepts @ Velocity NY 2015Advanced Caching Concepts @ Velocity NY 2015
Advanced Caching Concepts @ Velocity NY 2015
 
Metrics, metrics everywhere (but where the heck do you start?)
Metrics, metrics everywhere (but where the heck do you start?)Metrics, metrics everywhere (but where the heck do you start?)
Metrics, metrics everywhere (but where the heck do you start?)
 
Performance Improvements in Browsers
Performance Improvements in BrowsersPerformance Improvements in Browsers
Performance Improvements in Browsers
 

Semelhante a Tracking Performance - Velocity NYC 2013

Tool it Up! - Session #2 - NetPanel
Tool it Up! - Session #2 - NetPanelTool it Up! - Session #2 - NetPanel
Tool it Up! - Session #2 - NetPanel
toolitup
 
Browserscope oscon 2011
Browserscope oscon 2011Browserscope oscon 2011
Browserscope oscon 2011
lsimon
 
Visual Testing: Quality and Speed -- by GIl Tayar, Applitools
Visual Testing: Quality and Speed -- by GIl Tayar, Applitools Visual Testing: Quality and Speed -- by GIl Tayar, Applitools
Visual Testing: Quality and Speed -- by GIl Tayar, Applitools
Applitools
 

Semelhante a Tracking Performance - Velocity NYC 2013 (20)

Parallel programing in web applications - public.pptx
Parallel programing in web applications - public.pptxParallel programing in web applications - public.pptx
Parallel programing in web applications - public.pptx
 
Ahead of the Curve: How 23andMe Improved UX with Performance Edge
Ahead of the Curve: How 23andMe Improved UX with Performance EdgeAhead of the Curve: How 23andMe Improved UX with Performance Edge
Ahead of the Curve: How 23andMe Improved UX with Performance Edge
 
Ad109 - XPages Performance and Scalability
Ad109 - XPages Performance and ScalabilityAd109 - XPages Performance and Scalability
Ad109 - XPages Performance and Scalability
 
improving the performance of Rails web Applications
improving the performance of Rails web Applicationsimproving the performance of Rails web Applications
improving the performance of Rails web Applications
 
Performance Monitoring at Spreadshirt
Performance Monitoring at SpreadshirtPerformance Monitoring at Spreadshirt
Performance Monitoring at Spreadshirt
 
Demystifying Web Vitals
Demystifying Web VitalsDemystifying Web Vitals
Demystifying Web Vitals
 
Performance & dev tools
Performance & dev toolsPerformance & dev tools
Performance & dev tools
 
Web Application Performance from User Perspective
Web Application Performance from User PerspectiveWeb Application Performance from User Perspective
Web Application Performance from User Perspective
 
Improving user experience with real user measurements
Improving user experience with real user measurements Improving user experience with real user measurements
Improving user experience with real user measurements
 
How To Increase Your Website's Visibility - SEO Best Practices - LA2M Presena...
How To Increase Your Website's Visibility - SEO Best Practices - LA2M Presena...How To Increase Your Website's Visibility - SEO Best Practices - LA2M Presena...
How To Increase Your Website's Visibility - SEO Best Practices - LA2M Presena...
 
Tool it Up! - Session #2 - NetPanel
Tool it Up! - Session #2 - NetPanelTool it Up! - Session #2 - NetPanel
Tool it Up! - Session #2 - NetPanel
 
Continuous Performance Testing
Continuous Performance TestingContinuous Performance Testing
Continuous Performance Testing
 
Real User Monitoring: Getting Real Data from Real Users in the Real World - S...
Real User Monitoring: Getting Real Data from Real Users in the Real World - S...Real User Monitoring: Getting Real Data from Real Users in the Real World - S...
Real User Monitoring: Getting Real Data from Real Users in the Real World - S...
 
Keys To World-Class Retail Web Performance - Expert tips for holiday web read...
Keys To World-Class Retail Web Performance - Expert tips for holiday web read...Keys To World-Class Retail Web Performance - Expert tips for holiday web read...
Keys To World-Class Retail Web Performance - Expert tips for holiday web read...
 
Browserscope oscon 2011
Browserscope oscon 2011Browserscope oscon 2011
Browserscope oscon 2011
 
Visual Testing: Quality and Speed -- by GIl Tayar, Applitools
Visual Testing: Quality and Speed -- by GIl Tayar, Applitools Visual Testing: Quality and Speed -- by GIl Tayar, Applitools
Visual Testing: Quality and Speed -- by GIl Tayar, Applitools
 
Client-Side Performance Testing
Client-Side Performance TestingClient-Side Performance Testing
Client-Side Performance Testing
 
Cutting-edge Performance Testing on eCommerce Websites
Cutting-edge Performance Testing on eCommerce WebsitesCutting-edge Performance Testing on eCommerce Websites
Cutting-edge Performance Testing on eCommerce Websites
 
Web Performance Optimization (WPO)
Web Performance Optimization (WPO)Web Performance Optimization (WPO)
Web Performance Optimization (WPO)
 
Advanced automated visual testing - DrupalCon seattle 2019
Advanced automated visual testing - DrupalCon seattle 2019Advanced automated visual testing - DrupalCon seattle 2019
Advanced automated visual testing - DrupalCon seattle 2019
 

Mais de Patrick Meenan

Mais de Patrick Meenan (14)

Resource Prioritization
Resource PrioritizationResource Prioritization
Resource Prioritization
 
HTTP/2 Prioritization
HTTP/2 PrioritizationHTTP/2 Prioritization
HTTP/2 Prioritization
 
Http2 in practice
Http2 in practiceHttp2 in practice
Http2 in practice
 
Resource loading, prioritization, HTTP/2 - oh my!
Resource loading, prioritization, HTTP/2 - oh my!Resource loading, prioritization, HTTP/2 - oh my!
Resource loading, prioritization, HTTP/2 - oh my!
 
How fast is it?
How fast is it?How fast is it?
How fast is it?
 
Machine Learning RUM - Velocity 2016
Machine Learning RUM - Velocity 2016Machine Learning RUM - Velocity 2016
Machine Learning RUM - Velocity 2016
 
TLS - 2016 Velocity Training
TLS - 2016 Velocity TrainingTLS - 2016 Velocity Training
TLS - 2016 Velocity Training
 
Measuring performance - Velocity 2016 Training
Measuring performance - Velocity 2016 TrainingMeasuring performance - Velocity 2016 Training
Measuring performance - Velocity 2016 Training
 
Service Workers for Performance
Service Workers for PerformanceService Workers for Performance
Service Workers for Performance
 
Image optimization
Image optimizationImage optimization
Image optimization
 
Google I/O 2012 - Protecting your user experience while integrating 3rd party...
Google I/O 2012 - Protecting your user experience while integrating 3rd party...Google I/O 2012 - Protecting your user experience while integrating 3rd party...
Google I/O 2012 - Protecting your user experience while integrating 3rd party...
 
Velocity 2012 - Taming the Mobile Beast
Velocity 2012 - Taming the Mobile BeastVelocity 2012 - Taming the Mobile Beast
Velocity 2012 - Taming the Mobile Beast
 
Frontend SPOF
Frontend SPOFFrontend SPOF
Frontend SPOF
 
Web performance testing
Web performance testingWeb performance testing
Web performance testing
 

Último

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 

Último (20)

GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
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...
 
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
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
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...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
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...
 
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
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
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
 
[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
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 

Tracking Performance - Velocity NYC 2013