Hello from Platform Engineering Operations! Once a month we highlight
one of our projects to help the Mozilla community discover a useful tool
or an interesting contribution opportunity.
This month’s project is Perfherder!
What is Perfherder?
Perfherder is a generic system for visualizing and analyzing performance
data produced by the many automated tests we run here at Mozilla (such
as Talos, "Are we fast yet?" or "Are we slim yet?"). The chief goal of
the project is to make sure that performance of Firefox gets better, not
worse over time. It does this by:
* Tracking the performance generated by our automated tests, allowing
them to be visualized on a graph.
* Providing a sheriffing dashboard which allows for incoming
alerts of performance regressions to be annotated and triaged - bugs
can be filed based on a template and their resolution status can be
In addition to its own user interface, Perfherder also provides an
API on the backend that other people can use to build custom
performance visualizations and dashboards. For example, the metrics
group has been working on a set of release quality indices for
performance based on Perfherder data:
How it works
Perfherder is part of Treeherder, building on that project's existing
support for tracking revision and test job information. Like the rest
of Treeherder, Perfherder's backend is written in Python, using the
Django web framework. The user interface is written as an AngularJS
For more information on Perfherder than you ever wanted to know, please
see the wiki page:
Can I contribute?
Yes! We have had some fantastic contributions from the community to
Perfherder, and are always looking for more. This is a great way to
help developers make Firefox faster (or use less memory). The core of
Perfherder is relatively small, so this is a great chance to learn
either Django or Angular if you have a small amount of Python and/or
We have set aside a set of bugs that are suitable for getting
For more information on contributing to Perfherder, please see the
contribution section of the above wiki page: