SlideShare a Scribd company logo
1 
Automate web performance metrics 
how to measure cdn 
performance? 
Marc Cortinas – Production Service - Webops - August 2014
2 
Agenda 
Why? 
Increase web preformance = Sales 
Motivation PS-9063 
1. How to measure web performance metrics? 
2. How to automated web testing? 
3. Combine: automate + web performance 
4. What’s NodeJS? PhantomJS? QtWebKit? 
5. Phantomas – Features 
6. Phantomas – Metric Choice 
7. Arquitecture 
8. Grafana Dashboard 
9. Which CDN are we goind to measure?
Tools used to measure web performance metrics 
MAIN OBJECTIVE: 
Enumerate different tools to calculate web performance in our application 
Tools: 
1. Pluguins/Browser features:  Firebug, HTTP Tamper Data, Chrome 
Developer Tools, Firefox Developer Tools, etc…  
2. applications: Fiddler, Har 101(maybe gained by 
phantomjs)+Tools(yslow),phantomas-grunt 
3. $$ External Services $$ : Iplabel, Monitis, Pingdom, Apica, AlertSite 
4. Others solutions: 
3 
1. Nagios + check_http 
2. Time + Curl/wget 
3. Monit + http check 
4. Munin + http_loadtime
4 
Tools used to automate web testing 
MAIN OBJECTIVE: 
Enumerate different tools to automate web testing 
Tools: 
1. Selenium Grid + Jenkins 
2. Others +++ Help me!!! 
Combine: automate + web performance 
MAIN OBJECTIVE: 
Automate some web performance metric solution 
Candidates: (all based on NodeJS) 
1. PhantomJS + Yslow : HAR + YSLOW 
 Yslow: less features than phantomas 
5 
2. Grunt-phantomas : 
 Build-GUI from phantomas is so limited 
 Data stored in JSON file 
3. Our solution: Grafana + Phantomas 
1. Phantomas to collect data in CSV files 
2. phan2graph.py Python Script to send to graphite 
3. One sensor in each AWS EC2 region (blog account) 
 Micro instances is not allowed on VPC (ireland) 
4. Sync whisper files(+backup) VS multiples datasources in 
Grafana(+realtime)
What’s NodeJS? PhantomJS? QtWebKit? 
MAIN OBJECTIVE: 
Describe basic concepts to understand phantomas: 
1. NodeJS: is a platform built on Chrome's JavaScript runtime for easily building 
6 
fast, scalable network applications 
2. PhantomJS: PhantomJS is a headless WebKit scriptable with a JavaScript 
API. It has fast and native support for various web standards: DOM handling, 
CSS selector, JSON, Canvas, and SVG. Based on QtWebKit 
3. QtWebKit: web content engine based on the Open Source WebKit project, 
the same engine used by browsers such as Google Chrome and Safari from 
Apple.
7 
Phantomas - Features 
MAIN OBJECTIVE: 
List of main useful features 
Features: 
1.  Command line tool  
2. Internal solution, I prefer that external solution 
3. Full-load page, 
4. 3rd parties calls can be discarted (explicit list of domain allowed) 
5. Multiple runs to improve median datas 
6. Differents output data formats: JSON, CSV, ElasticSearch, 
7. Metrics can be sent to statds, elasticsearch (graphite too now! ) 
8. Timeout parameter 
9. 2 web engine avaible: qtwebkit (default) or gecko (experimental) 
10. User-agent switcher 
11. HAR file export 
12. Screenshot to SVG
8 
Phantomas – Metrics Choice 
MAIN OBJECTIVE: 
List of metrics: https://github.com/macbre/phantomas 
Metrics selected to choice CDN: 
1. Median Latency: median value of time to the first byte for all responses 
2. Full Load Page Time: time it took to receive the last byte of the last HTTP 
response 
3. Number of assets not gziped: static assets that were not gzipped 
4. Fastest Response: the time to the last byte of the fastest response 
Metrics not analized yet but maybe is interesting: 
timeToFirstCss: time it took to receive the last byte of the first CSS 
timeToFirstJs: time it took to receive the last byte of the first JS 
timeToFirstImage: time it took to receive the last byte of the first image 
cachingNotSpecified: responses with no caching header sent (either Cache-Control or Expires) 
cachingTooShort: responses with too short (less than a week) caching time 
cachingDisabled: responses with caching disabled (max-age=0) 
oldCachingHeaders: responses with old, HTTP 1.0 caching headers (Expires and Pragma)
9 
Architecture 
CSV 
phant2graph.py 
Grafana 
phant 
AWS 
Cogent 
Colt 
other.. 
Akamai 
Fastly 
webop 
Graphite Graphite 
rsync 
whisper file whisper file 
Code Name Graphite URL 
ap-southeast-1 Singapore http://phant-singapore.services.odigeo.com/dashboard/ - Singapore 
ap-southeast-2 Sydney http://phant-sydney.services.odigeo.com/dashboard/ - Sydney 
eu-west-1 Ireland http://phant-ireland.services.odigeo.com/dashboard/ - Ireland 
sa-east-1 Sao Paulo http://phant-saopaulo.services.odigeo.com/dashboard/ - Saopaulo 
us-east-1 Northern Virginia http://phant-virginia.services.odigeo.com/dashboard/ - Virginia 
us-west-1 Northern California http://phant-california.services.odigeo.com/dashboard/ - California
10 
Grafana Dashboard 
• Web performance by CDN 
• Web performance by Region
Which CDN are we goind to measure? 
1. All content: the main domain browseable throught CDN 
1. AWS Cloudfront 
2. Fastly 
3. Limelight 
4. Akamai 
5. EdgeCast 
6. Own 
7. … 
8. Multi-CDN (JS detect the region and select CDN) 
2. Only static: exclusive domain for static content 
11 
1. AWS Cloudfront 
2. Fastly
12 
Thanks... Questions?

More Related Content

PPTX
WordPress + NGINX Best Practices with EasyEngine
PPTX
Drupal 8 and NGINX
PPTX
NGINX for Application Delivery & Acceleration
KEY
Nginx - Tips and Tricks.
PPTX
Benchmarking NGINX for Accuracy and Results
PPTX
Load Balancing and Scaling with NGINX
PPT
Nginx internals
PDF
Altitude SF 2017: The power of the network
WordPress + NGINX Best Practices with EasyEngine
Drupal 8 and NGINX
NGINX for Application Delivery & Acceleration
Nginx - Tips and Tricks.
Benchmarking NGINX for Accuracy and Results
Load Balancing and Scaling with NGINX
Nginx internals
Altitude SF 2017: The power of the network

What's hot (20)

PDF
Using NGINX as an Effective and Highly Available Content Cache
PPTX
Maximizing PHP Performance with NGINX
PPTX
5 things you didn't know nginx could do
PDF
What's New in NGINX Plus R12?
PPTX
Delivering High-Availability Web Services with NGINX Plus on AWS
PPTX
Altitude SF 2017: Fastly GSLB: Scaling your microservice and multi-cloud envi...
PPTX
Mitigating Security Threats with Fastly - Joe Williams at Fastly Altitude 2015
PDF
Altitude SF 2017: Debugging Fastly VCL 101
PPTX
5 things you didn't know nginx could do velocity
PDF
Altitude SF 2017: Advanced VCL: Shielding and Clustering
PDF
HTTP cache @ PUG Rome 03-29-2011
PDF
Load Balancing Applications with NGINX in a CoreOS Cluster
PDF
High Concurrency Architecture and Laravel Performance Tuning
PDF
Pulsar Summit Asia - Running a secure pulsar cluster
ODP
Choosing a Web Architecture for Perl
PDF
Lessons from managing a Pulsar cluster (Nutanix)
PDF
Как сделать высоконагруженный сервис, не зная количество нагрузки / Олег Обле...
PDF
Camel Desing Patterns Learned Through Blood, Sweat, and Tears
PDF
Altitude SF 2017: Optimizing your hit rate
Using NGINX as an Effective and Highly Available Content Cache
Maximizing PHP Performance with NGINX
5 things you didn't know nginx could do
What's New in NGINX Plus R12?
Delivering High-Availability Web Services with NGINX Plus on AWS
Altitude SF 2017: Fastly GSLB: Scaling your microservice and multi-cloud envi...
Mitigating Security Threats with Fastly - Joe Williams at Fastly Altitude 2015
Altitude SF 2017: Debugging Fastly VCL 101
5 things you didn't know nginx could do velocity
Altitude SF 2017: Advanced VCL: Shielding and Clustering
HTTP cache @ PUG Rome 03-29-2011
Load Balancing Applications with NGINX in a CoreOS Cluster
High Concurrency Architecture and Laravel Performance Tuning
Pulsar Summit Asia - Running a secure pulsar cluster
Choosing a Web Architecture for Perl
Lessons from managing a Pulsar cluster (Nutanix)
Как сделать высоконагруженный сервис, не зная количество нагрузки / Олег Обле...
Camel Desing Patterns Learned Through Blood, Sweat, and Tears
Altitude SF 2017: Optimizing your hit rate
Ad

Similar to how to mesure web performance metrics (20)

PPTX
Gruntwork Executive Summary
PPTX
Analysis of Google Page Speed Insight
PDF
Clickhouse at Cloudflare. By Marek Vavrusa
PDF
Clickhouse at Cloudflare. By Marek Vavrusa
PDF
Easy access to open stack object storage
PDF
Stream Processing with Apache Kafka and .NET
PPTX
Building a REST API with Cassandra on Datastax Astra Using Python and Node
PDF
Droplr Serverless Revolution - How we killed 50 servers in a year
PDF
Massively Scaled High Performance Web Services with PHP
PDF
Top 8 WCM Trends 2010
PDF
Building a Global-Scale Multi-Tenant Cloud Platform on AWS and Docker: Lesson...
PPTX
JS digest. November 2017
PDF
12 core technologies you should learn, love, and hate to be a 'real' technocrat
PDF
When Third Parties Stop Being Polite... and Start Getting Real
PDF
Fluent 2018: When third parties stop being polite... and start getting real
PDF
IoT-javascript-2019-fosdem
PDF
FIWARE Wednesday Webinars - Short Term History within Smart Systems
PDF
From CoreOS to Kubernetes and Concourse CI
DOCX
Perf test Eng interview preparation
PDF
Serverless Architectures on AWS in practice - OSCON 2018
Gruntwork Executive Summary
Analysis of Google Page Speed Insight
Clickhouse at Cloudflare. By Marek Vavrusa
Clickhouse at Cloudflare. By Marek Vavrusa
Easy access to open stack object storage
Stream Processing with Apache Kafka and .NET
Building a REST API with Cassandra on Datastax Astra Using Python and Node
Droplr Serverless Revolution - How we killed 50 servers in a year
Massively Scaled High Performance Web Services with PHP
Top 8 WCM Trends 2010
Building a Global-Scale Multi-Tenant Cloud Platform on AWS and Docker: Lesson...
JS digest. November 2017
12 core technologies you should learn, love, and hate to be a 'real' technocrat
When Third Parties Stop Being Polite... and Start Getting Real
Fluent 2018: When third parties stop being polite... and start getting real
IoT-javascript-2019-fosdem
FIWARE Wednesday Webinars - Short Term History within Smart Systems
From CoreOS to Kubernetes and Concourse CI
Perf test Eng interview preparation
Serverless Architectures on AWS in practice - OSCON 2018
Ad

Recently uploaded (20)

PPTX
Construction Project Organization Group 2.pptx
PDF
keyrequirementskkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
PDF
PRIZ Academy - 9 Windows Thinking Where to Invest Today to Win Tomorrow.pdf
PPTX
web development for engineering and engineering
PPTX
FINAL REVIEW FOR COPD DIANOSIS FOR PULMONARY DISEASE.pptx
PPTX
Internet of Things (IOT) - A guide to understanding
PDF
composite construction of structures.pdf
PPTX
Recipes for Real Time Voice AI WebRTC, SLMs and Open Source Software.pptx
PDF
PPT on Performance Review to get promotions
PPTX
Geodesy 1.pptx...............................................
PDF
Well-logging-methods_new................
PPTX
OOP with Java - Java Introduction (Basics)
PPTX
Foundation to blockchain - A guide to Blockchain Tech
PPT
Mechanical Engineering MATERIALS Selection
PPTX
KTU 2019 -S7-MCN 401 MODULE 2-VINAY.pptx
PPTX
IOT PPTs Week 10 Lecture Material.pptx of NPTEL Smart Cities contd
PDF
BMEC211 - INTRODUCTION TO MECHATRONICS-1.pdf
PPTX
Strings in CPP - Strings in C++ are sequences of characters used to store and...
PDF
Embodied AI: Ushering in the Next Era of Intelligent Systems
PPTX
M Tech Sem 1 Civil Engineering Environmental Sciences.pptx
Construction Project Organization Group 2.pptx
keyrequirementskkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
PRIZ Academy - 9 Windows Thinking Where to Invest Today to Win Tomorrow.pdf
web development for engineering and engineering
FINAL REVIEW FOR COPD DIANOSIS FOR PULMONARY DISEASE.pptx
Internet of Things (IOT) - A guide to understanding
composite construction of structures.pdf
Recipes for Real Time Voice AI WebRTC, SLMs and Open Source Software.pptx
PPT on Performance Review to get promotions
Geodesy 1.pptx...............................................
Well-logging-methods_new................
OOP with Java - Java Introduction (Basics)
Foundation to blockchain - A guide to Blockchain Tech
Mechanical Engineering MATERIALS Selection
KTU 2019 -S7-MCN 401 MODULE 2-VINAY.pptx
IOT PPTs Week 10 Lecture Material.pptx of NPTEL Smart Cities contd
BMEC211 - INTRODUCTION TO MECHATRONICS-1.pdf
Strings in CPP - Strings in C++ are sequences of characters used to store and...
Embodied AI: Ushering in the Next Era of Intelligent Systems
M Tech Sem 1 Civil Engineering Environmental Sciences.pptx

how to mesure web performance metrics

  • 1. 1 Automate web performance metrics how to measure cdn performance? Marc Cortinas – Production Service - Webops - August 2014
  • 2. 2 Agenda Why? Increase web preformance = Sales Motivation PS-9063 1. How to measure web performance metrics? 2. How to automated web testing? 3. Combine: automate + web performance 4. What’s NodeJS? PhantomJS? QtWebKit? 5. Phantomas – Features 6. Phantomas – Metric Choice 7. Arquitecture 8. Grafana Dashboard 9. Which CDN are we goind to measure?
  • 3. Tools used to measure web performance metrics MAIN OBJECTIVE: Enumerate different tools to calculate web performance in our application Tools: 1. Pluguins/Browser features:  Firebug, HTTP Tamper Data, Chrome Developer Tools, Firefox Developer Tools, etc…  2. applications: Fiddler, Har 101(maybe gained by phantomjs)+Tools(yslow),phantomas-grunt 3. $$ External Services $$ : Iplabel, Monitis, Pingdom, Apica, AlertSite 4. Others solutions: 3 1. Nagios + check_http 2. Time + Curl/wget 3. Monit + http check 4. Munin + http_loadtime
  • 4. 4 Tools used to automate web testing MAIN OBJECTIVE: Enumerate different tools to automate web testing Tools: 1. Selenium Grid + Jenkins 2. Others +++ Help me!!! 
  • 5. Combine: automate + web performance MAIN OBJECTIVE: Automate some web performance metric solution Candidates: (all based on NodeJS) 1. PhantomJS + Yslow : HAR + YSLOW  Yslow: less features than phantomas 5 2. Grunt-phantomas :  Build-GUI from phantomas is so limited  Data stored in JSON file 3. Our solution: Grafana + Phantomas 1. Phantomas to collect data in CSV files 2. phan2graph.py Python Script to send to graphite 3. One sensor in each AWS EC2 region (blog account)  Micro instances is not allowed on VPC (ireland) 4. Sync whisper files(+backup) VS multiples datasources in Grafana(+realtime)
  • 6. What’s NodeJS? PhantomJS? QtWebKit? MAIN OBJECTIVE: Describe basic concepts to understand phantomas: 1. NodeJS: is a platform built on Chrome's JavaScript runtime for easily building 6 fast, scalable network applications 2. PhantomJS: PhantomJS is a headless WebKit scriptable with a JavaScript API. It has fast and native support for various web standards: DOM handling, CSS selector, JSON, Canvas, and SVG. Based on QtWebKit 3. QtWebKit: web content engine based on the Open Source WebKit project, the same engine used by browsers such as Google Chrome and Safari from Apple.
  • 7. 7 Phantomas - Features MAIN OBJECTIVE: List of main useful features Features: 1.  Command line tool  2. Internal solution, I prefer that external solution 3. Full-load page, 4. 3rd parties calls can be discarted (explicit list of domain allowed) 5. Multiple runs to improve median datas 6. Differents output data formats: JSON, CSV, ElasticSearch, 7. Metrics can be sent to statds, elasticsearch (graphite too now! ) 8. Timeout parameter 9. 2 web engine avaible: qtwebkit (default) or gecko (experimental) 10. User-agent switcher 11. HAR file export 12. Screenshot to SVG
  • 8. 8 Phantomas – Metrics Choice MAIN OBJECTIVE: List of metrics: https://github.com/macbre/phantomas Metrics selected to choice CDN: 1. Median Latency: median value of time to the first byte for all responses 2. Full Load Page Time: time it took to receive the last byte of the last HTTP response 3. Number of assets not gziped: static assets that were not gzipped 4. Fastest Response: the time to the last byte of the fastest response Metrics not analized yet but maybe is interesting: timeToFirstCss: time it took to receive the last byte of the first CSS timeToFirstJs: time it took to receive the last byte of the first JS timeToFirstImage: time it took to receive the last byte of the first image cachingNotSpecified: responses with no caching header sent (either Cache-Control or Expires) cachingTooShort: responses with too short (less than a week) caching time cachingDisabled: responses with caching disabled (max-age=0) oldCachingHeaders: responses with old, HTTP 1.0 caching headers (Expires and Pragma)
  • 9. 9 Architecture CSV phant2graph.py Grafana phant AWS Cogent Colt other.. Akamai Fastly webop Graphite Graphite rsync whisper file whisper file Code Name Graphite URL ap-southeast-1 Singapore http://phant-singapore.services.odigeo.com/dashboard/ - Singapore ap-southeast-2 Sydney http://phant-sydney.services.odigeo.com/dashboard/ - Sydney eu-west-1 Ireland http://phant-ireland.services.odigeo.com/dashboard/ - Ireland sa-east-1 Sao Paulo http://phant-saopaulo.services.odigeo.com/dashboard/ - Saopaulo us-east-1 Northern Virginia http://phant-virginia.services.odigeo.com/dashboard/ - Virginia us-west-1 Northern California http://phant-california.services.odigeo.com/dashboard/ - California
  • 10. 10 Grafana Dashboard • Web performance by CDN • Web performance by Region
  • 11. Which CDN are we goind to measure? 1. All content: the main domain browseable throught CDN 1. AWS Cloudfront 2. Fastly 3. Limelight 4. Akamai 5. EdgeCast 6. Own 7. … 8. Multi-CDN (JS detect the region and select CDN) 2. Only static: exclusive domain for static content 11 1. AWS Cloudfront 2. Fastly