Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(116)

Issue 805463002: Implement ubertracing. (Closed)

Created:
6 years ago by sullivan
Modified:
6 years ago
Reviewers:
nednguyen, slamm
CC:
chromium-reviews, tfarina, telemetry+watch_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Implement ubertracing. This is based on Nat's patch: https://codereview.chromium.org/441873007/ Move timeline and importers to use telemetry.timeline.TraceData This (admittedly massive) patch actually gives us an ubertrace object: the TraceData. The key way to understand this CL is to read timeline/trace_data.py file, then read importer.py. The rest is cosmetic fallout from the signature changes. A TraceData contains the data from many tracers, and is always serializable. A TimelineModel is constructed from a single TraceData. Internally, a TraceData is an in memory version of json of the following form: { traceEvents: ... inspectorTimelineEvnets: ... tabIds: ... } Since a TraceData has all the tracer data, the model and importer system was updated so that instead of there being 1 importer per value, the importers instead indicate which part of the TraceData they can handle, if any. BUG=356763 Committed: https://crrev.com/fdb146cf261d909613a1d1b11e70d0ba96280ffe Cr-Commit-Position: refs/heads/master@{#309489}

Patch Set 1 #

Total comments: 8

Patch Set 2 : Addressed some of the review comments #

Patch Set 3 : Addressed more review comments #

Total comments: 1

Patch Set 4 : Fixed most unittests #

Patch Set 5 : fixed tools/perf tests, 2 tests failing on tools/telemetry #

Patch Set 6 : Fixed TODOs #

Total comments: 2

Patch Set 7 : Fixed accidentally ommitted line #

Patch Set 8 : Merged with SurfaceFlinger cleanup #

Total comments: 2

Patch Set 9 : Unit tests passing #

Patch Set 10 : Rebase #

Patch Set 11 : Merge fix #

Patch Set 12 : Merg #

Total comments: 33

Patch Set 13 : Merged, added surfaceflinger unit test and fixes, addressed slamm's comments #

Unified diffs Side-by-side diffs Delta from patch set Stats (+706 lines, -750 lines) Patch
M tools/perf/measurements/smoothness_controller.py View 1 2 3 4 5 6 7 8 9 10 11 12 4 chunks +16 lines, -11 lines 0 comments Download
M tools/perf/measurements/smoothness_unittest.py View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +15 lines, -0 lines 0 comments Download
M tools/perf/measurements/task_execution_time.py View 1 2 3 4 1 chunk +2 lines, -2 lines 0 comments Download
M tools/perf/metrics/speedindex_unittest.py View 1 2 3 4 5 6 7 8 9 2 chunks +9 lines, -6 lines 0 comments Download
M tools/telemetry/telemetry/core/backends/browser_backend.py View 1 2 3 4 5 6 7 8 9 1 chunk +1 line, -1 line 0 comments Download
M tools/telemetry/telemetry/core/backends/chrome/chrome_browser_backend.py View 1 2 3 4 5 6 7 8 9 10 11 3 chunks +5 lines, -9 lines 0 comments Download
M tools/telemetry/telemetry/core/backends/chrome/tracing_backend.py View 1 2 3 4 5 6 7 8 9 10 11 5 chunks +28 lines, -26 lines 0 comments Download
M tools/telemetry/telemetry/core/backends/chrome/tracing_backend_unittest.py View 1 2 3 4 5 6 7 8 9 3 chunks +6 lines, -56 lines 0 comments Download
M tools/telemetry/telemetry/core/backends/chrome_inspector/inspector_backend.py View 1 2 3 4 5 6 7 8 9 10 11 3 chunks +17 lines, -13 lines 0 comments Download
M tools/telemetry/telemetry/core/backends/chrome_inspector/inspector_network.py View 1 2 3 4 5 6 7 8 9 10 11 2 chunks +1 line, -2 lines 0 comments Download
M tools/telemetry/telemetry/core/backends/chrome_inspector/inspector_timeline.py View 1 2 3 4 5 6 7 8 9 10 11 2 chunks +1 line, -2 lines 0 comments Download
M tools/telemetry/telemetry/core/platform/android_platform_backend.py View 1 2 3 4 5 6 7 8 2 chunks +17 lines, -3 lines 0 comments Download
M tools/telemetry/telemetry/core/platform/profiler/android_systrace_profiler.py View 2 chunks +4 lines, -1 line 0 comments Download
M tools/telemetry/telemetry/core/platform/profiler/strace_profiler.py View 3 chunks +5 lines, -3 lines 0 comments Download
M tools/telemetry/telemetry/core/platform/profiler/trace_profiler.py View 1 2 3 4 5 6 7 8 2 chunks +4 lines, -1 line 0 comments Download
M tools/telemetry/telemetry/core/platform/tracing_controller_backend.py View 1 2 3 4 5 6 7 8 9 2 chunks +4 lines, -3 lines 0 comments Download
M tools/telemetry/telemetry/page/actions/action_runner_unittest.py View 1 2 3 4 5 6 7 1 chunk +1 line, -1 line 0 comments Download
M tools/telemetry/telemetry/results/json_output_formatter_unittest.py View 1 2 3 2 chunks +2 lines, -2 lines 0 comments Download
M tools/telemetry/telemetry/results/page_test_results_unittest.py View 1 2 3 2 chunks +3 lines, -5 lines 0 comments Download
D tools/telemetry/telemetry/timeline/empty_timeline_data_importer.py View 1 chunk +0 lines, -28 lines 0 comments Download
D tools/telemetry/telemetry/timeline/empty_timeline_data_importer_unittest.py View 1 chunk +0 lines, -33 lines 0 comments Download
M tools/telemetry/telemetry/timeline/importer.py View 1 chunk +5 lines, -8 lines 0 comments Download
M tools/telemetry/telemetry/timeline/inspector_importer.py View 1 chunk +10 lines, -19 lines 0 comments Download
M tools/telemetry/telemetry/timeline/inspector_importer_unittest.py View 3 chunks +10 lines, -9 lines 0 comments Download
D tools/telemetry/telemetry/timeline/inspector_timeline_data.py View 1 chunk +0 lines, -22 lines 0 comments Download
M tools/telemetry/telemetry/timeline/model.py View 1 2 3 4 5 6 7 6 chunks +43 lines, -26 lines 0 comments Download
M tools/telemetry/telemetry/timeline/model_unittest.py View 1 chunk +14 lines, -6 lines 0 comments Download
M tools/telemetry/telemetry/timeline/surface_flinger_importer.py View 1 2 3 4 5 6 7 1 chunk +7 lines, -10 lines 0 comments Download
D tools/telemetry/telemetry/timeline/surface_flinger_timeline_data.py View 1 2 3 4 5 6 7 1 chunk +0 lines, -29 lines 0 comments Download
A tools/telemetry/telemetry/timeline/tab_id_importer.py View 1 2 3 1 chunk +54 lines, -0 lines 0 comments Download
A tools/telemetry/telemetry/timeline/tab_id_importer_unittest.py View 1 2 3 1 chunk +72 lines, -0 lines 0 comments Download
D tools/telemetry/telemetry/timeline/timeline_data.py View 1 chunk +0 lines, -16 lines 0 comments Download
A tools/telemetry/telemetry/timeline/trace_data.py View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +183 lines, -0 lines 0 comments Download
A tools/telemetry/telemetry/timeline/trace_data_unittest.py View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +80 lines, -0 lines 0 comments Download
M tools/telemetry/telemetry/timeline/trace_event_importer.py View 3 chunks +9 lines, -100 lines 0 comments Download
M tools/telemetry/telemetry/timeline/trace_event_importer_unittest.py View 1 2 3 35 chunks +66 lines, -261 lines 0 comments Download
D tools/telemetry/telemetry/timeline/tracing_timeline_data.py View 1 chunk +0 lines, -23 lines 0 comments Download
M tools/telemetry/telemetry/value/trace.py View 1 2 3 chunks +7 lines, -4 lines 0 comments Download
M tools/telemetry/telemetry/value/trace_unittest.py View 1 2 3 5 chunks +5 lines, -9 lines 0 comments Download

Messages

Total messages: 37 (7 generated)
sullivan
I did a first pass at the conversion, and got the unit tests mostly running. ...
6 years ago (2014-12-12 19:01:17 UTC) #1
chromium-reviews
Ooops, this is not ready for review, should be titled "WIP" On Fri, Dec 12, ...
6 years ago (2014-12-12 19:01:51 UTC) #2
sullivan
Unit test results at www/~sullivan/results.txt
6 years ago (2014-12-12 19:05:10 UTC) #3
nednguyen
You will also need to modify value/trace.py to take in the trace_data instead of tracing_timeline_data. ...
6 years ago (2014-12-12 19:30:19 UTC) #5
sullivan
I'm still working on whittling the unit tests down, but addressed the review comments. https://codereview.chromium.org/805463002/diff/1/tools/telemetry/telemetry/timeline/model.py ...
6 years ago (2014-12-12 21:38:35 UTC) #6
nednguyen
Thanks Sullivan, I think the patch is in the good shape overall. On 2014/12/12 21:38:35, ...
6 years ago (2014-12-12 21:48:52 UTC) #7
nednguyen
https://codereview.chromium.org/805463002/diff/40001/tools/telemetry/telemetry/timeline/trace_data.py File tools/telemetry/telemetry/timeline/trace_data.py (right): https://codereview.chromium.org/805463002/diff/40001/tools/telemetry/telemetry/timeline/trace_data.py#newcode9 tools/telemetry/telemetry/timeline/trace_data.py:9: # TODO(sullivan): is None valid? None works for json.dumps ...
6 years ago (2014-12-12 21:49:01 UTC) #8
nednguyen
On 2014/12/12 19:01:17, sullivan wrote: > I did a first pass at the conversion, and ...
6 years ago (2014-12-12 22:42:25 UTC) #9
sullivan
On 2014/12/12 22:42:25, nednguyen wrote: > On 2014/12/12 19:01:17, sullivan wrote: > > I did ...
6 years ago (2014-12-16 20:48:16 UTC) #10
nednguyen
I think the fix below changes the error you are seeing with the profiler test ...
6 years ago (2014-12-17 02:45:47 UTC) #11
sullivan
Fixing the missing line passed ActionRunnerInteractionTest.testIssuingMultipleMeasurementInteractionRecords. But now PageRunEndToEndTests.testRunPageWithProfilingFlag is failing with a different error ...
6 years ago (2014-12-17 16:11:48 UTC) #12
nednguyen
On 2014/12/17 16:11:48, sullivan wrote: > Fixing the missing line passed > ActionRunnerInteractionTest.testIssuingMultipleMeasurementInteractionRecords. > > ...
6 years ago (2014-12-17 16:32:11 UTC) #13
sullivan
On 2014/12/17 16:32:11, nednguyen wrote: > On 2014/12/17 16:11:48, sullivan wrote: > > Fixing the ...
6 years ago (2014-12-17 16:49:15 UTC) #14
sullivan
+ernstm I merged this with ernstm's surfaceflinger cleanup cl. All the tests pass except the ...
6 years ago (2014-12-17 23:11:10 UTC) #15
ernstm
On 2014/12/17 23:11:10, sullivan wrote: > +ernstm > > I merged this with ernstm's surfaceflinger ...
6 years ago (2014-12-18 18:06:36 UTC) #16
nednguyen
https://codereview.chromium.org/805463002/diff/140001/tools/telemetry/telemetry/core/platform/profiler/trace_profiler.py File tools/telemetry/telemetry/core/platform/profiler/trace_profiler.py (right): https://codereview.chromium.org/805463002/diff/140001/tools/telemetry/telemetry/core/platform/profiler/trace_profiler.py#newcode42 tools/telemetry/telemetry/core/platform/profiler/trace_profiler.py:42: trace_result = self._browser_backend.StopTracing() You want to remove this line.
6 years ago (2014-12-19 02:15:09 UTC) #17
sullivan
On 2014/12/18 18:06:36, ernstm wrote: > On 2014/12/17 23:11:10, sullivan wrote: > > +ernstm > ...
6 years ago (2014-12-19 21:46:35 UTC) #18
sullivan
I think this is ready for review. I merged with all the recent refactors, and ...
6 years ago (2014-12-19 21:47:36 UTC) #19
nednguyen
LGTM overall, let's land and iterate.
6 years ago (2014-12-20 02:07:38 UTC) #20
nednguyen
On 2014/12/20 02:07:38, nednguyen wrote: > LGTM overall, let's land and iterate. Before landing this, ...
6 years ago (2014-12-20 02:56:09 UTC) #21
slamm
Here are some style comments that can be done as a follow-up. (A big change ...
6 years ago (2014-12-22 17:12:33 UTC) #23
sullivan
I actually had to make some changes to this CL to merge and submit, so ...
6 years ago (2014-12-22 19:28:38 UTC) #24
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/805463002/220001
6 years ago (2014-12-22 19:49:26 UTC) #26
slamm
On 2014/12/22 19:28:38, sullivan wrote: > I actually had to make some changes to this ...
6 years ago (2014-12-22 20:22:13 UTC) #27
sullivan
On 2014/12/22 20:22:13, slamm wrote: > On 2014/12/22 19:28:38, sullivan wrote: > > I actually ...
6 years ago (2014-12-22 20:36:43 UTC) #29
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/805463002/240001
6 years ago (2014-12-22 20:38:20 UTC) #31
commit-bot: I haz the power
Try jobs failed on following builders: android_dbg_tests_recipe on tryserver.chromium.linux (http://build.chromium.org/p/tryserver.chromium.linux/builders/android_dbg_tests_recipe/builds/40074)
6 years ago (2014-12-22 22:35:54 UTC) #33
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/805463002/240001
6 years ago (2014-12-22 22:45:57 UTC) #35
commit-bot: I haz the power
Committed patchset #13 (id:240001)
6 years ago (2014-12-22 23:46:36 UTC) #36
commit-bot: I haz the power
6 years ago (2014-12-22 23:47:28 UTC) #37
Message was sent while issue was closed.
Patchset 13 (id:??) landed as
https://crrev.com/fdb146cf261d909613a1d1b11e70d0ba96280ffe
Cr-Commit-Position: refs/heads/master@{#309489}

Powered by Google App Engine
This is Rietveld 408576698