blob: 92e5e2f4a9992c1cc9238c2608a3185758fe645b [file] [log] [blame] [view]
# SkiaPerf Server
Reads Skia performance data from databases and serves interactive dashboards
for easy exploration and annotations.
# Developing
First check out this repo and get all the dependencies [per this
README.md](../README.md), including the Cloud SDK, which is needed to run tests
locally.
All building and testing is done by Bazel, but there is a Makefile
that records regularly used commands.
## Build
To build the full project:
bazelisk build --config=mayberemote //perf/...
## Test
To run all the tests:
bazelisk test --config=mayberemote //perf/...
Note the first time you run this it will fail and inform you of the gcloud
simulators that need to be running in the background and how to start them.
## Running locally
To run a local instance of Perf against a fake dataset:
1. Run with a fresh database (demo data ingested)
make run-demo-instance
2. Run without tearing down database (expects a running database on the machine)
make run-demo-instance-db-persist
After the local server has started, navigate to http://localhost:8002 in a
browser.
If you are interested in reading more about the local database, refer to [this doc](Spanner.md)
You can also view demo/test pages of a web components by running
`demopage.sh` from the root of the repo and passing in the relative path
of the web component you want to view, for example:
./demopage.sh perf/modules/day-range-sk
Additionally, the remote backend can be reverse-proxied such that the demo page
server will forward APIs under `/_/` to the remote backend (`ENV_REMOTE_ENDPOINT`)
ENV_REMOTE_ENDPOINT='https://v8-perf.skia.org' ./demopage.sh perf/modules/day-range-sk
or
ENV_REMOTE_ENDPOINT='https://v8-perf.skia.org' bazelisk run //perf/modules/plot-summary-sk:demo_page_server
This will allow the demo page to fetch the real data.
Note you need to have `entr` installed for this to work:
sudo apt install entr
## Legacy mode with CockroachDB (Deprecated)
In addition you will also need to install the full executable `cockroach`. In order to successfully install and work on the command, here are a set of cautions when installing coakroach on your machine:
- Make sure to download the Full Binary version : https://www.cockroachlabs.com/docs/releases#v22-1. Choose the v22-1 full binary version for compatibility with Schema validation on your machine. Linux version is for cloudtop, and ARM 64-bit is for Mac.
- After downloading the cockroach version, we extract the download archive anywhere(default is from Downloads), and then unzip the archive file to export that directory into the path variable.
- Alternative, we can unzip the downloaded cockroach file, open the lib folder, and copy the libgeos.so and libgeos_c.so files from current path into the /usr/local/lib/cockroach folder, eg.
cp -i /usr/local/google/home/username/Downloads/cockroach-v22.1.22.linux-amd64/lib/libgeos.so /usr/local/lib/cockroach
- Then export path
export PATH=$PATH:/path/to/cockroach
- Then add this path into the .bashrc file. Also make sure to source the .bashrc file under the current path to refresh the active terminal, or open a new terminal.
- After that, run
cockroach start-single-node --insecure --listen-addr=127.0.0.1:26257
(nit: listen-address is set by default)
- Then type dt, you will see a list of local tables with no data.
- To confirm that the cockroach installation has been completed, we should open a SQL shell to this running database, by running
cockroach sql --insecure --host=localhost:26257