tree: c45b004c8b910e093c10ce49c286b379f46722ed [path history] [tgz]
  1. go/
  2. lint/
  3. res/
  4. setup/
  5. templates/
  6. tests/
  7. .bowerrc
  8. bower.json
  9. DESIGN.md
  10. Gruntfile.js
  11. karma.conf.js
  12. Makefile
  13. microbench.json
  14. package.json
  15. README.md
  16. skpbench.json
perf/README.md

SkiaPerf Server

Reads Skia performance data from databases and serves interactive dashboards for easy exploration and annotations.

Server Setup

Please refer to compute_engine_scripts/perfserver/README under the repo for instructions on creating and destroying the instance. The rest of this document is what to do once the instance is created.

gcutil --project=google.com:skia-buildbots addinstance skia-testing-b
--zone=us-central2-b --external_ip_address=130.211.226.47
--service_account=default
--service_account_scopes=“bigquery,storage-full”
--network=default --machine_type=n1-highmem-8 --image=backports-debian-7-wheezy-v20140904
--persistent_boot_disk

SSH into the instance

gcutil --project=google.com:skia-buildbots ssh --ssh_user=default skia-testing-b

Do the first time

The following things only need to be done once.

  1. SSH into the server as default.
  2. sudo apt-get install git
  3. git clone https://skia.googlesource.com/buildbot
  4. cd ~/buildbot/perf/setup
  5. ./perf_setup.sh

Change /etc/monit/monitrc to:

set daemon 2

then run the following so it applies:

sudo /etc/init.d/monit restart

Then restart squid to pick up the new config file:

sudo /etc/init.d/squid3 restart

This means that monit will poll every two seconds that our application is up and running.

Metadata

Secrets that we need at runtime are stored in the metadata server.

All of the metadata must be set at one time, i.e. if you change one piece of metadata you need to write all the values, even the old unchanged metadata values. The current set of metadata required is:

To set the metadata use:

gcutil --project=google.com:skia-buildbots setinstancemetadata skia-testing-b \
  --metadata=apikey:[apikey value] \
  --metadata=readwrite:[readwrite value] \
  --metadata=cookiesalt:[cookiesalt value] \
  --fingerprint=[metadata fingerprint]

You can find the current metadata fingerprint by running:

gcutil --project=google.com:skia-buildbots getinstance skia-testing-b

To update the code

  1. SSH into the server as default.
  2. cd ~/buildbot/perf/setup
  3. git pull
  4. ./perf_setup.sh

Developing

The easiest way to develop should be to do:

go get -u skia.googlesource.com/buildbot.git/perf/go/skiaperf

Which will fetch the repository into the right location and download dependencies.

Then to build everything:

cd $GOPATH/src/skia.googlesource.com/buildbot.git/perf
make all

Make sure the $GOPATH/bin is on your path so that you can easily run the executables after they are generated.

To run the tests:

make test