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

Issue 1218583002: metrics: Add dbus interface for GetRandomPerfOutput (Closed)

Created:
5 years, 5 months ago by Simon Que
Modified:
5 years, 5 months ago
CC:
chromium-reviews, hashimoto+watch_chromium.org, stevenjb+watch_chromium.org, oshima+watch_chromium.org, asvitkine+watch_chromium.org, dhsharp, rapati
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

metrics: Add dbus interface for GetRandomPerfOutput GetRandomPerfOutput is a new dbus method call that replaces the older GetRichPerfData method call to debugd. The difference is that the new method call can return either a PerfDataProto or a PerfStatProto. Also updating PerfProvider to use the new dbus interface and parse and store the result as either protobuf format. BUG=chromium:478289 TEST=Set |kPerfProfilingIntervalMs| to something short (e.g. 15 sec) and add logging to ParseOutputProtoIfValid() to verify that valid PerfDataProto or PerfStatProto data was received. Signed-off-by: Simon Que <sque@chromium.org>; Committed: https://crrev.com/e0260fd891172eb94a614751b1c77596e476bab2 Cr-Commit-Position: refs/heads/master@{#337910}

Patch Set 1 #

Patch Set 2 : Check that the dbus method returns some data #

Total comments: 11

Patch Set 3 : Added unit test for perf_provider_chromeos #

Patch Set 4 : Responded to more comments #

Patch Set 5 : Do not allow both perf_stat and perf_data to be passed in; treat it as an error #

Total comments: 45

Patch Set 6 : Clean up includes, add WindowedIncognitoObserver, use else for perf_stat case #

Patch Set 7 : Replace friendship with derived class #

Patch Set 8 : Addressed remaining comments #

Total comments: 26

Patch Set 9 : Disallow copy/assign, directly call GetSampledProfiles, remove raw perf data members #

Patch Set 10 : Directly call ParseOutputProtoIfValid() #

Patch Set 11 : Add comment for clarity #

Total comments: 12

Patch Set 12 : Addressed all comments on Patch Set 11 #

Total comments: 3

Patch Set 13 : Fixed CreateWithIncognitoLaunched() #

Total comments: 4

Patch Set 14 : Create a scoped_ptr<TestIncognitoObserver> and return as scoped_ptr<WindowedIncognitoObserver> #

Total comments: 6

Patch Set 15 : Return observer.Pass(), implicitly create returned scoped_ptr #

Patch Set 16 : Responded to stevenjb's comments: removed {}s, NULL -> nullptr #

Patch Set 17 : "virtual" is redundant with "override" #

Patch Set 18 : Set login state during testing #

Patch Set 19 : Create TestSimpleTaskRunner and handle #

Total comments: 2

Patch Set 20 : Check has_ms_after_login() instead of ms_after_login() value #

Unified diffs Side-by-side diffs Delta from patch set Stats (+692 lines, -93 lines) Patch
M chrome/browser/metrics/perf_provider_chromeos.h View 1 2 3 4 5 6 7 2 chunks +18 lines, -9 lines 0 comments Download
M chrome/browser/metrics/perf_provider_chromeos.cc View 1 2 3 4 5 6 6 chunks +60 lines, -79 lines 0 comments Download
A chrome/browser/metrics/perf_provider_chromeos_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 1 chunk +462 lines, -0 lines 0 comments Download
A chrome/browser/metrics/windowed_incognito_observer.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 chunk +47 lines, -0 lines 0 comments Download
A chrome/browser/metrics/windowed_incognito_observer.cc View 1 2 3 4 5 1 chunk +27 lines, -0 lines 0 comments Download
M chrome/chrome_browser.gypi View 1 2 3 4 5 1 chunk +2 lines, -0 lines 0 comments Download
M chrome/chrome_tests_unit.gypi View 1 2 1 chunk +1 line, -0 lines 0 comments Download
M chromeos/dbus/debug_daemon_client.h View 2 chunks +17 lines, -4 lines 0 comments Download
M chromeos/dbus/debug_daemon_client.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 2 chunks +42 lines, -0 lines 0 comments Download
M chromeos/dbus/fake_debug_daemon_client.h View 1 chunk +2 lines, -0 lines 0 comments Download
M chromeos/dbus/fake_debug_daemon_client.cc View 1 2 3 1 chunk +10 lines, -0 lines 0 comments Download
M tools/metrics/histograms/histograms.xml View 1 2 3 4 1 chunk +4 lines, -1 line 0 comments Download

Messages

Total messages: 56 (13 generated)
Simon Que
This patch cannot land until a few other CLs have landed: https://chromium-review.googlesource.com/#/c/280609/ https://chromium-review.googlesource.com/#/c/280914/ DEPS will ...
5 years, 5 months ago (2015-06-26 21:51:56 UTC) #2
Ilya Sherman
https://codereview.chromium.org/1218583002/diff/20001/chrome/browser/metrics/perf_provider_chromeos.cc File chrome/browser/metrics/perf_provider_chromeos.cc (right): https://codereview.chromium.org/1218583002/diff/20001/chrome/browser/metrics/perf_provider_chromeos.cc#newcode375 chrome/browser/metrics/perf_provider_chromeos.cc:375: if (result != 0 || (perf_data.empty() || perf_stat.empty())) { ...
5 years, 5 months ago (2015-06-27 05:44:24 UTC) #3
Simon Que
https://codereview.chromium.org/1218583002/diff/20001/chrome/browser/metrics/perf_provider_chromeos.cc File chrome/browser/metrics/perf_provider_chromeos.cc (right): https://codereview.chromium.org/1218583002/diff/20001/chrome/browser/metrics/perf_provider_chromeos.cc#newcode375 chrome/browser/metrics/perf_provider_chromeos.cc:375: if (result != 0 || (perf_data.empty() || perf_stat.empty())) { ...
5 years, 5 months ago (2015-06-30 05:28:09 UTC) #4
Simon Que
https://codereview.chromium.org/1218583002/diff/20001/chrome/browser/metrics/perf_provider_chromeos.cc File chrome/browser/metrics/perf_provider_chromeos.cc (right): https://codereview.chromium.org/1218583002/diff/20001/chrome/browser/metrics/perf_provider_chromeos.cc#newcode382 chrome/browser/metrics/perf_provider_chromeos.cc:382: SampledProfile& sampled_profile = *sampled_profile_ptr.get(); On 2015/06/27 05:44:24, Ilya Sherman ...
5 years, 5 months ago (2015-06-30 05:50:48 UTC) #5
Simon Que
On 2015/06/30 05:50:48, Simon Que wrote: > This is actually wrong. The timestamp is time ...
5 years, 5 months ago (2015-06-30 18:57:02 UTC) #6
Simon Que
PTAL
5 years, 5 months ago (2015-06-30 21:27:24 UTC) #7
Ilya Sherman
https://codereview.chromium.org/1218583002/diff/20001/chrome/browser/metrics/perf_provider_chromeos.cc File chrome/browser/metrics/perf_provider_chromeos.cc (right): https://codereview.chromium.org/1218583002/diff/20001/chrome/browser/metrics/perf_provider_chromeos.cc#newcode402 chrome/browser/metrics/perf_provider_chromeos.cc:402: // stat? On 2015/06/30 05:50:48, Simon Que wrote: > ...
5 years, 5 months ago (2015-07-01 03:09:03 UTC) #8
Simon Que
https://codereview.chromium.org/1218583002/diff/70009/chrome/browser/metrics/perf_provider_chromeos.cc File chrome/browser/metrics/perf_provider_chromeos.cc (right): https://codereview.chromium.org/1218583002/diff/70009/chrome/browser/metrics/perf_provider_chromeos.cc#newcode403 chrome/browser/metrics/perf_provider_chromeos.cc:403: if (!perf_stat.empty()) { On 2015/07/01 03:09:02, Ilya Sherman wrote: ...
5 years, 5 months ago (2015-07-01 20:22:57 UTC) #9
Simon Que
https://codereview.chromium.org/1218583002/diff/70009/chrome/browser/metrics/perf_provider_chromeos.h File chrome/browser/metrics/perf_provider_chromeos.h (right): https://codereview.chromium.org/1218583002/diff/70009/chrome/browser/metrics/perf_provider_chromeos.h#newcode47 chrome/browser/metrics/perf_provider_chromeos.h:47: friend class PerfProviderTest; On 2015/07/01 03:09:02, Ilya Sherman wrote: ...
5 years, 5 months ago (2015-07-01 21:08:03 UTC) #10
Simon Que
https://codereview.chromium.org/1218583002/diff/70009/chrome/browser/metrics/perf_provider_chromeos_unittest.cc File chrome/browser/metrics/perf_provider_chromeos_unittest.cc (right): https://codereview.chromium.org/1218583002/diff/70009/chrome/browser/metrics/perf_provider_chromeos_unittest.cc#newcode27 chrome/browser/metrics/perf_provider_chromeos_unittest.cc:27: PerfDataProto& proto = *result; On 2015/07/01 03:09:03, Ilya Sherman ...
5 years, 5 months ago (2015-07-01 22:14:11 UTC) #11
Simon Que
https://codereview.chromium.org/1218583002/diff/130001/chrome/browser/metrics/perf_provider_chromeos_unittest.cc File chrome/browser/metrics/perf_provider_chromeos_unittest.cc (right): https://codereview.chromium.org/1218583002/diff/130001/chrome/browser/metrics/perf_provider_chromeos_unittest.cc#newcode210 chrome/browser/metrics/perf_provider_chromeos_unittest.cc:210: EXPECT_EQ(perf_data_raw_, SerializeMessageToVector(profile.perf_data())); Calling ByteSize() in SerializeMessageToVector() from the line ...
5 years, 5 months ago (2015-07-01 22:16:07 UTC) #12
Ilya Sherman
https://codereview.chromium.org/1218583002/diff/130001/chrome/browser/metrics/perf_provider_chromeos_unittest.cc File chrome/browser/metrics/perf_provider_chromeos_unittest.cc (right): https://codereview.chromium.org/1218583002/diff/130001/chrome/browser/metrics/perf_provider_chromeos_unittest.cc#newcode95 chrome/browser/metrics/perf_provider_chromeos_unittest.cc:95: }; nit: DISALLOW_COPY_AND_ASSIGN https://codereview.chromium.org/1218583002/diff/130001/chrome/browser/metrics/perf_provider_chromeos_unittest.cc#newcode98 chrome/browser/metrics/perf_provider_chromeos_unittest.cc:98: class PerfProviderForTesting : public ...
5 years, 5 months ago (2015-07-02 00:40:16 UTC) #13
Simon Que
https://codereview.chromium.org/1218583002/diff/130001/chrome/browser/metrics/perf_provider_chromeos_unittest.cc File chrome/browser/metrics/perf_provider_chromeos_unittest.cc (right): https://codereview.chromium.org/1218583002/diff/130001/chrome/browser/metrics/perf_provider_chromeos_unittest.cc#newcode95 chrome/browser/metrics/perf_provider_chromeos_unittest.cc:95: }; On 2015/07/02 00:40:16, Ilya Sherman wrote: > nit: ...
5 years, 5 months ago (2015-07-02 18:53:02 UTC) #14
Simon Que
I've removed the wrapper method. I had to restructure some things, especially the TestIncognitoObserver class, ...
5 years, 5 months ago (2015-07-06 00:50:35 UTC) #15
Ilya Sherman
Thanks, Simon -- this is looking much better now. I think probably the final round ...
5 years, 5 months ago (2015-07-07 00:43:56 UTC) #16
Simon Que
https://codereview.chromium.org/1218583002/diff/190001/chrome/browser/metrics/perf_provider_chromeos_unittest.cc File chrome/browser/metrics/perf_provider_chromeos_unittest.cc (right): https://codereview.chromium.org/1218583002/diff/190001/chrome/browser/metrics/perf_provider_chromeos_unittest.cc#newcode37 chrome/browser/metrics/perf_provider_chromeos_unittest.cc:37: void GetExamplePerfDataProto(PerfDataProto* proto) { On 2015/07/07 00:43:56, Ilya Sherman ...
5 years, 5 months ago (2015-07-07 01:08:22 UTC) #17
Ilya Sherman
Thanks. LGTM % a final nit: https://codereview.chromium.org/1218583002/diff/210001/chrome/browser/metrics/perf_provider_chromeos_unittest.cc File chrome/browser/metrics/perf_provider_chromeos_unittest.cc (right): https://codereview.chromium.org/1218583002/diff/210001/chrome/browser/metrics/perf_provider_chromeos_unittest.cc#newcode105 chrome/browser/metrics/perf_provider_chromeos_unittest.cc:105: static scoped_ptr<WindowedIncognitoObserver> CreateWithIncognitoLaunched() ...
5 years, 5 months ago (2015-07-07 01:15:17 UTC) #18
Simon Que
PTAL to make sure I did it right. https://codereview.chromium.org/1218583002/diff/210001/chrome/browser/metrics/perf_provider_chromeos_unittest.cc File chrome/browser/metrics/perf_provider_chromeos_unittest.cc (right): https://codereview.chromium.org/1218583002/diff/210001/chrome/browser/metrics/perf_provider_chromeos_unittest.cc#newcode105 chrome/browser/metrics/perf_provider_chromeos_unittest.cc:105: static ...
5 years, 5 months ago (2015-07-07 01:30:26 UTC) #19
Simon Que
https://codereview.chromium.org/1218583002/diff/230001/chrome/browser/metrics/perf_provider_chromeos_unittest.cc File chrome/browser/metrics/perf_provider_chromeos_unittest.cc (right): https://codereview.chromium.org/1218583002/diff/230001/chrome/browser/metrics/perf_provider_chromeos_unittest.cc#newcode98 chrome/browser/metrics/perf_provider_chromeos_unittest.cc:98: TestIncognitoObserver* observer = new TestIncognitoObserver; I tried to create ...
5 years, 5 months ago (2015-07-07 01:32:57 UTC) #20
Ilya Sherman
https://codereview.chromium.org/1218583002/diff/230001/chrome/browser/metrics/perf_provider_chromeos_unittest.cc File chrome/browser/metrics/perf_provider_chromeos_unittest.cc (right): https://codereview.chromium.org/1218583002/diff/230001/chrome/browser/metrics/perf_provider_chromeos_unittest.cc#newcode98 chrome/browser/metrics/perf_provider_chromeos_unittest.cc:98: TestIncognitoObserver* observer = new TestIncognitoObserver; Please declare this as ...
5 years, 5 months ago (2015-07-07 01:33:06 UTC) #21
Ilya Sherman
https://codereview.chromium.org/1218583002/diff/230001/chrome/browser/metrics/perf_provider_chromeos_unittest.cc File chrome/browser/metrics/perf_provider_chromeos_unittest.cc (right): https://codereview.chromium.org/1218583002/diff/230001/chrome/browser/metrics/perf_provider_chromeos_unittest.cc#newcode98 chrome/browser/metrics/perf_provider_chromeos_unittest.cc:98: TestIncognitoObserver* observer = new TestIncognitoObserver; On 2015/07/07 01:32:57, Simon ...
5 years, 5 months ago (2015-07-07 01:33:53 UTC) #22
Simon Que
On 2015/07/07 01:33:53, Ilya Sherman (Away July 8-13) wrote: > https://codereview.chromium.org/1218583002/diff/230001/chrome/browser/metrics/perf_provider_chromeos_unittest.cc > File chrome/browser/metrics/perf_provider_chromeos_unittest.cc (right): ...
5 years, 5 months ago (2015-07-07 01:38:14 UTC) #23
Simon Que
Adding OWNERS of chromeos/dbus.
5 years, 5 months ago (2015-07-07 01:39:25 UTC) #25
Ilya Sherman
https://codereview.chromium.org/1218583002/diff/250001/chrome/browser/metrics/perf_provider_chromeos_unittest.cc File chrome/browser/metrics/perf_provider_chromeos_unittest.cc (right): https://codereview.chromium.org/1218583002/diff/250001/chrome/browser/metrics/perf_provider_chromeos_unittest.cc#newcode100 chrome/browser/metrics/perf_provider_chromeos_unittest.cc:100: return scoped_ptr<WindowedIncognitoObserver>(observer.Pass()); Hmm, does the code not compile if ...
5 years, 5 months ago (2015-07-07 01:41:33 UTC) #26
Simon Que
https://codereview.chromium.org/1218583002/diff/250001/chrome/browser/metrics/perf_provider_chromeos_unittest.cc File chrome/browser/metrics/perf_provider_chromeos_unittest.cc (right): https://codereview.chromium.org/1218583002/diff/250001/chrome/browser/metrics/perf_provider_chromeos_unittest.cc#newcode100 chrome/browser/metrics/perf_provider_chromeos_unittest.cc:100: return scoped_ptr<WindowedIncognitoObserver>(observer.Pass()); On 2015/07/07 01:41:33, Ilya Sherman (Away July ...
5 years, 5 months ago (2015-07-07 01:44:04 UTC) #27
stevenjb
Extracting WindowedIncognitoObserver just to override it for a unit test seems a bit heavy handed; ...
5 years, 5 months ago (2015-07-07 02:03:51 UTC) #28
Ilya Sherman
On 2015/07/07 02:03:51, stevenjb wrote: > Extracting WindowedIncognitoObserver just to override it for a unit ...
5 years, 5 months ago (2015-07-07 02:16:03 UTC) #29
Simon Que
https://codereview.chromium.org/1218583002/diff/250001/chromeos/dbus/debug_daemon_client.cc File chromeos/dbus/debug_daemon_client.cc (right): https://codereview.chromium.org/1218583002/diff/250001/chromeos/dbus/debug_daemon_client.cc#newcode481 chromeos/dbus/debug_daemon_client.cc:481: } On 2015/07/07 02:03:51, stevenjb wrote: > nit: no ...
5 years, 5 months ago (2015-07-07 04:39:46 UTC) #30
Simon Que
On 2015/07/07 02:03:51, stevenjb wrote: > Extracting WindowedIncognitoObserver just to override it for a unit ...
5 years, 5 months ago (2015-07-07 04:42:32 UTC) #31
stevenjb
On 2015/07/07 04:42:32, Simon Que wrote: > On 2015/07/07 02:03:51, stevenjb wrote: > > Extracting ...
5 years, 5 months ago (2015-07-07 15:35:38 UTC) #32
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1218583002/290001
5 years, 5 months ago (2015-07-07 18:34:52 UTC) #35
commit-bot: I haz the power
Try jobs failed on following builders: linux_chromium_chromeos_compile_dbg_ng on tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_chromeos_compile_dbg_ng/builds/68868) (exceeded global retry quota)
5 years, 5 months ago (2015-07-07 19:04:39 UTC) #37
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1218583002/310001
5 years, 5 months ago (2015-07-07 19:08:26 UTC) #40
commit-bot: I haz the power
Try jobs failed on following builders: linux_chromium_chromeos_ozone_rel_ng on tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_chromeos_ozone_rel_ng/builds/35633)
5 years, 5 months ago (2015-07-07 19:57:32 UTC) #42
Simon Que
On 2015/07/07 19:57:32, commit-bot: I haz the power wrote: > Try jobs failed on following ...
5 years, 5 months ago (2015-07-07 22:28:19 UTC) #43
Simon Que
I used a TestSimpleTaskRunner to handle the TaskRunner stuff... but I'm still getting that stack ...
5 years, 5 months ago (2015-07-07 23:18:05 UTC) #44
Ilya Sherman
https://chromiumcodereview.appspot.com/1218583002/diff/350001/chrome/browser/metrics/perf_provider_chromeos_unittest.cc File chrome/browser/metrics/perf_provider_chromeos_unittest.cc (right): https://chromiumcodereview.appspot.com/1218583002/diff/350001/chrome/browser/metrics/perf_provider_chromeos_unittest.cc#newcode144 chrome/browser/metrics/perf_provider_chromeos_unittest.cc:144: chromeos::LoginState::LOGGED_IN_USER_REGULAR); By the way, this looks like it's affecting ...
5 years, 5 months ago (2015-07-08 01:59:12 UTC) #45
Simon Que
https://codereview.chromium.org/1218583002/diff/350001/chrome/browser/metrics/perf_provider_chromeos_unittest.cc File chrome/browser/metrics/perf_provider_chromeos_unittest.cc (right): https://codereview.chromium.org/1218583002/diff/350001/chrome/browser/metrics/perf_provider_chromeos_unittest.cc#newcode144 chrome/browser/metrics/perf_provider_chromeos_unittest.cc:144: chromeos::LoginState::LOGGED_IN_USER_REGULAR); On 2015/07/08 01:59:12, Ilya Sherman (Away July 8-13) ...
5 years, 5 months ago (2015-07-08 07:55:41 UTC) #46
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1218583002/350001
5 years, 5 months ago (2015-07-08 07:56:00 UTC) #49
commit-bot: I haz the power
Try jobs failed on following builders: linux_chromium_chromeos_rel_ng on tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_chromeos_rel_ng/builds/75857) (exceeded global retry quota)
5 years, 5 months ago (2015-07-08 08:31:33 UTC) #51
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1218583002/370001
5 years, 5 months ago (2015-07-08 20:14:51 UTC) #54
commit-bot: I haz the power
Committed patchset #20 (id:370001)
5 years, 5 months ago (2015-07-08 21:27:00 UTC) #55
commit-bot: I haz the power
5 years, 5 months ago (2015-07-08 21:28:09 UTC) #56
Message was sent while issue was closed.
Patchset 20 (id:??) landed as
https://crrev.com/e0260fd891172eb94a614751b1c77596e476bab2
Cr-Commit-Position: refs/heads/master@{#337910}

Powered by Google App Engine
This is Rietveld 408576698