Skip to content

Fork of the WebPageTest private instance server, with more options

Notifications You must be signed in to change notification settings

stephendonner/WPT-server

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Future and alternatives

The original WPT Monitor has been abandoned years ago and I maintain since 2012 only what my clients need : dont expect me adding lot more functionalities to this project. Please read this presentation that compares webperf monitoring system (in french, sorry).

Open-source alternatives (DIY) :

  • For easy WPT server installation, there is now an official docker image.
  • For tests scheduling, OpenSpeedMonitor now has feature parity with this project
  • For dashboards, I write custom ones for clients but you can be inspired by the best open-source webperf dashboards out there, written by the sitespeed.IO team (and a bit of my work)

Paying alternatives (Saas) :

  • the most known WPT paying service is SpeedCurve, the dashboards cant't be customized but the visualization is excellent
  • contact us, especially if you're french : we are used to host the WPT server and agents, the scheduling and the dashboards for our own clients, at scale. Dashboards can be customized, audits can be required, we can monitor with real devices and we contribute back to open-source.

Why?

This project is a fork of both WebPageTest Private Instance 3.0 and WPT Monitor. The agents are automatically updated since the 3.0 version. The original intention was to patch WPT monitor who looked a bit abandonned. Then, several customers of mine needed Private installs to monitor their front-end performances on a regular basis so I decided to provide a single package and give it access to anyone interested in Web Performance Monitoring.

Reliable ?

It's used currently in three major organizations running dozen of tests per minutes on dozen of pages. Also, I tend to follow closely the WebPageTest upgrades.

Features

  • Program WebPageTest tests (Jobs)
    • Choose locations and browsers, number of runs, first view only, video capture …
    • If you mount several WPT agents, tests are made in parallel
    • select preset connectivity (tied to connectivity.ini) or define one per job
    • Set Frequency of test
  • Set up WebPageTest test (Scripts)
    • simple URL of course
    • WPT Scripting is supported
    • supports multi steps and HTTP basic auth
    • Data scripts, that allows to inject randomness or calculation in your tests
  • Visualization
    • Basic graph for the usual metrics : TTFB, render, DOM loaded, fully loaded
    • documented placeholder to send the results to your own monitoring tool (Graphite, Splunk …) and trace all the metrics WPT gathers (speedIndex, custom metrics, CPU consumption, user metrics …)
  • Alerts
    • Set alerts on metrics, with thresholds
    • set alerts on response code (404, 500 …)
    • validation mechanic : define if your test succeeds and be warned if it fails
  • User management: Super Admin, regular account with number of job submission limitations
  • Folders
    • organize neatly dozen of jobs and scripts
    • manage folders / users permissions
  • Know tests queue state, on multiple WPT Hosts and agents
  • Dated Notes, to mark on the graphes important events
  • compared to the original WPT monitor :
    • more debug logs
    • clear the queue (unlock.php)
    • Bug fixes, like preventing jobProcessor_log.html to grow infinitely or manage a huge volume of tests without overtaking RAM

Install

Requirements

  • PHP 5.2.4 or greater (Note that WPT 3.0 works on PHP 7, but WPT Monitor has not yet been tested on it)
  • following modules :
    • gcc
    • php
    • zlib
    • curl
    • php-pear
    • php-pdo
    • php-gd
    • pecl_http

Export metrics to your own dashboard

WPT monitor is super useful to schedule tests but not that modern at displaying the collected data. You might also want to monitor additional data like the number of 404, the average size, the percentage of cached objects or the percentage of objects with gzip. Files to edit :

  • wptmonitor/custom_wpt_functions.inc for the labelling and results exports to another monitoring tool if you need to.
  • Search for the exportResultToExternal() calls, to enable or disable more logging
  • for debug, uncomment the echo in the logOutput function, in the wptmonitor/utils.inc. Also simply monitor the apache error logs ("undefined index" notices are considered as normal-but-not-ideal for now)

Support and issues

The code works on the few installations I made, so I can't guarantee it works everywhere, but if after debugging (see above) you still have a problem, please fill in issues

Do not hesitate to open issues to require features, or to pull request.

About

Fork of the WebPageTest private instance server, with more options

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • PHP 56.1%
  • JavaScript 28.0%
  • HTML 10.4%
  • Python 2.8%
  • CSS 1.5%
  • Smarty 0.9%
  • Other 0.3%