SlideShare ist ein Scribd-Unternehmen logo
1 von 74
Downloaden Sie, um offline zu lesen
Jon Fox
@jfox85
Performance Monitoring:
Synthetic
vs
RUM
Velocity 2013
Friday, June 28, 13
Performance Monitoring
Friday, June 28, 13
Performance Monitoring
Two primary methods:
- Synthetic (Active)
- Real User Measurement - RUM (Passive)
Friday, June 28, 13
Synthetic Overview
- Browser in the cloud
- Usually has extra instrumentation
Friday, June 28, 13
Synthetic Overview
- Often in controlled environments
- Reliable bandwidth
- Fixed specs
- Dedicated hardware
Friday, June 28, 13
Synthetic Overview
- Generally in several geographic locations
- Offer various browsers / rendering engines
Friday, June 28, 13
Synthetic - How It Works
Provider Your Website
Cloud Agent
Friday, June 28, 13
Synthetic - How It Works
Provider Your Website
Tell provider to run a test
Friday, June 28, 13
Synthetic - How It Works
Provider Your Website
Provider sends the test to an agent
Friday, June 28, 13
Synthetic - How It Works
Provider Your Website
The agent requests your website
Friday, June 28, 13
Synthetic - How It Works
Provider Your Website
The agent receives the page and renders the response
while measuring load times
Friday, June 28, 13
Synthetic - How It Works
Provider Your Website
The results are sent back to the provider to be viewed
and possibly aggregated with other results
Friday, June 28, 13
Synthetic - What kind of data do we get?
Source: http://www.webpagetest.org/
Friday, June 28, 13
Synthetic - What kind of data do we get?
Source: http://www.webpagetest.org/
Friday, June 28, 13
Synthetic - What kind of data do we get?
Source: http://www.webpagetest.org/
Friday, June 28, 13
Synthetic - What kind of data do we get?
Source: http://www.webpagetest.org/
Friday, June 28, 13
Synthetic - What kind of data do we get?
Source: http://www.webpagetest.org/
Friday, June 28, 13
Synthetic - What kind of data do we get?
Source: http://www.webpagetest.org/
Friday, June 28, 13
Real User Measurement (RUM)
On the other hand we have RUM
Friday, June 28, 13
RUM Overview
- Add JavaScript to the page
- Gather timing data from the browser
<script type='text/javascript'>var TBRUM=TBRUM||{};TBRUM.q=TBRUM.q||
[];TBRUM.q.push(['mark','firstbyte',(new Date).getTime()]);</script>
Friday, June 28, 13
RUM Overview
- Every page and every visitor
- Actual visitor timings
Friday, June 28, 13
RUM Overview
- Covers every device and browser that visits your site
Friday, June 28, 13
RUM - How It Works
Your Website
JavaScript
Beacon
Aggregation /
Processing
SiteVisitor
Friday, June 28, 13
RUM - How It Works
Your Website
JavaScript
Beacon
Aggregation /
Processing
SiteVisitor
The site visitor decides to come to your site
Friday, June 28, 13
RUM - How It Works
Your Website
JavaScript
Beacon
Aggregation /
Processing
SiteVisitor
They request your page and view it as normal
Friday, June 28, 13
RUM - How It Works
Your Website
JavaScript
Beacon
Aggregation /
Processing
SiteVisitor
The page includes the RUM Javascript, which collects
timing data from the browser
SiteVisitor
Friday, June 28, 13
RUM - How It Works
Your Website
JavaScript
Beacon
Aggregation /
Processing
SiteVisitor
The timing data is then sent to the collection service
via a beacon image request
SiteVisitor
Friday, June 28, 13
RUM - How It Works
Your Website
JavaScript
Beacon
Aggregation /
Processing
SiteVisitor
The data is then aggregated and processed to
generate pretty charts and graphs
SiteVisitor
Friday, June 28, 13
RUM - Navigation Timing Spec
Source: https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/NavigationTiming/Overview.html
Friday, June 28, 13
RUM - Navigation Timing Availability
Source: http://caniuse.com/nav-timing
Friday, June 28, 13
RUM - Other Timing Methods
- GoogleToolbar
Source: http://www.google.com/toolbar/ie/index.html
Friday, June 28, 13
RUM - Other Timing Methods
- Page unload cookie
Friday, June 28, 13
RUM - Other Timing Methods
- Start of document timer
Friday, June 28, 13
RUM - Other Data
- Estimated Bandwidth
- IP Address
- URL
- Referer
- Cookies
- Local Storage support
- Number of images, JavaScript, CSS, etc
- User actions on the page
- Memory Usage (very limited availability)
- Anything else you can get from JavaScript!
Friday, June 28, 13
RUM - Resource Timing Spec
Source: http://www.w3.org/TR/resource-timing/
Friday, June 28, 13
State of Resource Timing Spec
- IE10, Chrome, Chrome Mobile
-Various degrees of support / compatibility
- Same origin policy by default
- Override withTiming-Allow-Origin HTTP response header
Friday, June 28, 13
RUM - What kind of data do we get?
Friday, June 28, 13
RUM - What kind of data do we get?
Friday, June 28, 13
RUM - What kind of data do we get?
Friday, June 28, 13
RUM - What kind of data do we get?
Friday, June 28, 13
Comparison
So how do these methods compare?
Friday, June 28, 13
Methodology
Ran both on velocityconf.com
Torbit used for RUM
Webpagetest for Synthetic
Approximately 3 months (3/18/13 - 6/14/13)
Friday, June 28, 13
Methodology
Synthetic hit the following URLs once an hour:
http://velocityconf.com/velocity2013/
http://velocityconf.com/velocity2013/public/schedule/topic/935
http://velocityconf.com/velocity2013/public/content/exhibitors
http://velocityconf.com/velocity2013/public/schedule/grid
http://velocityconf.com/velocity2013/public/content/about
http://velocityconf.com/velocity2013/public/schedule/speakers
Friday, June 28, 13
Methodology
From the following synthetic agents:
Dulles
- Chrome
- IE8
- IE9
- IE10
- Firefox
- Safari
Chicago
- Chrome
San Jose
- IE9
Los Angeles
- Chrome
Dublin
- IE8
Sao Paulo
- IE8
Toronto
- IE8
Amsterdam
- IE9
- Chrome
Frankfurt
- IE9
- Firefox
Moscow
- Chrome
- IE8
Stockholm
- Safari
Delhi
- IE8
China
- IE 8
Tokyo
- IE 8
Sydney
- Chrome
Friday, June 28, 13
Methodology
Real User Measurement:
RUM was run on every page
(as far as I know)
Friday, June 28, 13
Results - Data Overview
Synthetic Load Times
RUM Load Times
Friday, June 28, 13
Results - Data Overview
Synthetic Load Times
RUM Load Times
Friday, June 28, 13
Results - Browser Coverage
Synthetic RUM
- Chrome
- IE 10
- IE 9
- IE 8
- Firefox
- Safari
- Chrome
- IE 10
- IE 9
- IE 8
- IE 7
- Firefox
- Safari
- Opera
- Android
- iPhone
- And more...
Friday, June 28, 13
Results - Geographic Coverage
Synthetic:
Friday, June 28, 13
Results - Geographic Coverage
RUM:
Friday, June 28, 13
Results - Data Insights
RUM:
Synthetic:
0"
5"
10"
15"
20"
25"
30"
35"
40"
45"
50"
1" 2" 3" 4" 5" 6" 7" 8" 9" 10" 11" 12" 13" 14" 15" 16" 17" 18" 19" 20" 21" 22" 23" 24"
Load%Time%(sec)%
Time%(hrs)%
RUM"Avg"
90th"
Syn"Avg"
Friday, June 28, 13
Results - Data Insights
0"
1"
2"
3"
4"
5"
6"
7"
8"
9"
10"
1" 2" 3" 4" 5" 6" 7" 8" 9" 10" 11" 12" 13" 14" 15" 16" 17" 18" 19" 20" 21" 22" 23" 24" 25" 26" 27" 28" 29"
Load%Times%(sec)%
Time%(hrs)%
RUM"Avg"
RUM"90th"
Syn"Avg"
0"
200"
400"
600"
800"
1000"
1200"
1" 2" 3" 4" 5" 6" 7" 8" 9" 10" 11" 12" 13" 14" 15" 16" 17" 18" 19" 20" 21" 22" 23" 24" 25" 26" 27" 28" 29"
Pageviews%
Pageviews"
Friday, June 28, 13
Results - Data Insights
Friday, June 28, 13
Results - Data Insights
Friday, June 28, 13
When To Use?
When should you use one over the other?
Friday, June 28, 13
When to use Synthetic
- Pre-production
- Low / no traffic pages
- Going deep on a problem
- Critical pages and paths
- Monitoring competitors
Friday, June 28, 13
When to use RUM
- Ultimate source of truth
- Finding out you have a problem
- Monitoring trends over time
-Vendor or departmental SLAs
Friday, June 28, 13
Build or Buy? - Synthetic
Should you build it yourself or buy a solution?
Friday, June 28, 13
Build - Synthetic
Open source
Self-host options
Friday, June 28, 13
Reasons to Buy - Synthetic
Need lots of agents
Friday, June 28, 13
Reasons to Buy - Synthetic
Need lots of locations
Friday, June 28, 13
Reasons to Buy - Synthetic
Simpler aggregation and reporting
Friday, June 28, 13
Build or Buy? - RUM
What about building your own RUM?
Friday, June 28, 13
Build - RUM
Collection is pretty easy...
Episodes - Steve Souders
http://stevesouders.com/episodes/
Boomerang - PhilipTellis
https://github.com/lognormal/boomerang
Friday, June 28, 13
Reasons to Buy - RUM
Storage and processing are hard...
Friday, June 28, 13
Reasons to Buy - RUM
Dealing with outliers & bad data
Friday, June 28, 13
Conclusions
So which method should you use?
Friday, June 28, 13
Conclusions
A mix of both is best
Friday, June 28, 13
Why do we care?
And in case you need a reminder...
Friday, June 28, 13
Performance Matters
Aggregated data from 1,000+ Torbit Sites
Friday, June 28, 13
Performance Matters
Aggregated data from 1,000+ Torbit Sites
Friday, June 28, 13
Conclusions
Free options are available:
Synthetic RUM
Friday, June 28, 13
Conclusions
Start collecting data now!
Friday, June 28, 13
Questions?
Jon Fox
jon@torbit.com
@jfox85
Friday, June 28, 13

Weitere ähnliche Inhalte

Ähnlich wie Velocity 2013 - Rum vs Synthetic

Writing SaltStack Modules - OpenWest 2013
Writing SaltStack Modules - OpenWest 2013Writing SaltStack Modules - OpenWest 2013
Writing SaltStack Modules - OpenWest 2013SaltStack
 
"Rum First" NYC Webperf Meetup
"Rum First" NYC Webperf Meetup"Rum First" NYC Webperf Meetup
"Rum First" NYC Webperf MeetupCliff Crocker
 
Selecting a Web Framework
Selecting a Web FrameworkSelecting a Web Framework
Selecting a Web Frameworkpamselle
 
Web Application Performance from User Perspective
Web Application Performance from User PerspectiveWeb Application Performance from User Perspective
Web Application Performance from User PerspectiveŁódQA
 
Green Shoots in the Brownest Field: Being a Startup in Government
Green Shoots in the Brownest Field: Being a Startup in GovernmentGreen Shoots in the Brownest Field: Being a Startup in Government
Green Shoots in the Brownest Field: Being a Startup in GovernmentC4Media
 
Going Responsive with Google Analytics
Going Responsive with Google Analytics Going Responsive with Google Analytics
Going Responsive with Google Analytics NewCity
 
Investigation of YouTube regarding Content Provisioning for HTTP Adaptive Str...
Investigation of YouTube regarding Content Provisioning for HTTP Adaptive Str...Investigation of YouTube regarding Content Provisioning for HTTP Adaptive Str...
Investigation of YouTube regarding Content Provisioning for HTTP Adaptive Str...Alpen-Adria-Universität
 
Prometheanscience
PrometheansciencePrometheanscience
PrometheanscienceJim Forde
 
DIY Synthetic: Private WebPagetest Magic
DIY Synthetic: Private WebPagetest MagicDIY Synthetic: Private WebPagetest Magic
DIY Synthetic: Private WebPagetest MagicJonathan Klein
 
Making the Switch, Part 1: Top 5 Things to Consider When Evaluating Drupal
Making the Switch, Part 1: Top 5 Things to Consider When Evaluating DrupalMaking the Switch, Part 1: Top 5 Things to Consider When Evaluating Drupal
Making the Switch, Part 1: Top 5 Things to Consider When Evaluating DrupalAcquia
 
Max Prin - MnSearch Summit 2018 - SEO for the Current Mobile Landscape
Max Prin - MnSearch Summit 2018 - SEO for the Current Mobile LandscapeMax Prin - MnSearch Summit 2018 - SEO for the Current Mobile Landscape
Max Prin - MnSearch Summit 2018 - SEO for the Current Mobile LandscapeMax Prin
 
Node Tools For Your Grails Toolbox - Gr8Conf 2013
Node Tools For Your Grails Toolbox - Gr8Conf 2013Node Tools For Your Grails Toolbox - Gr8Conf 2013
Node Tools For Your Grails Toolbox - Gr8Conf 2013zanthrash
 
php[architect] Summit Series DevOps 2013 - Rock solid deployment of PHP apps
php[architect] Summit Series DevOps 2013 - Rock solid deployment of PHP appsphp[architect] Summit Series DevOps 2013 - Rock solid deployment of PHP apps
php[architect] Summit Series DevOps 2013 - Rock solid deployment of PHP appsPablo Godel
 
อไจล์ ๑๐๑ รุ่น ๓.๐
อไจล์ ๑๐๑ รุ่น ๓.๐อไจล์ ๑๐๑ รุ่น ๓.๐
อไจล์ ๑๐๑ รุ่น ๓.๐Prathan Dansakulcharoenkit
 
JSDay 2013 - Practical Responsive Web Design
JSDay 2013 - Practical Responsive Web DesignJSDay 2013 - Practical Responsive Web Design
JSDay 2013 - Practical Responsive Web DesignJonathan Klein
 
Atom Feeds Gruser JMS
Atom Feeds Gruser JMSAtom Feeds Gruser JMS
Atom Feeds Gruser JMSilmyggo
 

Ähnlich wie Velocity 2013 - Rum vs Synthetic (20)

Writing SaltStack Modules - OpenWest 2013
Writing SaltStack Modules - OpenWest 2013Writing SaltStack Modules - OpenWest 2013
Writing SaltStack Modules - OpenWest 2013
 
"Rum First" NYC Webperf Meetup
"Rum First" NYC Webperf Meetup"Rum First" NYC Webperf Meetup
"Rum First" NYC Webperf Meetup
 
Storyplayer
StoryplayerStoryplayer
Storyplayer
 
Selecting a Web Framework
Selecting a Web FrameworkSelecting a Web Framework
Selecting a Web Framework
 
Web Application Performance from User Perspective
Web Application Performance from User PerspectiveWeb Application Performance from User Perspective
Web Application Performance from User Perspective
 
Green Shoots in the Brownest Field: Being a Startup in Government
Green Shoots in the Brownest Field: Being a Startup in GovernmentGreen Shoots in the Brownest Field: Being a Startup in Government
Green Shoots in the Brownest Field: Being a Startup in Government
 
Going Responsive with Google Analytics
Going Responsive with Google Analytics Going Responsive with Google Analytics
Going Responsive with Google Analytics
 
Investigation of YouTube regarding Content Provisioning for HTTP Adaptive Str...
Investigation of YouTube regarding Content Provisioning for HTTP Adaptive Str...Investigation of YouTube regarding Content Provisioning for HTTP Adaptive Str...
Investigation of YouTube regarding Content Provisioning for HTTP Adaptive Str...
 
Front end-performance
Front end-performanceFront end-performance
Front end-performance
 
Prometheanscience
PrometheansciencePrometheanscience
Prometheanscience
 
DIY Synthetic: Private WebPagetest Magic
DIY Synthetic: Private WebPagetest MagicDIY Synthetic: Private WebPagetest Magic
DIY Synthetic: Private WebPagetest Magic
 
Making the Switch, Part 1: Top 5 Things to Consider When Evaluating Drupal
Making the Switch, Part 1: Top 5 Things to Consider When Evaluating DrupalMaking the Switch, Part 1: Top 5 Things to Consider When Evaluating Drupal
Making the Switch, Part 1: Top 5 Things to Consider When Evaluating Drupal
 
MnSearch Summit 2018 - Max Prin – Technical SEO Tactics for the Current Mobil...
MnSearch Summit 2018 - Max Prin – Technical SEO Tactics for the Current Mobil...MnSearch Summit 2018 - Max Prin – Technical SEO Tactics for the Current Mobil...
MnSearch Summit 2018 - Max Prin – Technical SEO Tactics for the Current Mobil...
 
Max Prin - MnSearch Summit 2018 - SEO for the Current Mobile Landscape
Max Prin - MnSearch Summit 2018 - SEO for the Current Mobile LandscapeMax Prin - MnSearch Summit 2018 - SEO for the Current Mobile Landscape
Max Prin - MnSearch Summit 2018 - SEO for the Current Mobile Landscape
 
Tsung info
Tsung infoTsung info
Tsung info
 
Node Tools For Your Grails Toolbox - Gr8Conf 2013
Node Tools For Your Grails Toolbox - Gr8Conf 2013Node Tools For Your Grails Toolbox - Gr8Conf 2013
Node Tools For Your Grails Toolbox - Gr8Conf 2013
 
php[architect] Summit Series DevOps 2013 - Rock solid deployment of PHP apps
php[architect] Summit Series DevOps 2013 - Rock solid deployment of PHP appsphp[architect] Summit Series DevOps 2013 - Rock solid deployment of PHP apps
php[architect] Summit Series DevOps 2013 - Rock solid deployment of PHP apps
 
อไจล์ ๑๐๑ รุ่น ๓.๐
อไจล์ ๑๐๑ รุ่น ๓.๐อไจล์ ๑๐๑ รุ่น ๓.๐
อไจล์ ๑๐๑ รุ่น ๓.๐
 
JSDay 2013 - Practical Responsive Web Design
JSDay 2013 - Practical Responsive Web DesignJSDay 2013 - Practical Responsive Web Design
JSDay 2013 - Practical Responsive Web Design
 
Atom Feeds Gruser JMS
Atom Feeds Gruser JMSAtom Feeds Gruser JMS
Atom Feeds Gruser JMS
 

Kürzlich hochgeladen

"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 

Kürzlich hochgeladen (20)

"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 

Velocity 2013 - Rum vs Synthetic

  • 3. Performance Monitoring Two primary methods: - Synthetic (Active) - Real User Measurement - RUM (Passive) Friday, June 28, 13
  • 4. Synthetic Overview - Browser in the cloud - Usually has extra instrumentation Friday, June 28, 13
  • 5. Synthetic Overview - Often in controlled environments - Reliable bandwidth - Fixed specs - Dedicated hardware Friday, June 28, 13
  • 6. Synthetic Overview - Generally in several geographic locations - Offer various browsers / rendering engines Friday, June 28, 13
  • 7. Synthetic - How It Works Provider Your Website Cloud Agent Friday, June 28, 13
  • 8. Synthetic - How It Works Provider Your Website Tell provider to run a test Friday, June 28, 13
  • 9. Synthetic - How It Works Provider Your Website Provider sends the test to an agent Friday, June 28, 13
  • 10. Synthetic - How It Works Provider Your Website The agent requests your website Friday, June 28, 13
  • 11. Synthetic - How It Works Provider Your Website The agent receives the page and renders the response while measuring load times Friday, June 28, 13
  • 12. Synthetic - How It Works Provider Your Website The results are sent back to the provider to be viewed and possibly aggregated with other results Friday, June 28, 13
  • 13. Synthetic - What kind of data do we get? Source: http://www.webpagetest.org/ Friday, June 28, 13
  • 14. Synthetic - What kind of data do we get? Source: http://www.webpagetest.org/ Friday, June 28, 13
  • 15. Synthetic - What kind of data do we get? Source: http://www.webpagetest.org/ Friday, June 28, 13
  • 16. Synthetic - What kind of data do we get? Source: http://www.webpagetest.org/ Friday, June 28, 13
  • 17. Synthetic - What kind of data do we get? Source: http://www.webpagetest.org/ Friday, June 28, 13
  • 18. Synthetic - What kind of data do we get? Source: http://www.webpagetest.org/ Friday, June 28, 13
  • 19. Real User Measurement (RUM) On the other hand we have RUM Friday, June 28, 13
  • 20. RUM Overview - Add JavaScript to the page - Gather timing data from the browser <script type='text/javascript'>var TBRUM=TBRUM||{};TBRUM.q=TBRUM.q|| [];TBRUM.q.push(['mark','firstbyte',(new Date).getTime()]);</script> Friday, June 28, 13
  • 21. RUM Overview - Every page and every visitor - Actual visitor timings Friday, June 28, 13
  • 22. RUM Overview - Covers every device and browser that visits your site Friday, June 28, 13
  • 23. RUM - How It Works Your Website JavaScript Beacon Aggregation / Processing SiteVisitor Friday, June 28, 13
  • 24. RUM - How It Works Your Website JavaScript Beacon Aggregation / Processing SiteVisitor The site visitor decides to come to your site Friday, June 28, 13
  • 25. RUM - How It Works Your Website JavaScript Beacon Aggregation / Processing SiteVisitor They request your page and view it as normal Friday, June 28, 13
  • 26. RUM - How It Works Your Website JavaScript Beacon Aggregation / Processing SiteVisitor The page includes the RUM Javascript, which collects timing data from the browser SiteVisitor Friday, June 28, 13
  • 27. RUM - How It Works Your Website JavaScript Beacon Aggregation / Processing SiteVisitor The timing data is then sent to the collection service via a beacon image request SiteVisitor Friday, June 28, 13
  • 28. RUM - How It Works Your Website JavaScript Beacon Aggregation / Processing SiteVisitor The data is then aggregated and processed to generate pretty charts and graphs SiteVisitor Friday, June 28, 13
  • 29. RUM - Navigation Timing Spec Source: https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/NavigationTiming/Overview.html Friday, June 28, 13
  • 30. RUM - Navigation Timing Availability Source: http://caniuse.com/nav-timing Friday, June 28, 13
  • 31. RUM - Other Timing Methods - GoogleToolbar Source: http://www.google.com/toolbar/ie/index.html Friday, June 28, 13
  • 32. RUM - Other Timing Methods - Page unload cookie Friday, June 28, 13
  • 33. RUM - Other Timing Methods - Start of document timer Friday, June 28, 13
  • 34. RUM - Other Data - Estimated Bandwidth - IP Address - URL - Referer - Cookies - Local Storage support - Number of images, JavaScript, CSS, etc - User actions on the page - Memory Usage (very limited availability) - Anything else you can get from JavaScript! Friday, June 28, 13
  • 35. RUM - Resource Timing Spec Source: http://www.w3.org/TR/resource-timing/ Friday, June 28, 13
  • 36. State of Resource Timing Spec - IE10, Chrome, Chrome Mobile -Various degrees of support / compatibility - Same origin policy by default - Override withTiming-Allow-Origin HTTP response header Friday, June 28, 13
  • 37. RUM - What kind of data do we get? Friday, June 28, 13
  • 38. RUM - What kind of data do we get? Friday, June 28, 13
  • 39. RUM - What kind of data do we get? Friday, June 28, 13
  • 40. RUM - What kind of data do we get? Friday, June 28, 13
  • 41. Comparison So how do these methods compare? Friday, June 28, 13
  • 42. Methodology Ran both on velocityconf.com Torbit used for RUM Webpagetest for Synthetic Approximately 3 months (3/18/13 - 6/14/13) Friday, June 28, 13
  • 43. Methodology Synthetic hit the following URLs once an hour: http://velocityconf.com/velocity2013/ http://velocityconf.com/velocity2013/public/schedule/topic/935 http://velocityconf.com/velocity2013/public/content/exhibitors http://velocityconf.com/velocity2013/public/schedule/grid http://velocityconf.com/velocity2013/public/content/about http://velocityconf.com/velocity2013/public/schedule/speakers Friday, June 28, 13
  • 44. Methodology From the following synthetic agents: Dulles - Chrome - IE8 - IE9 - IE10 - Firefox - Safari Chicago - Chrome San Jose - IE9 Los Angeles - Chrome Dublin - IE8 Sao Paulo - IE8 Toronto - IE8 Amsterdam - IE9 - Chrome Frankfurt - IE9 - Firefox Moscow - Chrome - IE8 Stockholm - Safari Delhi - IE8 China - IE 8 Tokyo - IE 8 Sydney - Chrome Friday, June 28, 13
  • 45. Methodology Real User Measurement: RUM was run on every page (as far as I know) Friday, June 28, 13
  • 46. Results - Data Overview Synthetic Load Times RUM Load Times Friday, June 28, 13
  • 47. Results - Data Overview Synthetic Load Times RUM Load Times Friday, June 28, 13
  • 48. Results - Browser Coverage Synthetic RUM - Chrome - IE 10 - IE 9 - IE 8 - Firefox - Safari - Chrome - IE 10 - IE 9 - IE 8 - IE 7 - Firefox - Safari - Opera - Android - iPhone - And more... Friday, June 28, 13
  • 49. Results - Geographic Coverage Synthetic: Friday, June 28, 13
  • 50. Results - Geographic Coverage RUM: Friday, June 28, 13
  • 51. Results - Data Insights RUM: Synthetic: 0" 5" 10" 15" 20" 25" 30" 35" 40" 45" 50" 1" 2" 3" 4" 5" 6" 7" 8" 9" 10" 11" 12" 13" 14" 15" 16" 17" 18" 19" 20" 21" 22" 23" 24" Load%Time%(sec)% Time%(hrs)% RUM"Avg" 90th" Syn"Avg" Friday, June 28, 13
  • 52. Results - Data Insights 0" 1" 2" 3" 4" 5" 6" 7" 8" 9" 10" 1" 2" 3" 4" 5" 6" 7" 8" 9" 10" 11" 12" 13" 14" 15" 16" 17" 18" 19" 20" 21" 22" 23" 24" 25" 26" 27" 28" 29" Load%Times%(sec)% Time%(hrs)% RUM"Avg" RUM"90th" Syn"Avg" 0" 200" 400" 600" 800" 1000" 1200" 1" 2" 3" 4" 5" 6" 7" 8" 9" 10" 11" 12" 13" 14" 15" 16" 17" 18" 19" 20" 21" 22" 23" 24" 25" 26" 27" 28" 29" Pageviews% Pageviews" Friday, June 28, 13
  • 53. Results - Data Insights Friday, June 28, 13
  • 54. Results - Data Insights Friday, June 28, 13
  • 55. When To Use? When should you use one over the other? Friday, June 28, 13
  • 56. When to use Synthetic - Pre-production - Low / no traffic pages - Going deep on a problem - Critical pages and paths - Monitoring competitors Friday, June 28, 13
  • 57. When to use RUM - Ultimate source of truth - Finding out you have a problem - Monitoring trends over time -Vendor or departmental SLAs Friday, June 28, 13
  • 58. Build or Buy? - Synthetic Should you build it yourself or buy a solution? Friday, June 28, 13
  • 59. Build - Synthetic Open source Self-host options Friday, June 28, 13
  • 60. Reasons to Buy - Synthetic Need lots of agents Friday, June 28, 13
  • 61. Reasons to Buy - Synthetic Need lots of locations Friday, June 28, 13
  • 62. Reasons to Buy - Synthetic Simpler aggregation and reporting Friday, June 28, 13
  • 63. Build or Buy? - RUM What about building your own RUM? Friday, June 28, 13
  • 64. Build - RUM Collection is pretty easy... Episodes - Steve Souders http://stevesouders.com/episodes/ Boomerang - PhilipTellis https://github.com/lognormal/boomerang Friday, June 28, 13
  • 65. Reasons to Buy - RUM Storage and processing are hard... Friday, June 28, 13
  • 66. Reasons to Buy - RUM Dealing with outliers & bad data Friday, June 28, 13
  • 67. Conclusions So which method should you use? Friday, June 28, 13
  • 68. Conclusions A mix of both is best Friday, June 28, 13
  • 69. Why do we care? And in case you need a reminder... Friday, June 28, 13
  • 70. Performance Matters Aggregated data from 1,000+ Torbit Sites Friday, June 28, 13
  • 71. Performance Matters Aggregated data from 1,000+ Torbit Sites Friday, June 28, 13
  • 72. Conclusions Free options are available: Synthetic RUM Friday, June 28, 13
  • 73. Conclusions Start collecting data now! Friday, June 28, 13