Added simple jekyll search and document cleanup (#1750)

This commit is contained in:
Peter Hedenskog 2017-10-25 09:20:06 +02:00 committed by GitHub
parent 290805a184
commit 0b6d456320
37 changed files with 157 additions and 316 deletions

View File

@ -242,3 +242,12 @@ blockquote span:before {
#upgradeTable {
overflow-x: auto;
}
.input-field {
font-size: 25px;
margin: 30px auto 0;
display: block;
border: solid 1px #000000;
border-radius: 4px;
padding: 10px 20px;
}

View File

@ -9,7 +9,7 @@
<a href="{{site.baseurl}}/" {% if page.nav == 'start' %}class="active" {% endif %}>Start</a>
</li>
<li>
<a href="{{site.baseurl}}/documentation/" {% if page.nav == 'tools' %}class="active" {% endif %}>Documentation</a>
<a href="{{site.baseurl}}/documentation/" {% if page.nav == 'documentation' %}class="active" {% endif %}>Documentation</a>
<ul>
<li><a href="{{site.baseurl}}/documentation/sitespeed.io/">sitespeed.io</a></li>
<li><a href="{{site.baseurl}}/documentation/coach/">Coach</a></li>
@ -27,7 +27,7 @@
<a href="{{site.baseurl}}/blog/" {% if page.nav == 'blog' %}class="active" {% endif %}>Blog</a>
</li>
<li>
<a href="{{site.baseurl}}/faq/" {% if page.nav == 'faq' %}class="active" {% endif %}>FAQ</a>
<a href="{{site.baseurl}}/search/" {% if page.nav == 'search' %}class="active" {% endif %}>Search</a>
</li>
</ul>
</div>

View File

@ -7,4 +7,4 @@
* [PageXray](/documentation/pagexray/) {% include_relative version/pagexray.txt %} [[npm](https://www.npmjs.com/package/pagexray)]
* [Compare](https://compare.sitespeed.io/)
* [Throttle](/documentation/throttle/) {% include_relative version/throttle.txt %} [[npm](https://www.npmjs.com/package/@sitespeed.io/throttle)]
* [Chrome-HAR](/documentation/chrome-har/) [[npm](https://www.npmjs.com/package/chrome-har]
* [Chrome-HAR](/documentation/chrome-har/) [[npm](https://www.npmjs.com/package/chrome-har)]

View File

@ -1,9 +1,10 @@
---
layout: default
title: Browsertime
description:
keywords: tools, documentation, web performance
description: Access the Web Performance Timeline, from your browser, in your terminal!
keywords: configuration, browsertime, firefox, chrome, video, speed index
author: Peter Hedenskog
category: browsertime
nav: documentation
image: https://www.sitespeed.io/img/sitespeed-2.0-twitter.png
twitterdescription:

View File

@ -5,6 +5,7 @@ description: Create Chrome HAR files bases on events from the Chrome Debugging P
keywords: Chrome HAR, documentation, web performance
author: Peter Hedenskog
nav: documentation
category: chrome-har
image: https://www.sitespeed.io/img/sitespeed-2.0-twitter.png
twitterdescription:
---

View File

@ -1,10 +1,11 @@
---
layout: default
title: Coach
description:
keywords: coach, documentation, web performance
title: Coach for developers.
description: What you need to know to do changes to the coach.
keywords: coach, documentation, developers, web performance
author: Peter Hedenskog
nav: documentation
category: coach
image: https://www.sitespeed.io/img/sitespeed-2.0-twitter.png
twitterdescription:
---

View File

@ -1,10 +1,11 @@
---
layout: default
title: Coach
description:
title: How to use the coach.
description: Run the coach in Docker or use npm nodejs.
keywords: coach, documentation, web performance
author: Peter Hedenskog
nav: documentation
category: coach
image: https://www.sitespeed.io/img/sitespeed-2.0-twitter.png
twitterdescription:
---

View File

@ -1,10 +1,11 @@
---
layout: default
title: Coach
description:
title: The coach - Clear Eyes. Full Hearts. Cant Lose!
description: Use the coach to find performance problems on your page.
keywords: tools, documentation, web performance
author: Peter Hedenskog
nav: documentation
category: coach
image: https://www.sitespeed.io/img/sitespeed-2.0-twitter.png
twitterdescription:
---

View File

@ -1,10 +1,11 @@
---
layout: default
title: Coach
description:
keywords: coach, documentation, web performance
title: Coach Introduction
description: Why do you need the coach.
keywords: coach, documentation, web performance, yslow
author: Peter Hedenskog
nav: documentation
category: coach
image: https://www.sitespeed.io/img/sitespeed-2.0-twitter.png
twitterdescription:
---

View File

@ -1,10 +1,11 @@
---
layout: default
title: Compare
description: Compare HAR files.
keywords: compare, documentation, web performance
title: Compare HAR files.
description: Compare your HAR files to easier find regressions.
keywords: compare, documentation, web performance, HAR
author: Peter Hedenskog
nav: documentation
category: compare
image: https://www.sitespeed.io/img/sitespeed-2.0-twitter.png
twitterdescription:
---
@ -17,8 +18,8 @@ Make it easier to find regressions by comparing your [HAR](http://www.softwareis
## First: Shout out!
We couldn't built compare without the support or inspiration from the following people:
* Thank you [Michael Mrowetz](https://twitter.com/MicMro) :bow: for creating [PerfCascade](https://github.com/micmro/PerfCascade) (the SVG HAR waterfall viewer).
* Thank you [Patrick Meenan](https://twitter.com/patmeenan) :bow:. Pat has built the HAR compare viewer in [WebPageTest](https://www.webpagetest.org/) that inspired us to the idea with the slider.
* Thank you [Michael Mrowetz](https://twitter.com/MicMro) for creating [PerfCascade](https://github.com/micmro/PerfCascade) (the SVG HAR waterfall viewer).
* Thank you [Patrick Meenan](https://twitter.com/patmeenan) . Pat has built the HAR compare viewer in [WebPageTest](https://www.webpagetest.org/) that inspired us to the idea with the slider.
If you like our project, please give them also some extra love :)

View File

@ -1,14 +1,15 @@
---
layout: default
title: Documentation for the sitespeed.io suite.
description: Here's the documentation of how to use all the sitespeed.io tools.
keywords: tools, documentation, web performance
description: Here's the documentation of how to use all the sitespeed.io tools. Use latest LTS release 8.x of NodeJs or Docker containers.
keywords: tools, documentation, web performance, version, nodejs.
nav: documentation
image: https://www.sitespeed.io/img/sitespeed-2.0-twitter.png
twitterdescription: Documentation for the sitespeed.io.
---
# Documentation
You should use the latest LTS release (8.x) of NodeJS to run the sitespeed.io tools.
* [sitespeed.io]({{site.baseurl}}/documentation/sitespeed.io/) - get all the performance aspects of your site.
* [Coach]({{site.baseurl}}/documentation/coach/) - get the advice you need to make your page as fast as possible.

View File

@ -1,10 +1,11 @@
---
layout: default
title: PageXray
description:
title: Use PageXray to convert your HAR file to a more readable format.
description: You can use PageXray from NodeJS or directly in JavaScript.
keywords: tools, documentation, web performance
author: Peter Hedenskog
nav: documentation
category: pagexray
image: https://www.sitespeed.io/img/sitespeed-2.0-twitter.png
twitterdescription:
---

View File

@ -1,9 +1,10 @@
---
layout: default
title: Browsers sitespeed.io
description: You can use Firefox, Chrome and Chrome on Android to collect metrics.
keywords: browsers, documentation, web performance, sitespeed.io
title: Use Firefox, Chrome or Chrome on Android to collect metrics.
description: You can use Firefox, Chrome and Chrome on Android to collect metrics. You need make sure you have a set connectivity when you test, and you do that with Docker networks or throttle.
keywords: browsers, documentation, web performance, sitespeed.io, connectivity, throttle, Firefox, Chrome
nav: documentation
category: sitespeed.io
image: https://www.sitespeed.io/img/sitespeed-2.0-twitter.png
twitterdescription: You can use Firefox, Chrome and Chrome on Android to collect metrics.
---
@ -24,12 +25,10 @@ You will need Firefox 48+. We use the new [Geckodriver](https://github.com/mozil
Chrome should work out of the box.
## Change connectivity
You can throttle the connection to make the connectivity slower to make it easier to catch regressions. The best way to do that is to setup a network bridge in Docker.
You can throttle the connection to make the connectivity slower to make it easier to catch regressions. The best way to do that is to setup a network bridge in Docker or use our connectivity engine Throttle.
By default we expect an external tool to handled connectivity. In the past we used [TSProxy](https://github.com/WPO-Foundation/tsproxy) because it's only dependency was Python 2.7, but unfortunately we have a problem with it and Selenium, so it was removed as the default due to it's instability. Help us fix that in [#229](https://github.com/sitespeedio/browsertime/issues/229).
If you run Docker you can use tc as connectivity engine but that will only set the latency, if you want to set the download speed you need to create a network bridge in Docker.
### Docker networks
Here's an full example to setup up Docker network bridges on a server that has tc installed:
~~~bash
@ -79,6 +78,29 @@ docker network rm 3gem
docker network rm cable
~~~
### Throttle
Throttle uses *tc* on Linux and *pfctl* on Mac to change the connectivity. Throttle will need sudo rights for the user running sitespeed.io to work.
To use throttle, use set the connectivity engine by *--connectivity.engine throttle*.
~~~bash
$ browsertime --connectivity.engine throttle -c cable https://www.sitespeed.io/
~~~
You can also use Throttle inside of Docker but then the host need to be the same OS as in Docker. In practice you can only use it on Linux. And then make sure to run *sudo modprobe ifb numifbs=1* first and give the container the right privileges *--cap-add=NET_ADMIN*.
If you run Docker on OS X, you need to run throttle outside of Docker. Install it and run like this:
~~~bash
# First install
$ npm install @sitespeed.io/throttle -g
# Then set the connectivity, run and stop
$ throttle --up 330 --down 780 --rtt 200
$ docker run --shm-size=1g --rm sitespeedio/sitespeed.io https://www.sitespeed.io/
$ throttle --stop
~~~
## Choose when to end your test
By default the browser will collect data until [window.performance.timing.loadEventEnd happens + aprox 2 seconds more](https://github.com/sitespeedio/browsertime/blob/d68261e554470f7b9df28797502f5edac3ace2e3/lib/core/seleniumRunner.js#L15). That is perfectly fine for most sites, but if you do Ajax loading and you mark them with user timings, you probably want to include them in your test. Do that by changing the script that will end the test (--browsertime.pageCompleteCheck). When the scripts returns true the browser will close or if the timeout time is reached.
@ -135,3 +157,9 @@ Everything you can do in Browsertime, you can also do in sitespeed.io. Prefixing
You can check what Browsertime can do [here](https://github.com/sitespeedio/browsertime/blob/master/lib/support/cli.js).
For example if you want to pass on an extra native arguments to Chrome. In standalone Browsertime you do that with <code>--chrome.args</code>. If you want to do that through sitespeed.io you just prefix browsertime to the param: <code>--browsertime.chrome.args</code>. Yes we know, pretty sweet! :)
## How can I disable HTTP/2 (I only want to test HTTP/1.x)?
On Chrome, you just add the switches <code>--browsertime.chrome.args no-sandbox --browsertime.chrome.args disable-http2</code>.
For Firefox, you need to turn off HTTP/2 and SPDY, and you do that by setting the Firefox preferences:
<code>--browsertime.firefox.preference network.http.spdy.enabled:false --browsertime.firefox.preference network.http.spdy.enabled.http2:false --browsertime.firefox.preference network.http.spdy.enabled.v3-1:false</code>

View File

@ -133,138 +133,3 @@ Options:
Read the docs at https://www.sitespeed.io/documentation/sitespeed.io/
bin/sitespeed.js [options] <url>/<file>
Browser
--browsertime.browser, -b, --browser Choose which Browser to use when you test. [choices: "chrome", "firefox"] [default: "chrome"]
--browsertime.iterations, -n How many times you want to test each page [default: 3]
--browsertime.connectivity.profile, -c, --connectivity The connectivity profile. [choices: "3g", "3gfast", "3gslow", "3gem", "2g", "cable", "native", "custom"] [default: "native"]
--browsertime.connectivity.downstreamKbps, --downstreamKbps This option requires --connectivity be set to "custom".
--browsertime.connectivity.upstreamKbps, --upstreamKbps This option requires --connectivity be set to "custom".
--browsertime.connectivity.latency, --latency This option requires --connectivity be set to "custom".
--browsertime.connectivity.tsproxy.port The port used for TSProxy [default: 1080]
--browsertime.connectivity.engine The engine for connectivity. TC (Linux Traffic Control) needs tc work but will only setup upload and latency. Use external if you set the connectivity outside of Browsertime. The best way do to this is described in https://github.com/sitespeedio/browsertime#connectivity [choices: "tc", "tsproxy", "external"] [default: "external"]
--browsertime.pageCompleteCheck Supply a Javascript that decides when the browser is finished loading the page and can start to collect metrics. The Javascript snippet is repeatedly queried to see if page has completed loading (indicated by the script returning true). Use it to fetch timings happening after the loadEventEnd.
--browsertime.script, --script Add custom Javascript that collect metrics and run after the page has finished loading. Note that --script can be passed multiple times if you want to collect multiple metrics. The metrics will automatically be pushed to the summary/detailed summary and each individual page + sent to Graphite/InfluxDB.
--browsertime.selenium.url Configure the path to the Selenium server when fetching timings using browsers. If not configured the supplied NodeJS/Selenium version is used.
--browsertime.viewPort The browser view port size WidthxHeight like 400x300 [default: "1366x708"]
--browsertime.userAgent The full User Agent string, defaults to the User Agent used by the browsertime.browser option.
--browsertime.preScript, --preScript Selenium script(s) to run before you test your URL (use it for login, warm the cache, etc). Note that --preScript can be passed multiple times.
--browsertime.postScript, --postScript Selenium script(s) to run after you test your URL (use it for logout etc). Note that --postScript can be passed multiple times.
--browsertime.delay Delay between runs, in milliseconds. Use it if your web server needs to rest between runs :)
--browsertime.speedIndex, --speedIndex Calculate SpeedIndex. Requires FFMpeg and python dependencies [boolean]
--browsertime.video, --video Record a video. Requires FFMpeg to be installed [boolean]
--browsertime.preURL, --preURL A URL that will be accessed first by the browser before the URL that you wanna analyze. Use it to fill the cache.
--browsertime.userTimingWhitelist, --userTimingWhitelist This option takes a regex that will whitelist which userTimings to capture in the results. All userTimings are captured by default. T
--browsertime.firefox.preference Extra command line arguments to pass Firefox preferences by the format key:value To add multiple preferences, repeat --browsertime.firefox.preference once per argument.
--browsertime.firefox.includeResponseBodies Include response bodies in HAR when using Firefox. [boolean]
--browsertime.chrome.args Extra command line arguments to pass to the Chrome process (e.g. --no-sandbox). To add multiple arguments to Chrome, repeat --browsertime.chrome.args once per argument.
--browsertime.chrome.collectTracingEvents Collect Chromes traceCategories [boolean]
--browsertime.chrome.android.package Run Chrome on your Android device. Set to com.android.chrome for default Chrome version. You need to run adb start-server before you start.
--browsertime.chrome.android.deviceSerial Choose which device to use. If you do not set it, the first found device will be used.
--browsertime.chrome.collectNetLog Collect network log from Chrome and save to disk. [boolean]
--browsertime.chrome.traceCategories Set the trace categories. [string]
--browsertime.requestheader, -r Request header that will be added to the request. Add multiple instances to add multiple request headers.
--browsertime.block Domain to block. Add multiple instances to add multiple domains that will be blocked.
--browsertime.basicAuth, --basicAuth Use it if your server is behind Basic Auth. Format: username@password.
proxy
--browsertime.proxy.http Http proxy (host:port) [string]
--browsertime.proxy.https Https proxy (host:port) [string]
Crawler
--crawler.depth, -d How deep to crawl (1=only one page, 2=include links from first page, etc.)
--crawler.maxPages, -m The max number of pages to test. Default is no limit.
Graphite
--graphite.host The Graphite host used to store captured metrics.
--graphite.port The Graphite port used to store captured metrics. [default: 2003]
--graphite.auth The Graphite user and password used for authentication. Format: user:password
--graphite.httpPort The Graphite port used to access the user interface and send annotations event [default: 8080]
--graphite.webHost The graphite-web host. If not specified graphite.host will be used.
--graphite.namespace The namespace key added to all captured metrics. [default: "sitespeed_io.default"]
--graphite.includeQueryParams Whether to include query parameters from the URL in the Graphite keys or not [boolean] [default: false]
--graphite.arrayTags Send the tags as Array or a String. In Graphite 1.0 the tags is a array. Before a String [boolean] [default: true]
Plugins
--plugins.list List all configured plugins in the log. [boolean]
--plugins.disable Disable a plugin. Use it to disable generating html or screenshots. [array]
--plugins.load Extra plugins that you want to run. Relative or absolute path to the plugin. [array]
Budget
--budget.configPath Path to the JSON budget file.
--budget.config The JSON budget config as a string.
--budget.output The output format of the budget. [choices: "junit", "tap"]
InfluxDB
--influxdb.protocol The protocol used to store connect to the InfluxDB host. [default: "http"]
--influxdb.host The InfluxDB host used to store captured metrics.
--influxdb.port The InfluxDB port used to store captured metrics. [default: 8086]
--influxdb.username The InfluxDB username for your InfluxDB instance.
--influxdb.password The InfluxDB password for your InfluxDB instance.
--influxdb.database The database name used to store captured metrics. [default: "sitespeed"]
--influxdb.tags A comma separated list of tags and values added to each metric [default: "category=default"]
--influxdb.includeQueryParams Whether to include query parameters from the URL in the InfluxDB keys or not [boolean] [default: false]
Metrics
--metrics.list List all possible metrics in the data folder (metrics.txt). [boolean] [default: false]
--metrics.filterList List all configured filters for metrics in the data folder (configuredMetrics.txt) [boolean] [default: false]
--metrics.filter Add/change/remove filters for metrics. If you want to send all metrics, use: *+ . If you want to remove all current metrics and send only the coach score: *- coach.summary.score.* [array]
WebPageTest
--webpagetest.host The domain of your WebPageTest instance. [default: "https://www.webpagetest.org"]
--webpagetest.key The API key for you WebPageTest instance.
--webpagetest.location The location for the test [default: "Dulles:Chrome"]
--webpagetest.connectivity The connectivity for the test. [default: "Cable"]
--webpagetest.runs The number of runs per URL. [default: 3]
--webpagetest.custom Execute arbitrary Javascript at the end of a test to collect custom metrics.
--webpagetest.file Path to a script file
--webpagetest.script The WebPageTest script as a string.
--webpagetest.includeRepeatView Do repeat or single views [boolean] [default: false]
--webpagetest.private Wanna keep the runs private or not [boolean] [default: true]
gpsi
--gpsi.key The key to use Google Page Speed Insight
Slack
--slack.hookUrl WebHook url for the Slack team (check https://<your team>.slack.com/apps/manage/custom-integrations).
--slack.userName User name to use when posting status to Slack. [default: "Sitespeed.io"]
--slack.channel The slack channel without the # (if something else than the default channel for your hook).
--slack.type Send summary for a run, metrics from all URLs, only on errors or all to Slack. [choices: "summary", "url", "error", "all"] [default: "all"]
--slack.limitWarning The limit to get a warning in Slack using the limitMetric [default: 90]
--slack.limitError The limit to get a error in Slack using the limitMetric [default: 80]
--slack.limitMetric The metric that will be used to set warning/error [choices: "coachScore", "speedIndex", "firstVisualChange"] [default: "coachScore"]
s3
--s3.key The S3 key
--s3.secret The S3 secret
--s3.bucketname Name of the S3 bucket
--s3.path Override the default folder path in the bucket where the results are uploaded. By default it's "DOMAIN_OR_FILENAME/TIMESTAMP", or the name of the folder if --outputFolder is specified.
--s3.region The S3 region. Optional depending on your settings.
--s3.removeLocalResult Remove all the local result files after they have been uploaded to S3 [boolean] [default: false]
HTML
--html.showAllWaterfallSummary Set to true to show all waterfalls on page summary HTML report [boolean] [default: false]
--html.fetchHARFiles Set to true to load HAR files using fetch instead of including them in the HTML. Turn this on if serve your pages using a server. [boolean] [default: false]
--html.logDownloadLink Adds a link in the HTML so you easily can download the logs from the sitespeed.io run. If your server is public, be careful so you don't log passwords etc [boolean] [default: false]
--html.topListSize Maximum number of assets to include in each toplist in the toplist tab [default: 10]
text
--summary Show brief text summary to stdout [boolean] [default: false]
--summary-detail Show longer text summary to stdout [boolean] [default: false]
Options:
--version, -V Show version number [boolean]
--debug Debug mode logs all internal messages to the console. [boolean] [default: false]
--verbose, -v Verbose mode prints progress messages to the console. Enter up to three times (-vvv) to increase the level of detail. [count]
--mobile Access pages as mobile a fake mobile device. Set UA and width/height. For Chrome it will use device Apple iPhone 6. [boolean] [default: false]
--resultBaseURL The base URL to the server serving the HTML result. In the format of https://result.sitespeed.io
--gzipHAR Compress the HAR files with GZIP. [boolean] [default: false]
--outputFolder The folder where the result will be stored.
--firstParty A regex running against each request and categorize it as first vs third party URL. (ex: ".*sitespeed.*")
--utc Use Coordinated Universal Time for timestamps [boolean] [default: false]
--config Path to JSON config file
--help, -h Show help [boolean]
Read the docs at https://www.sitespeed.io/documentation/sitespeed.io/

View File

@ -4,6 +4,7 @@ title: How to configure sitespeed.io
description: In the cli just run "sitespeed.io --help" to get the configuration options.
keywords: configuration, documentation, web performance, sitespeed.io
nav: documentation
category: sitespeed.io
image: https://www.sitespeed.io/img/sitespeed-2.0-twitter.png
twitterdescription: Configuration for sitespeed.io.
---

View File

@ -5,6 +5,7 @@ description: Use sitespeed.io in your Continuous Integration setup with Jenkins,
keywords: Continuous Integration, jenkins, grunt, team city, documentation, web performance, sitespeed.io
author: Peter Hedenskog
nav: documentation
category: sitespeed.io
image: https://www.sitespeed.io/img/sitespeed-2.0-twitter.png
twitterdescription: Use sitespeed.io in your Continuous Integration setup.
---

View File

@ -4,6 +4,7 @@ title: Hack on sitespeed.io
description: Start here when you want to do PRs or create a plugin.
keywords: docker, documentation, web performance, sitespeed.io
nav: documentation
category: sitespeed.io
image: https://www.sitespeed.io/img/sitespeed-2.0-twitter.png
twitterdescription: Hack on sitespeed.io
---

View File

@ -1,9 +1,10 @@
---
layout: default
title: Use Docker to run sitespeed.io.
description: With Docket you get a prebuilt container with sitespeed.io, Firefox, Chrome and XVFB.
keywords: docker, documentation, web performance, sitespeed.io
description: With Docker you get a prebuilt container with sitespeed.io, Firefox, Chrome and XVFB. It's super easy to record a video and get visual metrics like Speed Index and First Visual Change.
keywords: docker, configuration, setup, documentation, web performance, sitespeed.io
nav: documentation
category: sitespeed.io
image: https://www.sitespeed.io/img/sitespeed-2.0-twitter.png
twitterdescription: Use Docker to run sitespeed.io.
---

View File

@ -4,6 +4,7 @@ title: Getting Started
description: Introduction for sitespeed.io.
keywords: introduction, getting started, documentation, web performance, sitespeed.io
nav: documentation
category: sitespeed.io
image: https://www.sitespeed.io/img/sitespeed-2.0-twitter.png
twitterdescription: Introduction for sitespeed.io.
---
@ -28,7 +29,7 @@ SpeedCurve has a really low barrier of entry ... it's a bit of a evolution maybe
Note: SpeedCurve is a paid service built on top on the Open Source tool [WebPageTest](http://www.webpagetest.org/). If you love WebPageTest (we do!) you can [drive it](../webpagetest/) using sitespeed.io and collect the metrics and use it side by side with all the sitespeed.io metrics.
To get started you need either [NodeJS](https://nodejs.org/en/download/) ([Linux](https://github.com/creationix/nvm)) and [npm](https://github.com/npm/npm)/[yarn](https://yarnpkg.com/)) or [Docker](https://docs.docker.com/engine/installation/).
To get started you need either [NodeJS](https://nodejs.org/en/download/) ([Linux](https://github.com/creationix/nvm)) and [npm](https://github.com/npm/npm)/[yarn](https://yarnpkg.com/) or [Docker](https://docs.docker.com/engine/installation/).
You also need [Firefox](https://www.mozilla.org/en-US/firefox/new/) and/or [Chrome](https://www.google.com/chrome/).

View File

@ -4,6 +4,7 @@ title: How it all works.
description: Have you ever wondered what exactly sitespeed.io do?
keywords: installation, documentation, web performance, sitespeed.io
nav: documentation
category: sitespeed.io
image: https://www.sitespeed.io/img/sitespeed-2.0-twitter.png
twitterdescription: How it all works.
---

View File

@ -4,6 +4,7 @@ title: Documentation sitespeed.io 6.x
description: Read about all you can do with sitespeed.io.
keywords: tools, documentation, web performance
nav: documentation
category: sitespeed.io
image: https://www.sitespeed.io/img/sitespeed-2.0-twitter.png
twitterdescription: Documentation for sitespeed.io.
---

View File

@ -4,6 +4,7 @@ title: Install sitespeed.io using npm/yarn or Docker.
description: Install "npm install sitespeed.io -g" or "yarn global add sitespeed.io".
keywords: installation, documentation, web performance, sitespeed.io, yarn, npm, docker
nav: documentation
category: sitespeed.io
image: https://www.sitespeed.io/img/sitespeed-2.0-twitter.png
twitterdescription: Install sitespeed.io using npm, yarn or Docker.
---
@ -61,4 +62,4 @@ $ sitespeed.io --help
### Windows
We support Windows using [Docker](https://docs.docker.com/engine/installation/windows/). To be able to support running on Windows with NodeJS we need more [core contributors](/aboutus/) that can focus on Windows.
We support Windows using [Docker](https://docs.docker.com/engine/installation/windows/). To be able to support running on Windows with NodeJS we need more [core contributors](/aboutus/) that can focus on Windows.

View File

@ -1,10 +1,11 @@
---
layout: default
title: Configuring metrics to use
description:
title: Configure which metrics to use.
description: sitespeed.io collects a lot of metrics which are filtered before they are sent to Graphite/InfluxDB. You can remove filters and/or add your own filters.
keywords: configure, metrics, sitespeed.io
author: Peter Hedenskog
nav: documentation
category: sitespeed.io
image: https://www.sitespeed.io/img/sitespeed-2.0-twitter.png
twitterdescription: Configuring metrics to use
---
@ -17,10 +18,10 @@ twitterdescription: Configuring metrics to use
{:toc}
# Collected metrics
Sitespeed.io collects a lot of metrics which are filtered before they are sent to Graphite. You can remove filters and/or add your own filters. Some sensible defaults have been set for you, if you have suggestions to change them create an [issue at Github](https://github.com/sitespeedio/sitespeed.io/issues/new).
Sitespeed.io collects a lot of metrics which are filtered before they are sent to Graphite/InfluxDB. You can remove filters and/or add your own filters. Some sensible defaults have been set for you, if you have suggestions to change them create an [issue at Github](https://github.com/sitespeedio/sitespeed.io/issues/new).
## Summary vs pageSummary
The metrics are separated into two groups:
The metrics are separated into two groups:
The pageSummary encapsulates the metrics for a single page. For example if we test a single page 10 times, it will have the min/median/max here for values that change.

View File

@ -1,9 +1,10 @@
---
layout: default
title: Test your page using a mobile phone
description:
keywords: plugin, sitespeed.io
title: Test your page using a Android mobile phone.
description: You can use Chrome on your Android phone to test your pages (and get a video and Speed Index).
keywords: mobile, android, browsertime, sitespeed.io
nav: documentation
category: sitespeed.io
image: https://www.sitespeed.io/img/sitespeed-2.0-twitter.png
twitterdescription: Test your page using a mobile phone
---

View File

@ -4,6 +4,7 @@ title: Performance Budget
description: Performance budget with sitespeed.io.
keywords: performance, budget, documentation, web performance, sitespeed.io
nav: documentation
category: sitespeed.io
image: https://www.sitespeed.io/img/sitespeed-2.0-twitter.png
twitterdescription: Performance budget with sitespeed.io.
---

View File

@ -4,6 +4,7 @@ title: Web Performance Dashboards with sitespeed.io
description: Setup you dashboard using Docker Compose, it cannot be simpler.
keywords: dashboard, docker, documentation, web performance, sitespeed.io
nav: documentation
category: sitespeed.io
image: https://www.sitespeed.io/img/sitespeed-2.0-twitter.png
twitterdescription: Web performance dashboard using sitespeed.io.
---

View File

@ -1,9 +1,10 @@
---
layout: default
title: Create your own plugin for sitespeed.io
description:
keywords: plugin, sitespeed.io
description: Create your own plugin to store metrics wherever you want or to test other things.
keywords: plugin, create, sitespeed.io
nav: documentation
category: sitespeed.io
image: https://www.sitespeed.io/img/sitespeed-2.0-twitter.png
twitterdescription: Create your own plugin for sitespeed.io
---

View File

@ -4,6 +4,7 @@ title: Pre/post scripts (log in the user)
description: You can login the user to test pages as a logged in user.
keywords: selenium, web performance, sitespeed.io
nav: documentation
category: sitespeed.io
image: https://www.sitespeed.io/img/sitespeed-2.0-twitter.png
twitterdescription: Pre/post scripts (log in the user)
---

View File

@ -1,11 +1,11 @@
---
layout: default
title: Upgrading from 3.x -> 4 sitespeed.io
title: Upgrade from sitespeed.io 5.x to 6.x
description:
keywords: upgrading documentation, web performance, sitespeed.io
keywords: upgrading, documentation, web performance, sitespeed.io
nav: documentation
image: https://www.sitespeed.io/img/sitespeed-2.0-twitter.png
twitterdescription: Upgrade 3 -> 4
twitterdescription: Upgrade 5 -> 6
---
[Documentation]({{site.baseurl}}/documentation/sitespeed.io/) / Upgrade
@ -15,89 +15,4 @@ twitterdescription: Upgrade 3 -> 4
* Lets place the TOC here
{:toc}
Upgrading to the newest version from 3.x? There are a couple of important things that have changed.
## Graphite keys
The keys in Graphite have a new structure. The reason for this is that we wants to have a generic solution where we can use the same dashboards for any site. If old data is important to you, you will need to run multiple instances for a while, one with 3.x and one with 4/5.x and have multiple dashboards, once you are comfortable with the newer dashboards and have the history, make the switch to the 4/5.x dashboards.
## CLI mapping
A lot has changed in the CLI and the easiest way for you to understand what options are available is to just run sitespeed.io with <code>--help</code>. You can also check this mapping to get an idea of what has changed.
<div id="upgradeTable" markdown="1">
| 3.x | 4.x / 5.x | Description |
|:------------|:-------------------|:-------------|
| `-u <URL>, --url <URL>` | N/A | The start url that will be used when crawling. |
| `-f <FILE>, --file <FILE>` | N/A | The path to a plain text file with one URL on each row. Each URL will be analyzed. |
| `--sites <FILE>` | N/A | The path to a plain text file with one URL on each row. You can use the parameter multiple times to point out many files |
| `-V, --version` | `-V, --version` | Display the sitespeed.io version. |
| `--silent` | N/A | Only output info in the logs, not to the console. |
| `-v, --verbose` | `-v, --verbose` | Enable verbose logging. |
| `--noColor` | N/A | Don't use colors in console output. [false] |
| `-d <INTEGER>, --deep <INTEGER>` | `--crawler.depth, -d` | How deep to crawl. [1] |
| `-c <KEYWORD>, --containInPath <KEYWORD>` | N/A | Only crawl URLs that contains this in the path. |
| `-s <KEYWORD>, --skip <KEYWORD>` | N/A | Do not crawl pages that contains this in the path. |
| `-t <NOOFTHREADS>, --threads <NOOFTHREADS>` | N/A | The number of threads/processes that will analyze pages. [5] |
| `--name <NAME>` | N/A | Give your test a name, it will be added to all HTML pages. |
| `--memory <INTEGER>` | N/A | How much memory the Java processed will have (in mb). [256] |
| `-r <DIR>, --resultBaseDir <DIR>` | `--outputFolder <DIR>` | The result base directory, the base dir where the result ends up. [sitespeed-result] |
| `--outputFolderName` | `--outputFolder` | Default the folder name is a date of format yyyy-mm-dd-HH-MM-ss |
| `--suppressDomainFolder` | N/A | Do not use the domain folder in the output directory |
| `--userAgent <USER-AGENT>` | `--browsertime.userAgent <USER-AGENT>` | The full User Agent string, default is Chrome for MacOSX. [userAgent\|ipad\|iphone]. [Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.120 Safari/537.36] |
| `--viewPort <WidthxHeight>` | `--browsertime.viewPort <WidthxHeight>` | The view port, the page viewport size WidthxHeight like 400x300. [1280x800] |
| `-y <FILE>, --yslow <FILE>` | N/A | The compiled YSlow file. Use this if you have your own rules. |
| `--headless` | N/A | Choose which backend to use for headless [phantomjs\|slimerjs] [phantomjs] |
| `--ruleSet <RULE-SET>` | `--plugins.load, --pluglins.disable` | Which ruleset to use. [sitespeed.io-desktop] |
| `--limitFile <PATH>` | `--config` | The path to the limit configuration file. |
| `--basicAuth <USERNAME:PASSWORD>` | `--browsertime.preScript, --preScript` | Basic auth user & password. |
| `-b <BROWSER>, --browser <BROWSER>` | `--browsertime.browser, -b, --browser`| Choose which browser to use to collect timing data. Use multiple browsers in a comma separated list (firefox\|chrome\|headless) |
| `--connection` | `--browsertime.connectivity.profile, -c, --connectivity` | Limit the speed by simulating connection types. Choose between mobile3g,mobile3gfast,cable,native [cable] |
| `--waitScript` | `--browsertime.pageCompleteCheck` | Supply a javascript that decides when a browser run is finished. Use it to fetch timings happening after the loadEventEnd. [ if (window.performance && window.performance.timing){ return ((window.performance.timing.loadEventEnd > 0) && ((new Date).getTime() - window.performance.timing.loadEventEnd > 2000 ));} else { return true;}] |
| `--customScripts` | `--browsertime.postScript, --postScript` | The path to an extra script folder with scripts that will be executed in the browser. See https://www.sitespeed.io/documentation/browsers/#custom-metrics |
| `--seleniumServer <URL>` | `--browsertime.selenium.url <URL>` | Configure the path to the Selenium server when fetching timings using browsers. If not configured the supplied NodeJS/Selenium version is used. |
| `--btConfig <FILE>` | N/A | Additional BrowserTime JSON configuration as a file |
| `--profile <desktop|mobile>` | `--browsertime.connectivity.profile, -c, --connectivity` | Choose between testing for desktop or mobile. Testing for desktop will use desktop rules & user agents and vice verca. [desktop] |
| `-n <NUMBEROFTIMES>, --no <NUMBEROFTIMES>` | `--browsertime.iterations <NUMBEROFTIMES>, -n <NUMBEROFTIMES>` | The number of times you should test each URL when fetching timing metrics. Default is 3 times. [3] |
| `--screenshot` | N/A | Take screenshots for each page (using the configured view port). |
| `--junit` | `--budget.output` | Create JUnit output to the console. |
| `--tap` | `--budget.output` | Create TAP output to the console. |
| `--skipTest <ruleid1,ruleid2,...>` | N/A | A comma separated list of rules to skip when generating JUnit/TAP/budget output. |
| `--testData` | N/A | Choose which data to send test when generating TAP/JUnit output or testing a budget. Default is all available [rules,page,timings,wpt,gpsi] [all] |
| `--budget <FILE>` | `--budget <FILE>` | A file containing the web perf budget rules. See https://www.sitespeed.io/documentation/performance-budget/ |
| `-m <NUMBEROFPAGES>, --maxPagesToTest <NUMBEROFPAGES>` | `--crawler.maxPages <NUMBEROFPAGES>, -m <NUMBEROFPAGES>` | The max number of pages to test. Default is no limit. |
| `--storeJson` | N/A | Store all collected data as JSON. |
| `-p <PROXY>, --proxy <PROXY>` | N/A | http://proxy.soulgalore.com:80 |
| `--cdns <cdn1.com,cdn.cdn2.net>` | N/A | A comma separated list of additional CDNs. |
| `--postTasksDir <DIR>` | `--browsertime.postScript <DIR>, --postScript <DIR>` | The directory where you have your extra post tasks. |
| `--boxes <box1,box2>` | N/A | The boxes showed on site summary page, see https://www.sitespeed.io/documentation/configuration/#configure-boxes-on-summary-page |
| `-c <column1,column2>, --columns <column1,column2>` | N/A | The columns showed on detailed page summary table, see https://www.sitespeed.io/documentation/configuration/#configure-columns-on-pages-page |
| `--configFile <PATH>` | `--config <PATH>` | The path to a sitespeed.io config.json file, if it exists all other input parameters will be overridden. |
| `--aggregators <PATH>` | N/A | The path to a directory with extra aggregators. |
| `--collectors <PATH>` | N/A | The path to a directory with extra collectors. |
| `--graphiteHost <HOST>` | `--graphite.host <HOST>` | The Graphite host. |
| `--graphitePort <INTEGER>` | `--graphite.port <INTEGER>` | The Graphite port. [2003] |
| `--graphiteNamespace <NAMESPACE>` | `--graphite.namespace <NAMESPACE>` | The namespace of the data sent to Graphite. [sitespeed.io] |
| `--graphiteData` | `--metrics.filter` | Choose which data to send to Graphite by a comma separated list. Default all data is sent. [summary,rules,pagemetrics,timings,requests,domains] [all] |
| `--graphiteUseQueryParameters` | `--graphite.includeQueryParams` | Choose if you want to use query parameters from the URL in the Graphite keys or not |
| `--graphiteUseNewDomainKeyStructure` | N/A | Use the updated domain section when sending data to Graphite "http.www.sitespeed.io" to "http.www_sitespeed_io" (issue #651) |
| `--gpsiKey` | `--gpsi.key` | Your Google API Key, configure it to also fetch data from Google Page Speed Insights. |
| `--noYslow` | N/A | Set to true to turn off collecting metrics using YSlow. |
| `--html` | `--plugins.disable html` | Create HTML reports. Default to true. Set no-html to disable HTML reports. [true] |
| `--wptConfig <FILE>` | `--webpagetest.location, --webpagetest.connectivity, --webpagetest.runs` | WebPageTest configuration, see https://github.com/marcelduran/webpagetest-api runTest method
| `--wptScript <FILE>` | `--webpagetest.script <FILE>` | WebPageTest scripting. Every occurrence of \{\{\{URL\}\}\} will be replaced with the real URL. |
| `--wptCustomMetrics <FILE>` | `--webpagetest.custom <FILE>` | Fetch metrics from your page using Javascript |
| `--wptHost <DOMAIN>` | `--webpagetest.host <DOMAIN>` | The domain of your WebPageTest instance. |
| `--wptKey <KEY>` | `--webpagetest.key <KEY>` | The API key if running on webpagetest on the public instances. |
| `--requestHeaders <FILE>|<HEADER>` | N/A | Any request headers to use, a file or a header string with JSON form of {"name":"value","name2":"value"}. Not supported for WPT & GPSI. |
| `--postURL <URL>` | N/A | The full URL where the result JSON will be sent by POST. Warning: Testing many pages can make the result JSON massive. |
| `--phantomjsPath <PATH>` | N/A | The full path to the phantomjs binary, to override the supplied version |
</div>
## Docker
With the 4/5.x containers you no longer need to tell it to start sitespeed.io:
~~~ bash
$ docker run --privileged --shm-size=1g --rm -v "$(pwd)":/sitespeed.io sitespeedio/sitespeed.io https://www.sitespeed.io/
~~~
Upgrading to the newest version from 5.x? There are a couple of important things that have changed.

View File

@ -4,6 +4,7 @@ title: Use Cases for using sitespeed.io
description: Use Cases for running sitespeed.io.
keywords: use case, documentation, web performance, sitespeed.io
nav: documentation
category: sitespeed.io
image: https://www.sitespeed.io/img/sitespeed-2.0-twitter.png
twitterdescription: Use Cases for running sitespeed.io.
---

View File

@ -5,6 +5,7 @@ description: What you can do with the video in sitespeed.io
keywords: video, documentation, web performance, sitespeed.io
nav: documentation
image: https://www.sitespeed.io/img/sitespeed-2.0-twitter.png
category: sitespeed.io
twitterdescription: Use the video in sitespeed.io
---
[Documentation]({{site.baseurl}}/documentation/sitespeed.io/) / Video

View File

@ -5,6 +5,7 @@ description: Drive WebPageTest using sitespeed.io and include the metrics in you
keywords: webpagetest, wpt, documentation, web performance, sitespeed.io
nav: documentation
image: https://www.sitespeed.io/img/sitespeed-2.0-twitter.png
category: sitespeed.io
twitterdescription: Drive WebPageTest using sitespeed.io and include the metrics in your sitespeed.io report.
---
[Documentation]({{site.baseurl}}/documentation/sitespeed.io/) / WebPageTest

View File

@ -1,47 +0,0 @@
---
layout: default
title: Frequently asked questions for sitespeed.io
description: Questions and answers for sitespeed.io.
keywords: sitespeed.io, faq, questions, frequently, asked
nav: faq
---
# FAQ
{:.no_toc}
If you don't find the answer here or in the [documentation]({{site.baseurl}}/documentation/), please ping us on [Twitter](https://twitter.com/SiteSpeedio) or add an issue on [GitHub](https://github.com/sitespeedio/sitespeed.io/issues?state=open).
* Let's place the TOC here
{:toc}
## Should I use TSProxy or tc as the connectivity engine?
No, you should always use the Docker network setup described [here]({{site.baseurl}}/documentation/sitespeed.io/browsers/#change-connectivity).
## Chrome doesn't work on RHEL7 (or some other \*nix flavor)
Make Chrome run without the sandbox and it will work. Pass the following argument to sitespeed.io:
~~~ bash
--browsertime.chrome.args no-sandbox
~~~
When you use our Docker container, that argument is set by default.
## How can I disable HTTP/2 (I only want to test HTTP/1.x)?
On Chrome, you just add the switches <code>--browsertime.chrome.args no-sandbox --browsertime.chrome.args disable-http2</code>.
For Firefox, you need to turn off HTTP/2 and SPDY, and you do that by setting the Firefox preferences:
<code>--browsertime.firefox.preference network.http.spdy.enabled:false --browsertime.firefox.preference network.http.spdy.enabled.http2:false --browsertime.firefox.preference network.http.spdy.enabled.v3-1:false</code>
## Running Sitespeed 4.0 with Docker + Proxy + Custom Login Script + Create Custom Folder (date/time stamped)?
Thank you [Keyur Shah](https://github.com/softwareklinic) for sharing your setup:
"Here is an example that finally worked for me with lot of tweaks that runs using the Sitespeed 4.0 docker, behind corporate proxy, saving the HTML-summary reports in customer folder marked with date/timestamp, and avoiding the HAR trigger error by using the --browsertime.pageCompleteCheck option with custom javascript
Below is a cron-job definition that runs every 45th minute of an hour:
"
~~~ bash
45 * * * * docker run --privileged -v /app/sitespeed.io:/sitespeed.io sitespeedio/sitespeed.io <url|text file with list of urls> --preScript prescript.js -n 1 -b firefox --graphite.host <graphiteip-host> --graphite.namespace <graphite-namespace> --browsertime.proxy.http=proxy.xxxx.xxxxxxxx.com:80 --browsertime.proxy.https=proxy.xxxx.xxxxxxxx.com:80 --outputFolder sitespeed-result/<customfoldername>/$(date +\%Y-\%m-\%d-\%H-\%M-\%S) --browsertime.pageCompleteCheck 'return (function() {try { return (Date.now() - window.performance.timing.loadEventEnd) > 10000;} catch(e) {} return true;})()'
~~~

View File

@ -10,7 +10,7 @@ image: https://www.sitespeed.io/img/sitespeed-2.0-twitter.png
## Welcome to the wonderful world of Web Performance
Sitespeed.io ({% include_relative version/sitespeed.io.txt %}) is a set of Open Source tools that helps make your web pages faster. [The coach]({{site.baseurl}}/documentation/coach/) gives you performance advice based on best practices for your site. [Browsertime]({{site.baseurl}}/documentation/browsertime/) collects metrics and HAR files from your browser. [Chrome-HAR](https://github.com/sitespeedio/chrome-har) creates a HAR file from Chrome Debugging Protocol data. [Compare](https://compare.sitespeed.io) makes it easy to find regressions comparing HAR files. [PageXray]({{site.baseurl}}/documentation/pagexray/) converts a HAR file to a usable JSON structure that tells you more about your page. And finally [sitespeed.io]({{site.baseurl}}/documentation/sitespeed.io/) is the main tool that uses all the previously mentioned tools and add supports for testing multiple pages as well as adds the ability to report the metrics to a TSDB (Graphite and InfluxDB).
Sitespeed.io is a set of Open Source tools that helps make your web pages faster. [The coach]({{site.baseurl}}/documentation/coach/) gives you performance advice based on best practices for your site. [Browsertime]({{site.baseurl}}/documentation/browsertime/) collects metrics and HAR files from your browser. [Chrome-HAR](https://github.com/sitespeedio/chrome-har) creates a HAR file from Chrome Debugging Protocol data. [Compare](https://compare.sitespeed.io) makes it easy to find regressions comparing HAR files. [PageXray]({{site.baseurl}}/documentation/pagexray/) converts a HAR file to a usable JSON structure that tells you more about your page. And finally [sitespeed.io]({{site.baseurl}}/documentation/sitespeed.io/) is the main tool that uses all the previously mentioned tools and add supports for testing multiple pages as well as adds the ability to report the metrics to a TSDB (Graphite and InfluxDB).
Try out sitespeed.io by installing using [Docker](https://hub.docker.com/r/sitespeedio/sitespeed.io/)/[npm](https://www.npmjs.org/)/[yarn](https://yarnpkg.com/) ([need help?]({{site.baseurl}}documentation/sitespeed.io/installation/)):

24
docs/search/index.md Normal file
View File

@ -0,0 +1,24 @@
---
layout: default
title: Search the documentation.
description: Search and you should find.
keywords: sitespeed.io, search, documentation
nav: search
image: https://www.sitespeed.io/img/sitespeed-2.0-twitter.png
---
<div id="search-container">
<input type="text" id="search-input" placeholder="Search ..." class="input-field">
<ul id="results-container"></ul>
</div>
<!-- script pointing to jekyll-search.js -->
<script src="{{ site.baseurl }}/simple-jekyll-search.min.js"></script>
<script>
SimpleJekyllSearch({
searchInput: document.getElementById('search-input'),
resultsContainer: document.getElementById('results-container'),
json: {% include_relative search.json %},
searchResultTemplate: "<li><a href='{url}'>{title}</a> - {description}</li>"
})
</script>

15
docs/search/search.json Normal file
View File

@ -0,0 +1,15 @@
[
{% for page in site.pages %}
{
{% if page.title != nil % and page.url contains '/documentation/' %}
"title" : "{{ page.title | escape }}",
"category" : "{{ page.category }}",
"tags" : "{{ page.keywords | join: ', ' }}",
"url" : "{{ site.baseurl }}{{ page.url }}",
"date" : "{{ page.date }}",
"description" : "{{ page.description | escape }}",
"content" : {{ page.content | strip_html | strip_newlines | jsonify }}
{% endif %}
} {% unless forloop.last %},{% endunless %}
{% endfor %}
]

6
docs/simple-jekyll-search.min.js vendored Normal file

File diff suppressed because one or more lines are too long