You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
depot_tools/ninjalog.README.md

62 lines
1.8 KiB
Markdown

# 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 `cipd auth-info` to decide whether an autoninja user is a Googler or not.
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
* 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 (Chrome Browser Build 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.