New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 616581 link

Starred by 3 users

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: 2017-04-21
OS: Chrome
Pri: 3
Type: Bug



Sign in to add a comment

Mustash: Figure out how ash and chrome stores metrics

Project Member Reported by mfomitchev@chromium.org, Jun 1 2016

Issue description

TLD;DR: Implement user_metrics_recorder service in sysui?

UserMetricsRecorder and friends live in the sysui process. Occasionally this is used from chrome - see the calls to ash::Shell::metrics(), which fails in Mustash.

In several cases, this could be fixed simply by exposing a few values from ash::UserMetricsAction to chrome. However, there's a couple cases where UserMetricsRecorder::task_switch_metrics_recorder() is used. That things has state (last_action_time_ in TaskSwitchTimeTracker map), so it is more tricky.

Should we just implement a user_metrics_recorder service in sysui and let chrome use it?
 

Comment 1 by sky@chromium.org, Jun 1 2016

Summary: Mustash: Figure out how ash and chrome stores metrics (was: Mustash: Figure out how to use UserMetricsRecorder from the chrome process)
I'm morphing your bug slightly. We could certainly expose a mojom from ash that chrome calls into. But that begs the question how ash is logging metrics in the first place. Chrome is actually the real place doing the logging, so even if we exposed a mojom from ash we need another mojom between ash and chrome to store the logs.

This is really another manifestation of wanting a profile service that ash can talk to to store metrics.

I suspect for the time being we'll need chrome to expose a metrics service that ash talks to, chrome then talks to ash for the places you mention.

Comment 2 by varkha@chromium.org, Jun 15 2016

Cc: mfomitchev@chromium.org
Owner: riajiang@chromium.org
Status: Assigned (was: Available)

Comment 3 by varkha@chromium.org, Aug 29 2016

Components: Internals>Metrics
Labels: Proj-Mustash-Mash
Project Member

Comment 4 by bugdroid1@chromium.org, Oct 4 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9a7916b557200bb2ea8291732158e200f434078b

commit 9a7916b557200bb2ea8291732158e200f434078b
Author: bruthig <bruthig@chromium.org>
Date: Tue Oct 04 19:34:32 2016

Removed Ash.AppList.TimeBetweenTaskSwitches and Ash.Tab.TimeBetweenSwitchToExistingTabUserActions histograms.

These histograms are triggered in the chrome process but are actually
recorded in ash (which is in a different process). This is problematic
for the mus+ash refactoring and since there are no clear decisions
being made from these metrics they are being removed.

BUG=616581
TEST=ash_unittests

Review-Url: https://codereview.chromium.org/2390793002
Cr-Commit-Position: refs/heads/master@{#422885}

[modify] https://crrev.com/9a7916b557200bb2ea8291732158e200f434078b/ash/common/metrics/task_switch_source.h
[modify] https://crrev.com/9a7916b557200bb2ea8291732158e200f434078b/ash/metrics/task_switch_metrics_recorder.cc
[modify] https://crrev.com/9a7916b557200bb2ea8291732158e200f434078b/ash/metrics/task_switch_metrics_recorder_unittest.cc
[modify] https://crrev.com/9a7916b557200bb2ea8291732158e200f434078b/chrome/browser/ui/BUILD.gn
[modify] https://crrev.com/9a7916b557200bb2ea8291732158e200f434078b/chrome/browser/ui/ash/app_list/app_list_controller_ash.cc
[modify] https://crrev.com/9a7916b557200bb2ea8291732158e200f434078b/chrome/browser/ui/ash/chrome_shell_delegate.cc
[modify] https://crrev.com/9a7916b557200bb2ea8291732158e200f434078b/chrome/browser/ui/ash/chrome_shell_delegate.h
[delete] https://crrev.com/b873e02f086898e946c374f628fdc7b1cb47ce37/chrome/browser/ui/ash/metrics/chrome_user_metrics_recorder.cc
[delete] https://crrev.com/b873e02f086898e946c374f628fdc7b1cb47ce37/chrome/browser/ui/ash/metrics/chrome_user_metrics_recorder.h
[modify] https://crrev.com/9a7916b557200bb2ea8291732158e200f434078b/tools/metrics/histograms/histograms.xml

Labels: -Hotlist-GoodFirstBug Proj-Mustash-Milestone-Tadpole
NextAction: 2017-02-06
There have been a lot of discussion about a metrics service in issue 642762.

There are two options for mustash:
1. ash dumps the metrics in a pre-determined file that chrome knows about. chrome reads the dump when it wants to upload to server.

2. A proper metrics service that ash uploads data to, which in turn uploads to chrome.

Option 2 is tracked in issue 642762. Ideally, that would happen, and we would need to update ash to talk to the metrics service. If that doesn't happen, then we should go with 1. I think complexity wise, as far as ash/mash is concerned, both options are relatively straight-forward. So it would make sense to wait to see if option 2 becomes possible, before we do 1. Let's revisit mid-Q1.

Comment 6 by sky@chromium.org, Mar 27 2017

Labels: mustash-2
I would rather we have something working sooner rather than later. How about we do 1 for now, and if 2 happens we use it? I'm assuming that if 2 happens it would be mostly transparent to chrome. I'm wondering if 1 could be done in a such a way that chrome tells ash the tile to write to.

Comment 7 by sadrul@chromium.org, Mar 27 2017

NextAction: 2017-04-21
It is likely that option 2 will happen soon [1]. We could track that work. If nothing materializes in a few weeks, we can revisit.

[1] https://bugs.chromium.org/p/chromium/issues/detail?id=642762#c25

Comment 8 by sky@chromium.org, Mar 27 2017

Excellent! We wait then.

Comment 9 by sky@chromium.org, Jun 8 2017

Blocking: 731255

Comment 10 by sky@chromium.org, Jul 19 2017

Blocking: -731255
Once 642762 lands is the only thing needed here to wire up ash to post it's metrics to the right place? I'm removing this as a blocker for mushrome as I think this work is only needed for mustash.
Project Member

Comment 11 by bugdroid1@chromium.org, Aug 22 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8706262de5de73e01b077ac7dcd7f8e1a06550ac

commit 8706262de5de73e01b077ac7dcd7f8e1a06550ac
Author: James Cook <jamescook@chromium.org>
Date: Tue Aug 22 23:15:26 2017

cros: Clean up ash user metrics actions for accelerator keys

Ash doesn't need to maintain its own enum of user metrics. Eliminate the
ones for keyboard accelerators and inline calls to base::RecordAction().

Remove unused user actions discovered during cleanup.

Bug: 616581
Test: ash_unittests
Change-Id: I3306b3e954d52439b79bb43ec5944ecf1bb9faad
Reviewed-on: https://chromium-review.googlesource.com/627057
Commit-Queue: James Cook <jamescook@chromium.org>
Reviewed-by: Scott Violet <sky@chromium.org>
Reviewed-by: Ilya Sherman <isherman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#496495}
[modify] https://crrev.com/8706262de5de73e01b077ac7dcd7f8e1a06550ac/ash/accelerators/exit_warning_handler.cc
[modify] https://crrev.com/8706262de5de73e01b077ac7dcd7f8e1a06550ac/ash/metrics/user_metrics_action.h
[modify] https://crrev.com/8706262de5de73e01b077ac7dcd7f8e1a06550ac/ash/metrics/user_metrics_recorder.cc
[modify] https://crrev.com/8706262de5de73e01b077ac7dcd7f8e1a06550ac/ash/shutdown_controller.cc
[modify] https://crrev.com/8706262de5de73e01b077ac7dcd7f8e1a06550ac/ash/shutdown_controller.h
[modify] https://crrev.com/8706262de5de73e01b077ac7dcd7f8e1a06550ac/ash/system/keyboard_brightness/keyboard_brightness_controller.cc
[modify] https://crrev.com/8706262de5de73e01b077ac7dcd7f8e1a06550ac/ash/system/keyboard_brightness/keyboard_brightness_controller.h
[modify] https://crrev.com/8706262de5de73e01b077ac7dcd7f8e1a06550ac/ash/wm/lock_state_controller.cc
[modify] https://crrev.com/8706262de5de73e01b077ac7dcd7f8e1a06550ac/chrome/browser/ui/browser_commands_chromeos.cc
[modify] https://crrev.com/8706262de5de73e01b077ac7dcd7f8e1a06550ac/tools/metrics/actions/actions.xml

Project Member

Comment 12 by bugdroid1@chromium.org, Aug 24 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/07d3704798417815b9aed99d186389cf20653823

commit 07d3704798417815b9aed99d186389cf20653823
Author: James Cook <jamescook@chromium.org>
Date: Thu Aug 24 16:41:51 2017

cros: Cleanup ash window cycle and window close metrics

Ash can use base::RecordAction() directly, so inline the calls instead
of routing through an extra UserMetricsRecorder.

TBR=isherman@chromium.org

Bug: 616581
Test: ash_unittests
Change-Id: Ic6b0e7b451bc6526f6a32cb8b3e68b8a303e8115
Reviewed-on: https://chromium-review.googlesource.com/629265
Reviewed-by: James Cook <jamescook@chromium.org>
Reviewed-by: Michael Wasserman <msw@chromium.org>
Commit-Queue: James Cook <jamescook@chromium.org>
Cr-Commit-Position: refs/heads/master@{#497082}
[modify] https://crrev.com/07d3704798417815b9aed99d186389cf20653823/ash/frame/caption_buttons/frame_caption_button_container_view.cc
[modify] https://crrev.com/07d3704798417815b9aed99d186389cf20653823/ash/frame/caption_buttons/frame_size_button.cc
[modify] https://crrev.com/07d3704798417815b9aed99d186389cf20653823/ash/metrics/user_metrics_action.h
[modify] https://crrev.com/07d3704798417815b9aed99d186389cf20653823/ash/metrics/user_metrics_recorder.cc
[modify] https://crrev.com/07d3704798417815b9aed99d186389cf20653823/ash/wm/overview/window_selector.cc
[modify] https://crrev.com/07d3704798417815b9aed99d186389cf20653823/ash/wm/overview/window_selector_item.cc
[modify] https://crrev.com/07d3704798417815b9aed99d186389cf20653823/ash/wm/window_cycle_controller.cc
[modify] https://crrev.com/07d3704798417815b9aed99d186389cf20653823/tools/metrics/actions/actions.xml

Cc: -mfomitchev@chromium.org
Components: Internals>Services>Ash
Labels: -Proj-Mustash-Mash

Sign in to add a comment