continuous web performance monitoring with jenkins

27
Continuous Web Performance Monitoring with Jenkins Vienna, July 17 th 2013

Upload: michael-kroell

Post on 24-Jun-2015

4.091 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Continuous Web Performance Monitoring with Jenkins

Continuous WebPerformance

Monitoring withJenkins

Vienna, July 17th 2013

Page 2: Continuous Web Performance Monitoring with Jenkins

Web Performance is seriousThe correlation between web performance and conversionis a Measuring performance provides a lever for Fun & ProfitMeasuring it continuously helps to identify issues early…and the best part about that, it is

fact

Page 3: Continuous Web Performance Monitoring with Jenkins

to set up

Page 4: Continuous Web Performance Monitoring with Jenkins

so easy, it will make you

Page 5: Continuous Web Performance Monitoring with Jenkins

Jenkins, YSlow, sitespeed.ioThere is a number of different tools to integrate into Jenkins forweb performance monitoringTwo of them are: YSlow and sitespeed.ioDifferent tools, different approaches:

Track one or many URLs with one jobWhich metrics to apply

Page 6: Continuous Web Performance Monitoring with Jenkins

How does itwork?

Page 7: Continuous Web Performance Monitoring with Jenkins

Steps1. Set up Jenkins2. Set up YSLow and/or sitespeed.io3. Configure Jenkins projects

Page 8: Continuous Web Performance Monitoring with Jenkins

Setting up JenkinsPackaged for a number OS and distributionsE.g.

Often, the Jenkins package shipped with the OS is out-of-dateInstall additional plugins via the Jenkins UI:

TAP pluginPlot plugin

apt-get install jenkins

Page 9: Continuous Web Performance Monitoring with Jenkins

Steps1. Set up Jenkins ✓2. Set up YSLow and/or sitespeed.io3. Configure Jenkins projects

Page 10: Continuous Web Performance Monitoring with Jenkins

YSlow & JenkinsBuilt on PhantomJSSample install on a Debian (sid) box

apt-get install phantomjs unzipmkdir -p ~/apps/yslow.js &&\curl http://yslow.org/yslow-phantomjs-3.1.5.zip | funzip > ~/apps/yslow.js/yslow.js

Page 11: Continuous Web Performance Monitoring with Jenkins

Steps1. Set up Jenkins ✓2. Set up YSLow ✓ and/or sitespeed.io3. Configure Jenkins projects

Page 12: Continuous Web Performance Monitoring with Jenkins

sitespeed.io & JenkinsBuilt on PhantomJS (>=1.9)Sample install on a Debian (sid) box

apt-get install phantomjs xsltproc gitmkdir ~/apps/ && cd ~/apps &&\git clone https://github.com/soulgalore/sitespeed.io.git

Page 13: Continuous Web Performance Monitoring with Jenkins

right?

Page 14: Continuous Web Performance Monitoring with Jenkins

Steps1. Set up Jenkins ✓2. Set up YSLow or sitespeed.io ✓3. Configure Jenkins projects

Page 15: Continuous Web Performance Monitoring with Jenkins

Sample project using YSlowShell commands

# Create TAP result with the YSLow grade resultsphantomjs $pathto/yslow.js -i grade \ -t '{"overall": "C", "ycdn": "F"}' \ -f tap http://xims.info/ > yslow.tap# Create component metrics result for plottingphantomjs $pathto/yslow.js -i comps \ -f xml http://xims.info/ > yslow.xml

Page 16: Continuous Web Performance Monitoring with Jenkins

Sample project using YSlowPost-Build Action Plugins

Page 17: Continuous Web Performance Monitoring with Jenkins

Sample project using YSlowPost-Build Action Plugins

Page 18: Continuous Web Performance Monitoring with Jenkins

Sample project usingsitespeed.io

Shell commands

# Create an HTML report$pathto/sitespeed.io \ -r "$WORKSPACE/sitespeed-result/" \ -u http://xims.info/# Create Junit outputmkdir -p "$WORKSPACE/sitespeed-junit"/home/pepl/apps/sitespeed.io/sitespeed-junit.io \ -r "$WORKSPACE/sitespeed-result/" \ -o "$WORKSPACE/sitespeed-junit" -l 85 -a 85

Page 19: Continuous Web Performance Monitoring with Jenkins

How does it look like?Screenshots & Live Demo

Page 20: Continuous Web Performance Monitoring with Jenkins

TAP Results sample (YSlow)

Page 21: Continuous Web Performance Monitoring with Jenkins

Junit Results sample(sitespeed.io)

Page 22: Continuous Web Performance Monitoring with Jenkins

Time To First Byte sample graph

Page 23: Continuous Web Performance Monitoring with Jenkins

sitespeed.io HTML report (from Jenkins project

workspace)

Page 24: Continuous Web Performance Monitoring with Jenkins
Page 25: Continuous Web Performance Monitoring with Jenkins

Why not just use GA instead?Question is wrong, use GA in addition!Still: Via Jenkins you'll get

Checks and Alerts directly after commit or deploymentGA can not be that specificGA might not have performance stats for your domain

Page 26: Continuous Web Performance Monitoring with Jenkins

ReferencesYSlow for Phantom.jsJenkins & sitespeed.io

Page 27: Continuous Web Performance Monitoring with Jenkins

Thank You! Questions?