SlideShare una empresa de Scribd logo
1 de 74
Descargar para leer sin conexión
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

Más contenido relacionado

Similar a 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
 

Similar a 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
 

Último

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
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
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
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
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
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 

Último (20)

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
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
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
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
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
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 

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