blob: b1e5284c617cc78e6fa800f3e23caafde741617e [file] [log] [blame] [view]
Takuto Ikuta540ba9d2018-12-19 22:24:081# Ninja build log collection
2
3[TOC]
4
5## Overview
6
7When chromium developers use autoninja for their build,
8
9e.g.
10```
11$ autoninja -C out/Release chrome
12```
13
14autoninja uploads ninja's build log for Google employees but we don't collect
15logs from external contributors.
16
17We use [this page](https://chromium-build-stats-staging.appspot.com/should-upload)
18to decide whether an autoninja user is a Googler or not. Only people with access
19to Google's internal network can see 'Success'.
20
21Before uploading logs, autoninja shows a message 10 times to warn users that we
22will collect build logs.
23
24autoninja users can also opt in or out by using the following commands:
25
26* `ninjalog_uploader_wrapper.py opt-in`
27* `ninjalog_uploader_wrapper.py opt-out`
28
29## What type of data are collected?
30
31The collected build log contains
32
33* output file of build tasks (e.g. chrome, obj/url/url/url_util.o)
34* hash of build command
35* start and end time of build tasks
36
37See [manual of ninja](https://ninja-build.org/manual.html#ref_log) for more
38details.
39
40In addition to ninja's build log, we send the following data for further
41analysis:
42
43* OS (e.g. Win, Mac or Linux)
44* number of cpu cores of building machine
45* build targets (e.g. chrome, browser_tests)
46* parallelism passed by -j flag
47* following build configs
48 * host\_os, host\_cpu
49 * target\_os, target\_cpu
50 * symbol\_level
51 * use\_goma
52 * is\_debug
53 * is\_component\_build
54
55 We don't collect personally identifiable information
56(e.g. username, ip address).
57
58## Why ninja log is collected? / How the collected logs are used?
59
60We (goma team) collect build logs to find slow build tasks that harm developer's
61productivity. Based on collected stats, we find the place/build tasks where we
62need to focus on. Also we use collected stats to track chrome build performance
63on developer's machine. We'll use this stats to measure how much we can/can't
64improve build performance on developer's machine.