Auto-tools/Projects/Signal From Noise

From MozillaWiki
Jump to: navigation, search

Signal From Noise

Making sense of the Talos results

Specifc goals 2013Q2


Historically we have had an 'acceptable' range of fluctuation in our talos number. Our methods of managing and tracking the numbers have all been surrounding running a test multiple times and generating a single number that we can track over time. This is great for long term tracking, but when looking at what that number represents and why it fluctuates there is a lot of room for error.

We want to do a better job of generating our 1 tracking number. We also want to revisit the way we are testing things and make sure we are running the right tests and the correct number of iterations to get a reliable data point. Most likely this involves looking at every page that we have and tracking that page individually, not as a small piece of a larger set of pages.

Most of this project is outlined well at on the [Talos Investigation] page.


Original Goals:

  • define what is signal and what is noise
  • understand the distribution of numbers and have confidence that our representation is meaningful

Appended goals:

  • ensure our tests are testing the right things
  • return performance regression results per push and posted to tbpl in real time
  • provide tools to quickly investigate performance regressions, compare changesets/branches, and identify trends


  • Datazilla: jeads
  • Talos: jhammel, jmaher
  • Metrics: christina (as needed)


Meetings are every other Thursday at 11AM Pacific Time in Joel Maher's Vidyo room.

  • The Datazilla project is holding Datazilla focus group meetings with interested developers to judge our progress toward fixing use cases that developers and tree sheriffs care about.



UI (Datazilla)

Use Cases


  • Firefox developer:
    • push patch to mozilla-central, expect green talos results
      • all results are green unless test fails to complete, then it is red
    • notification to dev.tree-management indicates a regression
      • developer goes to graphs-new and looks at the (test, platform, branch) graph
      • maybe compares to other platforms or branches
  • Talos developer
    • adds new feature to talos with expected change in numbers
    • run change side by side as a new test name for 1 week
    • browse to graphs-new to view new_test vs old_test to look at raw data points over a few days on each platform

Proposed 1 (assuming 1% deviation):

  • Firefox developer
    • push patch to mozilla-central, expect green talos results
      • number outside of 2% from gold standard, run turns orange
      • orange run has link on tbpl to graph server
      • graph server has a quick line of historical data and other platforms
      • then a focused section of what the gold standard is and what that run produced
      • it would be nice to see what the previous 5 runs had in terms of numbers, as well as all other platforms
    • no need for notification mails to dev.tree-management since this is managed in tbpl
    • FLAW: if firefox adjusts the standard number (up or down), then how do we call it the new standard?
      • maybe the web interface can have a way to change the number on the fly and put a bug/comment for the adjustment
  • Talos developer
    • adds new feature to talos with expected change in numbers
    • while pushing add an entry to the graph server of the new expected number
    • no need for side by side since we are just comparing to a known standard number


Graph Server: Current:

  • data from tests (tp5 sample)
    • noisy output on console (coming from pageloader)
NOISE: |i|pagename|median|mean|min|max|runs|
NOISE: |0;;852;864.3333333333334;809;1135;951;852;920;865;809;858;851;1135;836;837
NOISE: |1;;264;266.55555555555554;252;651;651;263;252;273;264;275;260;292;268;252
    • data sent to the graph server

Right now we are sending the median value (without the highest value in the set) to the graph server for each page. On the graph server, we [calculate our metric] for tp5 by averaging all the uploaded median values except for the max value.

  • TODO* define the perf counters that we collect and upload.


  • volume - TODO
  • storage - TODO
  • format - TODO