Treeherder, Task Cluster and Pulse

6 views
Skip to first unread message

Cameron Dawson

unread,
Jul 6, 2016, 7:43:21 PM7/6/16
to tools-tr...@lists.mozilla.org, tools-ta...@lists.mozilla.org, dev-pl...@lists.mozilla.org, dev-tree-...@lists.mozilla.org
Tomorrow morning we will be changing how Treeherder gets data from Task Cluster.

tl;dr — No action required on your part. We are changing some things under the hood, but everything should look the same.

More Info
=======

Greg Arndt, Jonas Jensen and I have been working on using Pulse to get results to Treeherder rather than Task Cluster posting directly to the Treeherder APIs. This will mean simpler data ingestion with better validation. Huge thanks to Jonas Jensen who came up with the scheme for this in the first place and helped me get rolling on it. Also huge thanks to Greg who’s done a ton of fantastic work on the Task Cluster side of this.

We will take this live tomorrow, July 7th around 10am.

What’s going to happen?
=================

The new Fancy-Pants <taskcluster-treeherder> app that Greg wrote has already been posting messages to pulse exchanges for both stage and production. But Treeherder-prod hasn’t been listening. We will turn on Treeherder-prod’s Fancy-Pants ``read_pulse_jobs`` process. Then push a change to the Old-Pants <mozilla-taskcluster> app that will make it stop posting jobs to Treeherder’s API.

You shouldn’t notice anything, but in the unlikely event that you DO, please chime in on #treeherder and check in with :camd (me) or :garndt. We’ve been testing this on Treeherder-staging for a month or so and it’s been working great. We hope to continue that trend on prod. :)

Other benefits
==========

1. Other tools can now post data to their own Pulse exchanges, register them with Treeherder, and we will pick that data up. Please submit a bug to Treeherder with your exchange information and we will get you set up.
2. The submission data will be validated against a JSON-schema <https://github.com/mozilla/treeherder/blob/master/schemas/pulse-job.yml> to take the guess-work out of submitting to Treeherder. You should validate your own data prior to submission to your exchange.
3. Folks playing with Treeherder on your local Vagrant instance can now use the read_pulse_jobs management command to ingest Task Cluster data as well as BuildBot.

The docs for this are at: https://treeherder.readthedocs.io/pulseload.html

Please let me or Greg Arndt know if you have any questions.

Thanks heaps! :)
-Cam

P.S. - Here’s a blog post I wrote about it in the early-stages of planning this: https://cheshirecam.wordpress.com/2015/09/30/treeherder-loading-data-from-pulse/
It’s mostly still true.

Selena Deckelmann

unread,
Jul 7, 2016, 5:46:08 AM7/7/16
to Cameron Dawson, tools-tr...@lists.mozilla.org, tools-ta...@lists.mozilla.org, dev-pl...@lists.mozilla.org, dev-tree-...@lists.mozilla.org
🕶👖🍻

Thanks all for making this happen and special thanks for a delightful
change summary, Cam!

-Selena
> _______________________________________________
> tools-taskcluster mailing list
> tools-ta...@lists.mozilla.org
> https://lists.mozilla.org/listinfo/tools-taskcluster
>

Gregory Arndt

unread,
Jul 8, 2016, 9:49:49 AM7/8/16
to Cameron Dawson, tools-taskcluster, dev-pl...@lists.mozilla.org, dev-tree-...@lists.mozilla.org, tools-tr...@lists.mozilla.org
As a follow up, I would like to point out a couple of pieces of information:

mozilla-taskcluster is still operational for scheduling decision tasks and
handling actions from treeherder (cancel/retrigger) for taskcluster tasks.
Only api submission for jobs was turned off and now handled by our new
component, taskcluster-treeherder [1]. At some point the remaining
functionality will be split into separate services leading to the
decomission of mozilla-taskcluster.

Taskcluster tasks have always contained data under task.extra.treeherder,
but now we have a schema [2] published that this data is validated against
and can also be used as a reference.

A new field, 'jobKind', has been added to this section. This allows a task
to declare what type of task it is and Treeherder can take actions
appropriate for the kind of task that's being reported. Currently the most
notable difference is when a task marked as 'build' fails, it will be
reported to Treeherder as red. Previously all job failures were reported
orange (testfail) regardless of the job type. Failed tasks with a jobKind
of test will be reported as orange and any task which does not specify
jobKind or is marked as 'other' will be shown as red.

We made sure that all existing tasks that are being reported could pass
this validation and in the future we will work with task
creators/maintainers at adding more validation constraints for this data.

-Greg


[1] https://github.com/taskcluster/taskcluster-treeherder
[2]
https://schemas.taskcluster.net/taskcluster-treeherder/v1/task-treeherder-config.json#
> dev-tree-management mailing list
> dev-tree-...@lists.mozilla.org
> https://lists.mozilla.org/listinfo/dev-tree-management
>
Reply all
Reply to author
Forward
0 new messages