Catapult Dashboard a.k.a. Chrome Performance Dashboard is a system for tracking performance data over time and detecting regressions. Fuchsia trace
tool supports uploading results of a benchmark run to a Catapult Dashboard.
This document describes how to set up a local instance of the Catapult Dashboard for development purposes.
The instructions assume that the local instance runs on a Linux host and is used to receive data points from a trace
tool running on a Fuchsia device. This might or might not work on a Mac host.
Get a copy of Catapult from https://github.com/catapult-project/catapult .
Download Google Cloud SDK and put it in PATH
as demanded in Catapult prerequisites. Then hack it up - edit platform/google_appengine/google/appengine/tools/devappserver2/dispatcher.py
and in _resolve_target()
, replace:
try: _module, inst = self._port_registry.get(port) except KeyError: raise request_info.ModuleDoesNotExistError(hostname)
with
try: _module, inst = self._port_registry.get(port) except KeyError: _module, inst = None, None
This is a workaround for https://code.google.com/p/googleappengine/issues/detail?id=10114 and allows dashboard's task queue to work when the host name is other than localhost.
In the local checkout of Catapult, run:
# on host cd dashboard bin/dev_server --host=0.0.0.0`
By running the dev server on 0.0.0.0
, we ensure that it is reachable from all network interfaces.
Take note of the ip address of your host machine visible to the Fuchsia device (e.g. by running ifconfig
on the host).
Verify that the dashboard server is reachable from the Fuchsia device:
# on Fuchsia device curl http://<ip address>:8080
Run a benchmark with results upload enabled:
# on Fuchsia device trace record \ --spec-file=<path to spec file> \ --upload-server-url=http://<ip address>:8080 \ --upload-master=fuchsia_master \ --upload-bot=fuchsia_bot \ --upload-point-id=1
To verify that the new data points were registered by dashboard, take a look at /new_points. If the new data points are not there, check the server log for error messages.
To make sure that the test suites appear in the test suite picker, visit /update_test_suites and /update_test_suites?internal_only=true.
Make sure to upload more that one data point, with different --upload-point-id=
values. After that, /report should contain the new graphs.