varys-cli
Varys performance data reporting
How it works
varys-cli is a command-line performance reporter which gets the data from Lighthouse audit and put it into an influxDB
Minimun Node version: 10.16.0
How to install
npm install -g @letgowebteam/varys-cli
CLI options
USAGE:
$ varys [command] [options]
COMMANDS:
run launch audit
OPTIONS:
--url The url to be tested (mandatory)
--db-name InfluxDB database name (mandatory)
--db-host InfluxDB host name (mandatory)
--db-username InfluxDB username (optional)
--db-password InfluxDB password (optional)
--headless Add headless to chrome flags (optional)
--no-sandbox Add no-sandbox to chrome flags (optional)
EXAMPLE
$ varys run --db-name marvel_db --db-host localhost --url https://google.com --no-sandbox
Running in docker with optional arguments
docker run <build id/build tag> /bin/sh -c "xvfb-run varys run -db-name=mydatabase --db-host=localhost --db-username=pepe --db-password=1234 --url=https://us.letgo.com --no-sandbox"
Docker container issues
If you run varys-cli
inside a docker container and you get the following error:
...
Driver:warn Timed out waiting for page load. Checking if page is hung...
Driver:warn Page appears to be hung, killing JavaScript...
status Disconnecting from browser...
ChromeLauncher Killing Chrome instance 58
Runtime error encountered: Waiting for DevTools protocol response has exceeded the allotted time. (Method: Emulation.setScriptExecutionDisabled)
LHError: PROTOCOL_TIMEOUT
at Timeout.setTimeout [as _onTimeout] (/varys-cli/node_modules/lighthouse/lighthouse-core/gather/driver.js:399:21)
at ontimeout (timers.js:436:11)
at tryOnTimeout (timers.js:300:5)
at listOnTimeout (timers.js:263:5)
at Timer.processTimers (timers.js:223:10)
Error No report was generated, it may be due to a malformed URL...
you may need to increase shm
when running the container by adding --shm-size=256m
docker run <build id/build tag> --shm-size=256m
JavaScript Style guide
We follow the AirBnB JavaScript Style Guide. The project has been configured to run ESLint with the AirBnB rules.