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
try: _module, inst = self._port_registry.get(port) except KeyError: raise request_info.ModuleDoesNotExistError(hostname)
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.
Make sure to upload more that one data point, with different
--upload-point-id= values. After that, /report should contain the new graphs.