[ninjalog] add ninjalog.README.md
I added document explaining ninjalog collection. This document explains what type of data is collected and how the data will be used. Bug: 900161, b/120645342 Change-Id: If47517aaa7a5510e4a634b5ccc0e4127d014dcb9 Reviewed-on: https://chromium-review.googlesource.com/c/1381912 Commit-Queue: Takuto Ikuta <tikuta@chromium.org> Reviewed-by: Dirk Pranke <dpranke@chromium.org>changes/12/1381912/17
parent
eba46fc12e
commit
540ba9dde0
@ -0,0 +1,64 @@
|
|||||||
|
# Ninja build log collection
|
||||||
|
|
||||||
|
[TOC]
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
|
||||||
|
When chromium developers use autoninja for their build,
|
||||||
|
|
||||||
|
e.g.
|
||||||
|
```
|
||||||
|
$ autoninja -C out/Release chrome
|
||||||
|
```
|
||||||
|
|
||||||
|
autoninja uploads ninja's build log for Google employees but we don't collect
|
||||||
|
logs from external contributors.
|
||||||
|
|
||||||
|
We use [this page](https://chromium-build-stats-staging.appspot.com/should-upload)
|
||||||
|
to decide whether an autoninja user is a Googler or not. Only people with access
|
||||||
|
to Google's internal network can see 'Success'.
|
||||||
|
|
||||||
|
Before uploading logs, autoninja shows a message 10 times to warn users that we
|
||||||
|
will collect build logs.
|
||||||
|
|
||||||
|
autoninja users can also opt in or out by using the following commands:
|
||||||
|
|
||||||
|
* `ninjalog_uploader_wrapper.py opt-in`
|
||||||
|
* `ninjalog_uploader_wrapper.py opt-out`
|
||||||
|
|
||||||
|
## What type of data are collected?
|
||||||
|
|
||||||
|
The collected build log contains
|
||||||
|
|
||||||
|
* output file of build tasks (e.g. chrome, obj/url/url/url_util.o)
|
||||||
|
* hash of build command
|
||||||
|
* start and end time of build tasks
|
||||||
|
|
||||||
|
See [manual of ninja](https://ninja-build.org/manual.html#ref_log) for more
|
||||||
|
details.
|
||||||
|
|
||||||
|
In addition to ninja's build log, we send the following data for further
|
||||||
|
analysis:
|
||||||
|
|
||||||
|
* OS (e.g. Win, Mac or Linux)
|
||||||
|
* number of cpu cores of building machine
|
||||||
|
* build targets (e.g. chrome, browser_tests)
|
||||||
|
* parallelism passed by -j flag
|
||||||
|
* following build configs
|
||||||
|
* host\_os, host\_cpu
|
||||||
|
* target\_os, target\_cpu
|
||||||
|
* symbol\_level
|
||||||
|
* use\_goma
|
||||||
|
* is\_debug
|
||||||
|
* is\_component\_build
|
||||||
|
|
||||||
|
We don't collect personally identifiable information
|
||||||
|
(e.g. username, ip address).
|
||||||
|
|
||||||
|
## Why ninja log is collected? / How the collected logs are used?
|
||||||
|
|
||||||
|
We (goma team) collect build logs to find slow build tasks that harm developer's
|
||||||
|
productivity. Based on collected stats, we find the place/build tasks where we
|
||||||
|
need to focus on. Also we use collected stats to track chrome build performance
|
||||||
|
on developer's machine. We'll use this stats to measure how much we can/can't
|
||||||
|
improve build performance on developer's machine.
|
Loading…
Reference in New Issue