Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Treeherder/Perfherder API changes

6 views
Skip to first unread message

William Lachance

unread,
Sep 14, 2015, 2:50:33 PM9/14/15
to
Hi all, just wanted to announce that there have been some changes to the
performance API for Treeherder/Perfherder:

Before you would get a list of performance series metadata (aka
signatures) like this:

/api/project/<branch>/performance-data/get_performance_series_summary/?interval=<interval>

Where interval had to be one of 86400, 604800, 1209600 (two weeks),
5184000 (sixty days), 7776000 (ninety days), 31536000 (one year). This
would give you a list of performance series which had been updated
within that time interval. The return value was a dictionary, with the
keys being the signature hash (a unique identifier, something like
'127ab09a393ec31a7e267743128a3d94e13465e2') and the values being the
properties of the signature.

And then once you had figured out what performance series you wanted,
you would get a performance series like this:

/api/project/mozilla-inbound/performance-data/get_performance_data/?signatures=<signature
id>&interval=<interval>

(signatures can be specified multiple times, if you want to return
multiple performance series in the same call)

This would give you all the performance series samples within that time
range, stored as a set of dictionaries with two keys: a signature key
which stored (you guessed it) the signature and a "blob" property which
stored the actual series. The series itself is an array of dictionaries
with a set of properties corresponding to each
performance data point (usually min/max/mean/median or geomean, plus
result set id and job id information for correlation with other
treeherder APIs)

I've just finished up a large refactoring of the way we store
performance data internally, and thought this would be a good
opportunity to clean things up a bit.

The endpoints have changed to:

/api/project/<branch>/performance/signatures?interval=<interval>

and:

/api/project/<branch>/performance/data?interval=<interval>&signatures=<signature>

(again, signatures can be specified multiple times, if you want to
return multiple performance series in the same call)

The signatures endpoint has the same return format, but the data
endpoint now returns a dictionary, with signature hashes as the keys and
an array of performance data dictionaries as the values.

Also, any value for interval is now acceptable, it is no longer
necessary to restrict yourself to the previous fixed set of possibilities.

Happy perfherding!

Will
0 new messages