The build system (specifically, all the build tooling hooked
up to ./mach
) has been configured to collect metrics data
points for various build system actions. This data helps drive
team planning for the build team and ensure that resources are
applied to build processes that need them most. You can opt-in
to send telemetry to Mozilla during ./mach bootstrap.
The build telemetry schema can be found in-tree under
python/mozbuild/mozbuild/telemetry.py
in Voluptuous schema
format. You can use the export_telemetry_schema.py
script in
that same directory to get the schema in JSON-schema format.
Details of the schema are specified below:
Properties: :ref:`telemetry.json#/properties/argv`, :ref:`telemetry.json#/properties/build_opts`, :ref:`telemetry.json#/properties/client_id`, :ref:`telemetry.json#/properties/command`, :ref:`telemetry.json#/properties/duration_ms`, :ref:`telemetry.json#/properties/exception`, :ref:`telemetry.json#/properties/file_types_changed`, :ref:`telemetry.json#/properties/success`, :ref:`telemetry.json#/properties/system`, :ref:`telemetry.json#/properties/time`
Full mach commandline. If the commandline contains absolute paths they will be sanitized.
type: | array |
---|
type: | string |
---|
Selected build options
type: | object |
---|
Properties: :ref:`telemetry.json#/properties/build_opts/properties/artifact`, :ref:`telemetry.json#/properties/build_opts/properties/ccache`, :ref:`telemetry.json#/properties/build_opts/properties/compiler`, :ref:`telemetry.json#/properties/build_opts/properties/debug`, :ref:`telemetry.json#/properties/build_opts/properties/icecream`, :ref:`telemetry.json#/properties/build_opts/properties/opt`, :ref:`telemetry.json#/properties/build_opts/properties/sccache`
true if --enable-artifact-builds
type: | boolean |
---|
true if ccache is in use (--with-ccache)
type: | boolean |
---|
The compiler type in use (CC_TYPE)
Allowed values:
- clang
- clang-cl
- gcc
- msvc
true if build is debug (--enable-debug)
type: | boolean |
---|
true if icecream in use
type: | boolean |
---|
true if build is optimized (--enable-optimize)
type: | boolean |
---|
true if ccache in use is sccache
type: | boolean |
---|
Selected runtime attributes of the build
type: | object |
---|
Properties: :ref:`telemetry.json#/properties/build_attrs/properties/cpu_percent`, :ref:`telemetry.json#/properties/build_attrs/properties/clobber`
cpu utilization observed during the build
type: | number |
---|
true if the build was a clobber/full build
type: | boolean |
---|
A UUID to uniquely identify a client
type: | string |
---|
The mach command that was invoked
type: | string |
---|
Command duration in milliseconds
type: | number |
---|
If a Python exception was encountered during the execution of the command, this value contains the result of calling repr on the exception object.
type: | string |
---|
This array contains a list of objects with {ext, count} properties giving the count of files changed since the last invocation grouped by file type
type: | array |
---|
type: | object |
---|---|
Required: | :ref:`telemetry.json#/properties/file_types_changed/items/properties/count`, :ref:`telemetry.json#/properties/file_types_changed/items/properties/ext` |
Properties: :ref:`telemetry.json#/properties/file_types_changed/items/properties/count`, :ref:`telemetry.json#/properties/file_types_changed/items/properties/ext`
Count of changed files with this extension
type: | number |
---|
File extension
type: | string |
---|
true if the command succeeded
type: | boolean |
---|
type: | object |
---|---|
Required: | :ref:`telemetry.json#/properties/system/properties/os` |
Properties: :ref:`telemetry.json#/properties/system/properties/cpu_brand`, :ref:`telemetry.json#/properties/system/properties/drive_is_ssd`, :ref:`telemetry.json#/properties/system/properties/logical_cores`, :ref:`telemetry.json#/properties/system/properties/memory_gb`, :ref:`telemetry.json#/properties/system/properties/os`, :ref:`telemetry.json#/properties/system/properties/physical_cores`, :ref:`telemetry.json#/properties/system/properties/virtual_machine`
CPU brand string from CPUID
type: | string |
---|
true if the source directory is on a solid-state disk
type: | boolean |
---|
Number of logical CPU cores present
type: | number |
---|
System memory in GB
type: | number |
---|
Operating system
Allowed values:
- windows
- macos
- linux
- other
Number of physical CPU cores present
type: | number |
---|
true if the OS appears to be running in a virtual machine
type: | boolean |
---|
Time at which this event happened
type: | string |
---|---|
format: | date-time |