<div dir="ltr"><div><div>As an aside and for my own understanding, in the past geo was determined on the server side yet you have the client providing geo. Is geo provided by the client now?<br><br></div>Thanks,<br></div>Robert<br><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Mar 8, 2017 at 12:59 PM, Saptarshi Guha <span dir="ltr"><<a href="mailto:sguha@mozilla.com" target="_blank">sguha@mozilla.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_default"><div class="gmail_default"><font face="monospace, monospace">Good question. I am running Firefox build B, my browser pings the server for an</font></div><div class="gmail_default"><font face="monospace, monospace">update (and includes any identifier it may have, i.e. the 'id' column in the</font></div><div class="gmail_default"><font face="monospace, monospace">JSON below), it receives this JSON</font></div><div class="gmail_default"><font face="monospace, monospace"><br></font></div><div class="gmail_default"><font face="monospace, monospace">{</font></div><div class="gmail_default"><font face="monospace, monospace"> id: bdd2e0eb47ff32267f0a928a83f17b<wbr>bb</font></div><div class="gmail_default"><font face="monospace, monospace"> criteria: </font></div><div class="gmail_default"><font face="monospace, monospace"> {</font></div><div class="gmail_default"><font face="monospace, monospace"> channel: aurora,</font></div><div class="gmail_default"><font face="monospace, monospace"> locale: en-us,</font></div><div class="gmail_default"><font face="monospace, monospace"> geo: US,</font></div><div class="gmail_default"><font face="monospace, monospace"> arch: x86-64,</font></div><div class="gmail_default"><font face="monospace, monospace"> existingBuildRange: ['20170301',''] ,</font></div><div class="gmail_default"><font face="monospace, monospace"> sampleID1: [45], #random number between 0...99 based on clientID</font></div><div class="gmail_default"><font face="monospace, monospace"> sampleID2: [0,99]</font></div><div class="gmail_default"><font face="monospace, monospace"> },</font></div><div class="gmail_default"><font face="monospace, monospace"> arm: 'test',</font></div><div class="gmail_default"><font face="monospace, monospace"> payloadPatch: ....</font></div><div class="gmail_default"><font face="monospace, monospace"> possiblyexpiresAfter: 5 days</font></div><div class="gmail_default"><font face="monospace, monospace">}</font></div><div class="gmail_default"><font face="monospace, monospace"><br></font></div><div class="gmail_default"><font face="monospace, monospace">The browser checks if it fulfills the criteria (1% sample of channel,locale,</font></div><div class="gmail_default"><font face="monospace, monospace">geo, arch and existing build ranges). Also each profile is always in a</font></div><div class="gmail_default"><font face="monospace, monospace">predetermine bucket: we choose buckets not profiles.</font></div><div class="gmail_default"><font face="monospace, monospace"><br></font></div><div class="gmail_default"><font face="monospace, monospace">If so, the browser is candidate for an update. Currently we have 25% for first</font></div><div class="gmail_default"><font face="monospace, monospace">few days. This can be implemented using a match-all criteria but set sampleID1</font></div><div class="gmail_default"><font face="monospace, monospace">to be 25 different numbers. </font></div><div class="gmail_default"><font face="monospace, monospace"><br></font></div><div class="gmail_default"><font face="monospace, monospace">If the browser is not a candidate, we proceed as usual. If it is a candidate,</font></div><div class="gmail_default"><font face="monospace, monospace">then:</font></div><div class="gmail_default"><font face="monospace, monospace"><br></font></div><div class="gmail_default"><font face="monospace, monospace">- update to the version we specify in 'arm' ( either by installing</font></div><div class="gmail_default"><font face="monospace, monospace"> hotfixes/addons/new binary) but persist the UT data so that the updated</font></div><div class="gmail_default"><font face="monospace, monospace"> browser knows why it updated i.e. because it was selected to update</font></div><div class="gmail_default"><font face="monospace, monospace">- arm can be several types:</font></div><div class="gmail_default"><font face="monospace, monospace"> - one must be 'control': the browser doesn't really update, but remains on the</font></div><div class="gmail_default"><font face="monospace, monospace"> same build, or it updates to the new build with all new features turned</font></div><div class="gmail_default"><font face="monospace, monospace"> off. Depending on how we implement a new build (is it just a matter of</font></div><div class="gmail_default"><font face="monospace, monospace"> addons, or very much a new binary) we might have leave the user on the same</font></div><div class="gmail_default"><font face="monospace, monospace"> build B or update to new build B' but with all new features *off*</font></div><div class="gmail_default"><font face="monospace, monospace"> - another arm would be varieties of 'test':</font></div><div class="gmail_default"><font face="monospace, monospace"> - test1 could be one version of build B'</font></div><div class="gmail_default"><font face="monospace, monospace"> - test2 another version</font></div><div class="gmail_default"><font face="monospace, monospace"> </font></div><div class="gmail_default"><font face="monospace, monospace">We now have 1% of the filtered browsers running on B' be it control/test1/test2</font></div><div class="gmail_default"><font face="monospace, monospace">etc (as mentioned above B' for control could well be B).</font></div><div class="gmail_default"><font face="monospace, monospace"><br></font></div><div class="gmail_default"><font face="monospace, monospace">They will run for 5 days (possiblyexpiresAfter) and then query for update or go back</font></div><div class="gmail_default"><font face="monospace, monospace">to build B (e.g. instability). Since the browser pings our server with the 'id'</font></div><div class="gmail_default"><font face="monospace, monospace">field, we can have special JSONs to return for these browsers (because the</font></div><div class="gmail_default"><font face="monospace, monospace">experimen/release might have been a terrible security/user/stability experience)</font></div><div class="gmail_default"><font face="monospace, monospace">e.g.</font></div><div class="gmail_default"><font face="monospace, monospace"><br></font></div><div class="gmail_default"><font face="monospace, monospace">- go back to build B</font></div><div class="gmail_default"><font face="monospace, monospace">- immediately go to build B''</font></div><div class="gmail_default"><font face="monospace, monospace"><br></font></div><div class="gmail_default"><font face="monospace, monospace">Analyses:</font></div><div class="gmail_default"><font face="monospace, monospace"><br></font></div><div class="gmail_default"><font face="monospace, monospace">Much like an experiment, we can see several measures of interest for the days</font></div><div class="gmail_default"><font face="monospace, monospace">being run for these browsers :</font></div><div class="gmail_default"><font face="monospace, monospace"><br></font></div><div class="gmail_default"><font face="monospace, monospace">- measure opt-out (if person forced an update,"I hate this!")</font></div><div class="gmail_default"><font face="monospace, monospace">- measure performance/stability/user experience across different arms</font></div><div class="gmail_default"><font face="monospace, monospace">- stop early (use a small value for possiblyexpiresAfter, which doesn't force</font></div><div class="gmail_default"><font face="monospace, monospace"> an expiry but allows for one or maybe continue further)</font></div><div class="gmail_default"><font face="monospace, monospace"><br></font></div><div class="gmail_default"><font face="monospace, monospace">We can compare </font></div><div class="gmail_default"><font face="monospace, monospace">- for test: before update, vs after update</font></div><div class="gmail_default"><font face="monospace, monospace">- for control: use as a baseline,also before and after</font></div><div class="gmail_default"><font face="monospace, monospace">Both of these provide 'interaction': we control for the longitudinal experience</font></div><div class="gmail_default"><font face="monospace, monospace">of users (user variation is huge) by looking at their before vs after experience</font></div><div class="gmail_default"><font face="monospace, monospace">but also look at test vs control.</font></div><div class="gmail_default"><font face="monospace, monospace"><br></font></div><div class="gmail_default"><font face="monospace, monospace">Notice, I've frame the release as an experiment. The complicated bit (and i</font></div><div class="gmail_default"><font face="monospace, monospace">understate that bit ...) is engineering the release as an experiment ...</font></div><div class="gmail_default"><font face="monospace, monospace"><br></font></div><div class="gmail_default"><font face="monospace, monospace">Hope this clarifies things and encourages further discussion</font></div><div class="gmail_default"><font face="monospace, monospace"><br></font></div><div class="gmail_default"><font face="monospace, monospace"><br></font></div><div class="gmail_default"><font face="monospace, monospace"> </font></div><div class="gmail_default"><font face="monospace, monospace"><br></font></div><div class="gmail_default"><font face="monospace, monospace"><br></font></div><div class="gmail_default"><font face="monospace, monospace"> </font></div><div class="gmail_default"><font face="monospace, monospace"> </font></div><div class="gmail_default" style="font-family:monospace,monospace"><br></div></div></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Mar 8, 2017 at 11:54 AM, Marco Castelluccio <span dir="ltr"><<a href="mailto:mcastelluccio@mozilla.com" target="_blank">mcastelluccio@mozilla.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div text="#000000" bgcolor="#FFFFFF">
<p>This sounds interesting, but is it feasible? Can we hold users
back and prevent them from updating to a possibly more secure
version?</p>
<p>How many days would it take to have results from such a test? We
currently roll out updates to 25% just for a few days.<br>
</p>
<p>I can see us doing this for Aurora/Beta, but I'm less sure about
Release.</p>
<p>- Marco.<br>
</p>
<br>
<div class="m_-812638819878097953m_3883503117014048183moz-cite-prefix">Il 08/03/17 20:40, Saptarshi Guha ha
scritto:<br>
</div><div><div class="m_-812638819878097953h5">
<blockquote type="cite">
<div id="m_-812638819878097953m_3883503117014048183compose-container"><span><span content="Outlook Mobile for iOS"></span></span>
<div>
<div>I've been saying something similar for a long time now.
Ii advocate for UT based rollout that can be controlled
based on variables in UT and unify the experiments and
release rollout thought processes..</div>
<div><br>
From an email I sent elsewhere (appropriate here)</div>
<div><br>
</div>
<div>
<div class="gmail_default"><span style="background-color:rgba(255,255,255,0)">I also advocate (strongly!)
doing releases based entirely on UT data. A release (and
even an experiment) can be released to profiles meeting
some criteria e.g. Release, <a class="m_-812638819878097953m_3883503117014048183moz-txt-link-freetext">geo:US</a>, locale: en-us
memory: low-end *and* sampleid1 in 1, sampleid2 in 41.</span></div>
<div class="gmail_default"><span style="background-color:rgba(255,255,255,0)">Here sampleid2 are independent
versions of sample_id (e.g. crc32(salt(client_id)) %%
100 ). That way we can release to as small as 60,000
profiles. Moreover we can keep a file with this release
history (what filters, what sampleids chosen etc) and
keep it in the UT json itself. </span></div>
<div class="gmail_default"><span>The quality of
the release can be viewed in two ways: effect on
existing users (before vs after ) and test vs control.</span></div>
<div class="gmail_default"><span><br>
</span></div>
<div class="gmail_default"><span>Cheers</span></div>
<div class="gmail_default"><span>Saptarshi</span></div>
<br>
</div>
</div>
</div>
<br>
<br>
<br>
<div class="gmail_quote">On Mon, Mar 6, 2017 at 11:57 AM -0800,
"Brendan Colloran" <span dir="ltr"><<a href="mailto:bcolloran@mozilla.com" target="_blank">bcolloran@mozilla.com</a>></span> wrote:<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="3D"ltr"">
<div dir="ltr">
<div>
<div>
<div>
<div>"""I don't actually have a proper model for
when we're allowed to trust crash rates. When is
the calculated crash rate actually indicative of a
release's health? Open question. And one whose
answer changes over time, with pingSender changing
the speed at which we receive crucial inputs."""<br>
<br>
"""Can you describe what other work we need to get
to a high confidence? Especially if there is
analysis/statistical help you need, Saptarshi
already has a lot of context. I want to make sure
that we in relatively short order *can* answer
this in a way that release-drivers can trust to
make critical ship or no-ship decisions."""<br>
<br>
Great conversation, important issues. I'm going to
repeat a slogan that I've been saying for years,
because recent progress at Mozilla indicates that
doing so has actually been effective ;-)<br>
<br>
</div>
**Anytime we release code without doing so as a real
randomly controlled experiment, we're doing an
uncontrolled experiment on our entire user
population**<br>
<br>
It is not a mistake that Randomized Controlled
Trials are the gold standard for *nailing down*
causal relationships in Science. Over the past I
dunno 18 months-ish, Mozilla has gotten way better
at using RCTs to gain real clarity about the impact
of changes, but we still don't do it for
everything... the final frontier is doing RCTs for
entire builds/releases.<br>
<br>
</div>
<div>As you all are very well aware, when you are
watching things like crash numbers or start-up times
bounce around from day to day and version to
version, it's super hard to get clarity about what
is causing the bounces-- there are a ton of
confounding variables. At a minimum:<br>
</div>
</div>
<div>- there is the effect of builds/releases, which is
the thing we can control, and hence the thing whose
effect we really actually care about<br>
</div>
<div>- there are seasonal and weekly cycles that are
pretty well understood, but which (as anyone has
looked at this stuff knows...) can still be pretty
messy, and which impacts different parts of out
population differently (e.g. heavy vs light users)<br>
- there are random shocks to the the signal that are
caused by some change in the software ecosystem on the
client (like the DLL injection problem Harald
mentioned) or by a change to some prominent website<br>
</div>
<div>- there are random shocks to the system that happen
because of human behaviors-- news cycles etc changing
browsing habits on short time scales<br>
</div>
<div><br>
</div>
<div>And so I say this now as a statistician who
believes in the value of good analytical/statistical
work: if you *really* want to get to high confidence
about the health of a release, the *only* way to do so
is to reframe releases as RCTs. There is simply too
much noise in our timeseries signals, and we don't
have access to enough of the exogenous explanatory
variables to be able to control for that noise. This
is not an issue where you can just pour more stats on
it and it will go away; it's irreducible, and it's why
all of Science uses RCTs whenever possible (and also
why ton's of software companies do...).<br>
<br>
</div>
<div>Luckily, we control our whole system, so for us it
_is_ possible. It would require some thought about the
details of the implementation, and it would surely
take a ton of work from release management, but if we
rolled version out as A/B tests with randomly assigned
update vs non-update, we could know *for sure* what
impact new code has on crashes, startup time,
engagement, retention, browser perf, etc etc. [Note:
throttling releases is good for smoke testing this
stuff, but it's not the same as real randomization]<br>
<br>
</div>
<div>Anyway, I'm sure there are a million reasons why
people won't want to make a big investment in
rethinking giant portions of how release management
works, so in the meantime i'll just leave this
suggestion here to percolate in your brains. Maybe in
another two years we'll be sick enough of all this
uncertainty to make that investment; when we get to
that point, ping me, joy, ilana, etc and we can work
on the details ;-)<br>
<br>
</div>
<div>-bc<br>
</div>
<br>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Fri, Mar 3, 2017 at 1:52 PM,
Benjamin Smedberg <span dir="ltr"><<a href="mailto:benjamin@smedbergs.us" target="_blank">benjamin@smedbergs.us</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">
<div>
<div>Yes, I'm aware of the fundamental
difficulty and that's one of the reasons we're
prioritizing pingsender.<br>
<br>
</div>
Can you describe what other work we need to get
to a high confidence? Especially if there is
analysis/statistical help you need, Saptarshi
already has a lot of context. I want to make
sure that we in relatively short order *can*
answer this in a way that release-drivers can
trust to make critical ship or no-ship
decisions.<br>
<br>
</div>
-BDS<br>
<br>
</div>
<div class="m_-812638819878097953m_3883503117014048183m_516997586648512450HOEnZb">
<div class="m_-812638819878097953m_3883503117014048183m_516997586648512450h5">
<div class="gmail_extra"><br>
<div class="gmail_quote">On Wed, Mar 1, 2017
at 3:18 PM, Chris Hutten-Czapski <span dir="ltr"><<a href="mailto:chutten@mozilla.com" target="_blank">chutten@mozilla.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">
<div>
<div>"How quickly can we get from [a
release] to a reliable crash rate?"<br>
<br>
</div>
Well, if you believe my analysis[1]
(which you may, if you'd like) the
answer is "at least a day out, but
probably best to wait at least a day
longer than that"<br>
<br>
</div>
<div>But aside from shameless
self-promotion, there's the real
concern that I don't actually have a
proper model for when we're allowed to
trust crash rates. When is the
calculated crash rate actually
indicative of a release's health? Open
question. And one whose answer changes
over time, with pingSender changing
the speed at which we receive crucial
inputs.<br>
</div>
<div><br>
</div>
<div>:chutten<br>
</div>
<div><br>
[1]: <a href="https://chuttenblog.wordpress.com/2017/02/09/data-science-is-hard-client-delays-for-crash-pings/" target="_blank">https://chuttenblog.wordpress.<wbr>com/2017/02/09/data-science-is<wbr>-hard-client-delays-for-crash-<wbr>pings/</a></div>
</div>
<div class="m_-812638819878097953m_3883503117014048183m_516997586648512450m_-9189569570906763126HOEnZb">
<div class="m_-812638819878097953m_3883503117014048183m_516997586648512450m_-9189569570906763126h5">
<div class="gmail_extra"><br>
<div class="gmail_quote">On Wed, Mar
1, 2017 at 3:02 PM, Benjamin
Smedberg <span dir="ltr"><<a href="mailto:benjamin@smedbergs.us" target="_blank">benjamin@smedbergs.us</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">
<div>
<div>
<div>
<div>
<div>
<div>Think of the
per-build data
like this:<br>
<br>
</div>
* our crash rate for
FF53 b2 is too
goddamn high!<br>
</div>
* We pulled a topcrash
list and found a
regression bug<br>
</div>
* We fixed it and
uplifted it to FF53b4<br>
</div>
* Release drivers want to
make sure that FF53b4 has
the crash rate reduction
that we expected.<br>
<br>
</div>
In this case (which is very
common on all the prerelease
channels), showing by date
and not by build smooths out
the signal we care about
most, which is the
difference per-build. So
what release drivers care
about most is: how quickly
can we get from releasing
beta8 (or RC1) to a reliable
crash rate that says we're
clear to ship this to
release?<br>
<br>
</div>
--BDS<br>
<div><br>
</div>
</div>
<div class="m_-812638819878097953m_3883503117014048183m_516997586648512450m_-9189569570906763126m_-7488825529247315431HOEnZb">
<div class="m_-812638819878097953m_3883503117014048183m_516997586648512450m_-9189569570906763126m_-7488825529247315431h5">
<div class="gmail_extra"><br>
<div class="gmail_quote">On
Wed, Mar 1, 2017 at 2:45
PM, Chris Hutten-Czapski
<span dir="ltr"><<a href="mailto:chutten@mozilla.com" target="_blank">chutten@mozilla.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">
<div>
<div>
<div>
<div>
<div>Thank you
for correcting
my mistake
about
build_id.
Apparently
when I was
looking for
readable
versions I
took the lack
of a bX suffix
on beta builds
to mean there
was no build
data, but that
was wrong then
and wrong now.<br>
<br>
</div>
So yeah. No
problemo,
apparently.
(Well, except
my
misapprehension,
which should
now be
rectified.)<br>
<br>
</div>
<div>Anyway,
back to
wishlisting...
The request I
can most
easily
understand is
for the
existing
display to
instead use
the current
and N previous
_builds'_
crash counts
and kuh to
form a
"channel
health trend
line". N may
be some fixed,
small number
per channel
(maybe 2, 6,
14, 21), or
some function
of usage (take
all successive
previous
builds until
they contain
> Y% of
that
activity_date's
kuh).<br>
<br>
</div>
<div>This
sounds fun and
useful and is
something I
feel I
understand
well enough to
file an Issue
for and begin
working on.<br>
<br>
</div>
<div>The
per-build case
on the other
hand I feel I
understand
less well. Do
the
pseudo-timeseries
plots as seen
on sql.tmo
work as well
on channels
with fewer
builds? If
instead we
display the
crash rate for
one build as
one number
(per type of
crash), does
it need to be
plotted at
all? Is
Harald's view
of 52b5
actually a
problem? The
best display
for
understanding
the health of
a new release
is... <br>
</div>
<div><br>
</div>
<div>:chutten<br>
</div>
</div>
</div>
</div>
</div>
<div class="m_-812638819878097953m_3883503117014048183m_516997586648512450m_-9189569570906763126m_-7488825529247315431m_8443718441706384702HOEnZb">
<div class="m_-812638819878097953m_3883503117014048183m_516997586648512450m_-9189569570906763126m_-7488825529247315431m_8443718441706384702h5">
<div class="gmail_extra"><br>
<div class="gmail_quote">On
Wed, Mar 1,
2017 at 2:08
PM, Benjamin
Smedberg <span dir="ltr"><<a href="mailto:benjamin@smedbergs.us" target="_blank">benjamin@smedbergs.us</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">
<div class="gmail_extra">
<div class="gmail_quote"><span>On
Wed, Mar 1,
2017 at 1:40
PM, Chris
Hutten-Czapski
<span dir="ltr"><<a href="mailto:chutten@mozilla.com" target="_blank">chutten@mozilla.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div dir="ltr">
<div>
<div>So, for
each channel,
having a line
for each of
the current
and N previous
versions'
crash rates
would be
helpful?
(where N is
small... say
2)<br>
</div>
</div>
</div>
</blockquote>
</span>
<div><br>
It's closer.
If it's
possible to
have a single
line that is
the aggregate,
that might
smooth out
adoption
noise.<br>
</div>
<span>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div dir="ltr">
<div><br>
<div>crash_aggregates
does its
aggregation by
version, not
build, so if
crash-rates-per-build
is necessary
this will
require quite
a rewrite.
(I'll have to
join
main_summary
and
crash_summary
on dates) If
crash-rates-per-version
is sufficient
(or is worth
the effort of
exploring),
then that can
be adopted
within the
existing
architecture.<br>
</div>
</div>
</div>
</blockquote>
<div><br>
</div>
</span>
<div>This is
incorrect.
build_id is
one of the
dimensions,
specifically
because we
needed it for
betas with
e10s. Example
from stmo:<br>
<br>
activity_date
dimensions
stats
submission_date
24/08/16{"build_id":"201508040<wbr>30204","os_name":"Windows_NT",<wbr>"os_version":"6.2","country":"<wbr>NP","application":"Firefox","a<wbr>rchitecture":"x86-64","build_v<wbr>ersion":"42.0a1","channel":"ni<wbr>ghtly","e10s_enabled":"False"}<wbr>{"usage_hours_squared":0.01585<wbr>779320987654,"main_crashes":0,<wbr>"content_shutdown_crashes":0,"<wbr>usage_hours":0.154166666666666<wbr>67,"content_shutdown_crashes_s<wbr>quared":0,"gmplugin_crashes":0<wbr>,"content_crashes":0,"content_<wbr>crashes_squared":0,"plugin_cra<wbr>shes":0,"plugin_crashes_square<wbr>d":0,"ping_count":3,"gmplugin_<wbr>crashes_squared":0,"main_crash<wbr>es_squared":0}25/08/16<br>
<br>
<br>
</div>
<span>
<div> </div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div dir="ltr">
<div>
<div><br>
</div>
<div>One thing
to consider
may be that
crash-rates-per-build
will look
messy on
anything
pre-Beta. <br>
</div>
</div>
</div>
</blockquote>
<div><br>
</div>
</span>
<div>Could be,
but here's an
example way to
present this
for nightly: <a href="http://benjamin.smedbergs.us/blog/2013-04-22/graph-of-the-day-empty-minidump-crashes-per-user/" target="_blank">http://benjamin.smedbergs.us/b<wbr>log/2013-04-22/graph-of-the-da<wbr>y-empty-minidump-crashes-per-u<wbr>ser/</a><br>
<br>
</div>
<div>Here's
also a draft
of something a
while back in
STMO: <a href="https://sql.telemetry.mozilla.org/queries/192/source#309" target="_blank">https://sql.telemetry.mozilla.<wbr>org/queries/192/source#309</a><br>
<br>
</div>
<div>--BDS</div>
</div>
<br>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</div>
</div>
<br>
______________________________<wbr>_________________<br>
fhr-dev mailing list<br>
<a href="mailto:fhr-dev@mozilla.org" target="_blank">fhr-dev@mozilla.org</a><br>
<a href="https://mail.mozilla.org/listinfo/fhr-dev" rel="noreferrer" target="_blank">https://mail.mozilla.org/listi<wbr>nfo/fhr-dev</a><br>
<br>
</blockquote>
</div>
<br>
</div>
</div>
</div>
</blockquote>
</div>
</blockquote>
<br>
</div></div></div>
</blockquote></div><br></div>
</div></div><br>______________________________<wbr>_________________<br>
fhr-dev mailing list<br>
<a href="mailto:fhr-dev@mozilla.org">fhr-dev@mozilla.org</a><br>
<a href="https://mail.mozilla.org/listinfo/fhr-dev" rel="noreferrer" target="_blank">https://mail.mozilla.org/<wbr>listinfo/fhr-dev</a><br>
<br></blockquote></div><br></div>