Closed
Bug 1237610
Opened 8 years ago
Closed 6 years ago
Gather and report local build metrics
Categories
(Firefox Build System :: General, defect)
Firefox Build System
General
Tracking
(firefox64 fixed)
RESOLVED
FIXED
mozilla64
Tracking | Status | |
---|---|---|
firefox64 | --- | fixed |
People
(Reporter: dminor, Assigned: ted)
References
(Depends on 1 open bug, Blocks 5 open bugs)
Details
Attachments
(6 files)
59 bytes,
text/x-review-board-request
|
gps
:
review-
|
Details |
46 bytes,
text/x-phabricator-request
|
gps
:
review+
|
Details | Review |
46 bytes,
text/x-phabricator-request
|
gps
:
review+
|
Details | Review |
46 bytes,
text/x-phabricator-request
|
gps
:
review+
|
Details | Review |
46 bytes,
text/x-phabricator-request
|
gps
:
review+
|
Details | Review |
46 bytes,
text/x-phabricator-request
|
ted
:
review+
|
Details | Review |
We would like to gather and report build metrics from local developer's machines to help identify problems and quantify progress in making the build system faster. Because of privacy implications, this system will be opt-in and will not collect PII (at least initially.) Data we're considering collecting: * mach command (or at least build target) * machine characteristics - processor, ram, drive type, os * build type - full, incremental, or files affected (or a count of files affected) * elapsed time * CPU usage (samples, by second?) * Disk usage (samples) * Memory usage (samples) * Swap usage (samples) We already collect resource usage data and store it in resource_usage.json during a build, so we might be able to reuse that. Our initial plan is to report this data to Telemetry.
Reporter | ||
Updated•8 years ago
|
Assignee: nobody → dminor
Reporter | ||
Updated•8 years ago
|
Assignee: dminor → nobody
Assignee | ||
Updated•7 years ago
|
Assignee: gps → ted
Updated•7 years ago
|
Blocks: buildmetrics
Comment hidden (mozreview-request) |
Assignee | ||
Comment 3•7 years ago
|
||
Until the generic ingestion service is available we're going to continue using ekyle's server. It stores data in a private s3 bucket, which should be good enough for now. This patch updates the address of the server and also flips submission from opt-in to opt-out. I'll post about this on dev-platform before landing. Once this lands we should be able to start looking at some of the data and we can figure out if we need more information to answer the questions we'd like to ask.
Comment 4•7 years ago
|
||
mozreview-review |
Comment on attachment 8878612 [details] bug 1237610 - make mach telemetry opt-out rather than opt-in. https://reviewboard.mozilla.org/r/149928/#review155250 The code seems correct. But this gets a r- for policy. I'm reasonably confident that we can't collect data from client installs without at least prompting the end user that this occurs. This would likely violate Mozilla data collection policies and probably some laws. We need sign-off from someone authorized to make such a sign-off. And I reckon that sign-off won't occur until we have some kind of notice that data collection occurs. Also, submitting to an IP address via http:// is sketchy. Can we not get https:// or a hostname (I have access to some Mozilla-related DNS zones hosted on AWS that we could use)? Of course, https:// presents its own challenges, such as validating the certificate - which isn't guaranteed to work on all Python installs :/
Attachment #8878612 -
Flags: review?(gps) → review-
Assignee | ||
Comment 5•7 years ago
|
||
Ah, I thought we had sorted out the privacy issues of submitting as opt-out, thanks for the info! We'll have to figure out what the right way to handle that is, then. RE: SSL, good call. If you have a hostname to use I'm sure we can point it at ekyle's server and get a Let's Encrypt cert configured. I'll file a bug for that.
Assignee | ||
Comment 6•7 years ago
|
||
As I was writing a comment about the privacy issue, I realized the simplest way to do this might just be to put a prompt in `mach bootstrap`.
Comment 7•7 years ago
|
||
(In reply to Ted Mielczarek [:ted.mielczarek] from comment #5) > Ah, I thought we had sorted out the privacy issues of submitting as opt-out, > thanks for the info! We'll have to figure out what the right way to handle > that is, then. I think I had a verbal agreement that a proposal I came up sounded reasonable. Not sure if AutomatedTester or Coop ever got something more formal.
Comment 8•7 years ago
|
||
(In reply to Gregory Szorc [:gps] from comment #7) > I think I had a verbal agreement that a proposal I came up sounded > reasonable. Not sure if AutomatedTester or Coop ever got something more > formal. If we want to wait for the generic ingestion service, we're covered, but if we want to collect the data before that service is ready on our own custom server, we'll need to address the concerns around PII and retention. I'll grab bug 1291053 and start driving it.
Comment 9•7 years ago
|
||
We're still waiting on bug 1242017, so gps has setup a new, temporary ingestion point. See https://bugzilla.mozilla.org/show_bug.cgi?id=1374380#c5 for host details.
Updated•6 years ago
|
Product: Core → Firefox Build System
Comment 10•6 years ago
|
||
In our workweek last week, we decided that these are the initial characteristics we are looking to capture from the build telemetry work What mach commands are they running? Mach build is most important Basic timing information - time to run mach build Basic hardware info - cpu brand string, memory, type of disk Files were changed through invocation - mach watchman Configure flags: Artifact build or not Debug vs opt Exception code if applicable Sequence of commands Persistent client id Sccache and icecream usage
Comment 11•6 years ago
|
||
A quick update from the data ingestion side: I have submitted a pull request of the updated JSON schema to the mozilla-pipeline-schemas repository at https://github.com/mozilla-services/mozilla-pipeline-schemas/pull/191. I had an issue getting tests to pass against the Parquet schema format and after speaking with :frank in #datapipeline, I was told to submit the pull request with a comment asking for help finding the error. I am waiting for a review on that PR.
Assignee | ||
Comment 12•6 years ago
|
||
MozReview-Commit-ID: HJLO82QZQVO
Assignee | ||
Comment 13•6 years ago
|
||
MozReview-Commit-ID: 4UG6RH4b6tZ
Assignee | ||
Comment 14•6 years ago
|
||
Assignee | ||
Comment 15•6 years ago
|
||
This patch rewrites `gather_telemetry` to collect data matching the new schema. This includes all required fields and most of the optional fields. Some fields are not currently recorded and followup bugs have been filed to track their implementation.
Comment 16•6 years ago
|
||
Comment on attachment 9005006 [details] bug 1237610 - slight cleanup in should_skip_dispatch. r?build Gregory Szorc [:gps] has approved the revision.
Attachment #9005006 -
Flags: review+
Comment 17•6 years ago
|
||
Comment on attachment 9005007 [details] bug 1237610 - don't call post_dispatch_handler when using debug-command. r?build Gregory Szorc [:gps] has approved the revision.
Attachment #9005007 -
Flags: review+
Comment 18•6 years ago
|
||
Comment on attachment 9005008 [details] bug 1237610 - use a mach setting to control telemetry submission. r?build Gregory Szorc [:gps] has approved the revision.
Attachment #9005008 -
Flags: review+
Comment 19•6 years ago
|
||
This commit updates submit_telemetry_data.py to send data to the Telemetry pipeline. The script assumes the presence of a "telemetry" directory within the statedir, and an "outgoing" directory within the "telemetry" directory (otherwise there is no data to submit). The script will create a "submitted" directory and "telemetry.log" file if absent, making the assumption that this is the first build telemetry submission for that user. UUID values for submitted data points are seeded from the filename, without the ".json" suffix.
Assignee | ||
Comment 20•6 years ago
|
||
Comment on attachment 9008480 [details] Bug 1237610: update `submit_telemetry_data.py` r?ted Ted Mielczarek [:ted] [:ted.mielczarek] has approved the revision.
Attachment #9008480 -
Flags: review+
Comment 21•6 years ago
|
||
Pushed by cosheehan@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/ce05cf6d5e19 update `submit_telemetry_data.py` r=ted
Comment 22•6 years ago
|
||
Comment on attachment 9005009 [details] bug 1237610 - Collect telemetry data matching the new schema. r?build Gregory Szorc [:gps] has approved the revision.
Attachment #9005009 -
Flags: review+
Comment 23•6 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/ce05cf6d5e19
Status: ASSIGNED → RESOLVED
Closed: 6 years ago
status-firefox64:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla64
Assignee | ||
Comment 24•6 years ago
|
||
https://hg.mozilla.org/integration/mozilla-inbound/rev/a413b8fa5c7f3b12b7161782d2b774e96120a78e bug 1237610 - move build system telemetry collection code to a common place. r=gps https://hg.mozilla.org/integration/mozilla-inbound/rev/61de9d8b0bb22a0e95dac87b297f727f15e4f346 bug 1237610 - slight cleanup in should_skip_dispatch. r=gps https://hg.mozilla.org/integration/mozilla-inbound/rev/328a9f04072daa04708d44ee729f54291e983691 bug 1237610 - don't call post_dispatch_handler when using debug-command. r=gps https://hg.mozilla.org/integration/mozilla-inbound/rev/9eed32a2c7f7965aa11e25da68d8eb714982b05b bug 1237610 - use a mach setting to control telemetry submission. r=gps https://hg.mozilla.org/integration/mozilla-inbound/rev/1b85b45460a36022d99cba049a92635fa8ffd1da bug 1237610 - Collect telemetry data matching the new schema. r=gps
Comment 25•6 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/a413b8fa5c7f https://hg.mozilla.org/mozilla-central/rev/61de9d8b0bb2 https://hg.mozilla.org/mozilla-central/rev/328a9f04072d https://hg.mozilla.org/mozilla-central/rev/9eed32a2c7f7 https://hg.mozilla.org/mozilla-central/rev/1b85b45460a3
You need to log in
before you can comment on or make changes to this bug.
Description
•