fix: extending tracing startRecording API to take a full tracing config (#16159)

This allows memory-infra to be traced correctly.
Fixes #12506.
This commit is contained in:
trop[bot] 2018-12-20 08:27:47 -07:00 committed by Shelley Vohr
parent 349f10d779
commit 6fb569cc6c
5 changed files with 194 additions and 40 deletions

View file

@ -51,9 +51,7 @@ Once all child processes have acknowledged the `getCategories` request the
### `contentTracing.startRecording(options, callback)`
* `options` Object
* `categoryFilter` String
* `traceOptions` String
* `options` ([TraceCategoriesAndOptions](structures/trace-categories-and-options.md) | [TraceConfig](structures/trace-config.md))
* `callback` Function
Start recording on all processes.
@ -62,35 +60,6 @@ Recording begins immediately locally and asynchronously on child processes
as soon as they receive the EnableRecording request. The `callback` will be
called once all child processes have acknowledged the `startRecording` request.
`categoryFilter` is a filter to control what category groups should be
traced. A filter can have an optional `-` prefix to exclude category groups
that contain a matching category. Having both included and excluded
category patterns in the same list is not supported.
Examples:
* `test_MyTest*`,
* `test_MyTest*,test_OtherStuff`,
* `"-excluded_category1,-excluded_category2`
`traceOptions` controls what kind of tracing is enabled, it is a comma-delimited
list. Possible options are:
* `record-until-full`
* `record-continuously`
* `trace-to-console`
* `enable-sampling`
* `enable-systrace`
The first 3 options are trace recording modes and hence mutually exclusive.
If more than one trace recording modes appear in the `traceOptions` string,
the last one takes precedence. If none of the trace recording modes are
specified, recording mode is `record-until-full`.
The trace option will first be reset to the default option (`record_mode` set to
`record-until-full`, `enable_sampling` and `enable_systrace` set to `false`)
before options parsed from `traceOptions` are applied on it.
### `contentTracing.stopRecording(resultFilePath, callback)`
* `resultFilePath` String

View file

@ -0,0 +1,18 @@
# TraceCategoriesAndOptions Object
* `categoryFilter` String is a filter to control what category groups
should be traced. A filter can have an optional `-` prefix to exclude
category groups that contain a matching category. Having both included
and excluded category patterns in the same list is not supported. Examples:
`test_MyTest*`, `test_MyTest*,test_OtherStuff`, `-excluded_category1,-excluded_category2`.
* `traceOptions` String - Controls what kind of tracing is enabled,
it is a comma-delimited sequence of the following strings:
`record-until-full`, `record-continuously`, `trace-to-console`, `enable-sampling`, `enable-systrace`,
e.g. `'record-until-full,enable-sampling'`.
The first 3 options are trace recording modes and hence mutually exclusive.
If more than one trace recording modes appear in the `traceOptions` string,
the last one takes precedence. If none of the trace recording modes are
specified, recording mode is `record-until-full`.
The trace option will first be reset to the default option (`record_mode` set
to `record-until-full`, `enable_sampling` and `enable_systrace`
set to `false`) before options parsed from `traceOptions` are applied on it.

View file

@ -0,0 +1,9 @@
# TraceConfig Object
* `included_categories` String[] (optional)
* `excluded_categories` String[] (optional)
* `memory_dump_config` Object (optional)
See an example in the [Chromium docs][1].
[1]: https://chromium.googlesource.com/chromium/src/+/master/docs/memory-infra/memory_infra_startup_tracing.md#the-advanced-way