Tool to gather browsertime metrics and supports CRON jobs and webhooks.
Highlights
- Poll for browsertime performance metrics on any website and stores the data into InfluxDB
- Webhook support
- Generates web performance videos
- View all historic reports.
- Setup within minutes
Garie-browsertime was developed as a plugin for the Garie Architecture.
Garie is an out the box web performance toolkit, and garie-browsertime
is a plugin that generates and stores browsertime data into InfluxDB
.
Garie-browsertime
can also be run outside the Garie
environment and run as standalone.
If your interested in an out the box solution that supports multiple performance tools like browsertime
, google-speed-insight
and lighthouse
then checkout Garie.
If you want to run garie-browsertime
standalone you can find out how below.
- Docker installed
You can get setup with the basics in a few minutes.
First clone the repo.
git clone git@github.com:boyney123/garie-browsertime.git
Next setup you're config. Edit the config.json
and add websites to the list.
{
"cron": "00 00 */6 * * *",
"urls": [
{
"url": "https://www.comparethemarket.com"
},
{
"url": "https://www.bbc.co.uk"
},
{
"url": "https://www.cnn.com"
}
]
}
Once you finished edited your config, lets build our docker image and setup our environment.
docker build -t garie-browsertime . && docker-compose up
This will build your copy of garie-browsertime
and run the application.
On start garie-browsertime will start to gather performance metrics for the websites added to the config.json
.
Viewing browsertime reports is straight forward. Once you have your application running just go to localhost:3000/reports
and you should see all the reports browsertime has generated.
Garie-browsertime also supports webhooks. You will need to POST
to localhost:3000/collect
.
Payload
Property | Type | Description |
---|---|---|
url |
string (required) |
Url to get metrics for. |
Payload Example
{
"url": "https://www.bbc.co.uk"
}
Property | Type | Description |
---|---|---|
cron |
string (optional) |
Cron timer. Supports syntax can be found [here].(https://www.npmjs.com/package/cron) |
urls |
object (required) |
Config for browsertime. More detail below |
urls object
Property | Type | Description |
---|---|---|
url |
string (required) |
Url to get browsertime metrics for. |