All Projects → sitespeedio → Sitespeed.io

sitespeedio / Sitespeed.io

Licence: mit
Sitespeed.io is an open source tool that helps you monitor, analyze and optimize your website speed and performance, based on performance best practices advices from the coach and collecting browser metrics using the Navigation Timing API, User Timings and Visual Metrics (FirstVisualChange, SpeedIndex & LastVisualChange).

Programming Languages

javascript
184084 projects - #8 most used programming language
Pug
443 projects
SCSS
7915 projects
shell
77523 projects

Projects that are alternatives of or similar to Sitespeed.io

Inspectit
inspectIT is the leading Open Source APM (Application Performance Management) tool for analyzing your Java (EE) applications.
Stars: ✭ 513 (-87.94%)
Mutual labels:  monitoring, metrics, performance-analysis, performance-metrics
Nemetric
前端性能指标的监控,采集以及上报。用于测量第一个dom生成的时间(FP/FCP/LCP)、用户最早可操作时间(fid|tti)和组件的生命周期性能,,网络状况以及资源大小等等。向监控后台报告实际用户测量值。
Stars: ✭ 145 (-96.59%)
Mutual labels:  metrics, performance-analysis, performance-metrics, webperf
performance-budget-plugin
Perfromance budget plugin for Webpack (https://webpack.js.org/)
Stars: ✭ 65 (-98.47%)
Mutual labels:  performance-metrics, performance-analysis, perfmatters, webperf
Myperf4j
High performance Java APM. Powered by ASM. Try it. Test it. If you feel its better, use it.
Stars: ✭ 2,281 (-46.39%)
Mutual labels:  monitoring, metrics, performance-analysis, performance-metrics
Goappmonitor
Golang application performance data monitoring.
Stars: ✭ 478 (-88.77%)
Mutual labels:  monitoring, performance-analysis, performance-metrics
Stackimpact Java
StackImpact Java Profiler - Production-Grade Performance Profiler: CPU, locks, runtime metrics, and more
Stars: ✭ 7 (-99.84%)
Mutual labels:  monitoring, performance-analysis, performance-metrics
Stackimpact Go
DEPRECATED StackImpact Go Profiler - Production-Grade Performance Profiler: CPU, memory allocations, blocking calls, errors, metrics, and more
Stars: ✭ 276 (-93.51%)
Mutual labels:  monitoring, performance-analysis, performance-metrics
Spm Agent Mongodb
Sematext Agent for monitoring MongoDB
Stars: ✭ 7 (-99.84%)
Mutual labels:  monitoring, metrics, performance-metrics
Appmetrics
Node Application Metrics provides a foundational infrastructure for collecting resource and performance monitoring data for Node.js-based applications.
Stars: ✭ 864 (-79.69%)
Mutual labels:  monitoring, metrics, performance-metrics
Stackimpact Nodejs
DEPRECATED StackImpact Node.js Profiler - Production-Grade Performance Profiler: CPU, memory allocations, async calls, errors, metrics, and more
Stars: ✭ 46 (-98.92%)
Mutual labels:  monitoring, performance-analysis, performance-metrics
Prometheus Net
.NET library to instrument your code with Prometheus metrics
Stars: ✭ 944 (-77.81%)
Mutual labels:  monitoring, metrics, performance-metrics
Pcm
Processor Counter Monitor
Stars: ✭ 1,240 (-70.86%)
Mutual labels:  monitoring, performance-analysis, performance-metrics
Vsphere2metrics
VMware vSphere Performance Metrics Integration with Graphite & InfluxDB
Stars: ✭ 28 (-99.34%)
Mutual labels:  monitoring, metrics, performance-metrics
Scouter
Scouter is an open source APM (Application Performance Management) tool.
Stars: ✭ 1,792 (-57.88%)
Mutual labels:  monitoring, metrics, performance-metrics
Questdb
An open source SQL database designed to process time series data, faster
Stars: ✭ 7,544 (+77.3%)
Mutual labels:  monitoring, metrics
Metered Rs
Fast, ergonomic metrics for Rust
Stars: ✭ 258 (-93.94%)
Mutual labels:  monitoring, metrics
Yabeda
Extendable framework for collecting and exporting metrics from your Ruby application
Stars: ✭ 402 (-90.55%)
Mutual labels:  monitoring, metrics
Gohalt
Gohalt 👮‍♀🛑: Fast; Simple; Powerful; Go Throttler library
Stars: ✭ 253 (-94.05%)
Mutual labels:  monitoring, metrics
Micrometer
An application metrics facade for the most popular monitoring tools. Think SLF4J, but for metrics.
Stars: ✭ 3,173 (-25.43%)
Mutual labels:  monitoring, metrics
Kube State Metrics
Add-on agent to generate and expose cluster-level metrics.
Stars: ✭ 3,433 (-19.32%)
Mutual labels:  monitoring, metrics

sitespeed.io

Unit tests Linux browsers Docker Windows Edge OSX Safari Downloads Docker Stars npm Changelog #212

Website | Documentation | Changelog | Twitter

Welcome to the wonderful world of web performance!

Sitespeed.io is a complete web performance tool that helps you measure the performance of your website. What exactly does that mean?

Before we start telling you all about sitespeed.io you should just try it out:

$ docker run --rm -v "$(pwd)":/sitespeed.io sitespeedio/sitespeed.io https://www.sitespeed.io/

Or using npm (you need Chrome, Firefox, Edge or Safari installed or Chrome/Firefox on Android)

$ npm i -g sitespeed.io && sitespeed.io https://www.sitespeed.io/

Ok, now you have tried it, let us tell you more about sitespeed.io. We think of a complete web performance tool as having three key capabilities:

  • It test web sites using real browsers, simulating real users connectivity and collect important user centric metrics like Speed Index and First Visual Render.
  • It analyse how your page is built and give feedback how you can make it faster for the end user.
  • It collect and keep data how your pages is built so you easily can track changes.

What is sitespeed.io good for?

It is usually used in two different areas:

  • Running in your continuous integration to find web performance regressions early: on commits or when you move code to your test environment
  • Monitoring your performance in production, alerting on regressions.

To understand how sitespeed.io does these things, let's talk about how it works.

First a few key concepts:

  • Sitespeed.io is built upon a couple of other Open Source tools in the sitespeed.io suite.
  • Browsertime is the tool that drives the browser and collect metrics.
  • The Coach knows how to build fast websites and analyse your page and give you feedback what you should change.
  • Visual Metrics is metrics collected from a video recording of the browser screen.
  • Everything in sitespeed.io is a plugin and they communicate by passing messages on a queue.

When you as user choose to test a URL, this is what happens on a high level:

  1. sitespeed.io starts and initialise all configured plugins.
  2. The URL is passed around the plugins through the queue.
    1. Browsertime gets the URL and opens the browser.
    2. It starts to record a video of the browser screen.
    3. The browser access the URL.
    4. When the page is finished, Browsertime takes a screenshot of the page.
    5. Then run some JavaScripts to analyse the page (using Coach and Browsertime scripts).
    6. Stop the video and close the browser.
    7. Analyse the video to get Visual Metrics like First Visual Change and Speed Index.
    8. Browsertime passes all metrics and data on the queue so other plugins can use it.
  3. The HTML/Graphite/InfluxDB plugin collects the metrics in queue.
  4. When all URLs are tested, sitespeed sends a message telling plugins to summarise the metrics and then render it.
  5. Plugins pickup the render message and the HTML plugin writes the HTML to disk.

Try it out

Using Docker (use latest Docker):

$ docker run --rm -v "$(pwd)":/sitespeed.io sitespeedio/sitespeed.io https://www.sitespeed.io/

Or install using npm:

$ npm i -g sitespeed.io

Or clone the repo and test the latest changes:

$ git clone https://github.com/sitespeedio/sitespeed.io.git
$ cd sitespeed.io
$ npm install
$ bin/sitespeed.js --help
$ bin/sitespeed.js https://www.sitespeed.io/

More details

Using sitespeed.io you can:

  • Test your web site against Web Performance best practices using the Coach.
  • Collect Navigation Timing API, User Timing API and Visual Metrics from Firefox/Chrome using Browsertime.
  • Run your custom-made JavaScript and collect whichever metric(s) you need.
  • Test one or multiple pages, across one or many runs to get more-accurate metrics.
  • Create HTML-result pages or store the metrics in Graphite.
  • Write your own plugins that can do whatever tests you want/need.

See all the latest changes in the Changelog.

Checkout our example dashboard.sitespeed.io

A summary report in HTML:

Individual page report:

Collected metrics from a URL in Graphite/Grafana:

And look at trends in Grafana:

Video - easiest using Docker. This gif is optimized, the quality is much better IRL:

Test using WebPageReplay

We have a special Docker container that comes with WebPageReplay installed. This is a really early alpha release but we think you should try it out.

WebPageReplay will let you replay your page locally (getting rid of server latency etc) and makes it easier to have stable metrics and find front end regressions.

It works like this:

  1. WebPageReplay is started in record mode
  2. Browsertime access the URLs you choose one time (so it is recorded)
  3. WebPageReplay is closed down
  4. WebPageReplay in replay mode is started
  5. Sitespeed.io (using Browsertime) test the URL so many times you choose
  6. WebPageReplay in replay mode is closed down

You can change latency by setting a Docker environment variable. Use REPLAY to turn on the replay functionality.

Default browser is Chrome:

docker run --cap-add=NET_ADMIN --rm -v "$(pwd)":/sitespeed.io -e REPLAY=true -e LATENCY=100 sitespeedio/sitespeed.io -n 5 -b chrome https://en.wikipedia.org/wiki/Barack_Obama

Use Firefox:

docker run --cap-add=NET_ADMIN --rm -v "$(pwd)":/sitespeed.io -e REPLAY=true -e LATENCY=100 sitespeedio/sitespeed.io -n 11 -b firefox https://en.wikipedia.org/wiki/Barack_Obama

Sponsors

We have a Mac Mini sponsored by MacStadium and you too can sponsor us to help us keep sitespeed.io running and making sure we can have the best test setup as possible. Read our sponsor page for more info.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].