Commit 39fb79d3 authored by Josh Nohle's avatar Josh Nohle Committed by Commit Bot

[Display] Add display configuration update metrics

Add execution time and success metrics to
UpdateDisplayConfigurationTask.

Fixed: 1058473
Change-Id: I7cf24fd10f0f84d71b28483cb0120bb77d64aab5
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2088496Reviewed-by: default avatarStéphane Marchesin <marcheu@chromium.org>
Reviewed-by: default avatarBailey Berro <baileyberro@chromium.org>
Reviewed-by: default avatarMark Pearson <mpearson@chromium.org>
Commit-Queue: Josh Nohle <nohle@chromium.org>
Cr-Commit-Position: refs/heads/master@{#751027}
parent 0b8c0e6a
...@@ -38491,6 +38491,27 @@ uploading your change for review. ...@@ -38491,6 +38491,27 @@ uploading your change for review.
</summary> </summary>
</histogram> </histogram>
<histogram name="DisplayManager.UpdateDisplayConfigurationTask.ExecutionTime"
units="ms" expires_after="2021-03-04">
<owner>zentaro@chromium.org</owner>
<owner>nohle@chromium.org</owner>
<summary>
Records the execution time to update the display configuration. Emitted when
the update-display-configuration task finishes, successfully or not.
</summary>
</histogram>
<histogram name="DisplayManager.UpdateDisplayConfigurationTask.Success"
enum="BooleanSuccess" expires_after="2021-03-04">
<owner>zentaro@chromium.org</owner>
<owner>nohle@chromium.org</owner>
<summary>
Records whether or not the display configuration was successfully updated.
Emitted when the update-display-configuration task finishes, successfully or
not.
</summary>
</histogram>
<histogram base="true" name="DisplayScheduler.ShouldNotDraw" enum="Boolean" <histogram base="true" name="DisplayScheduler.ShouldNotDraw" enum="Boolean"
expires_after="2018-11-21"> expires_after="2018-11-21">
<obsolete> <obsolete>
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
#include "ui/display/manager/update_display_configuration_task.h" #include "ui/display/manager/update_display_configuration_task.h"
#include "base/bind.h" #include "base/bind.h"
#include "base/metrics/histogram_functions.h"
#include "ui/display/manager/configure_displays_task.h" #include "ui/display/manager/configure_displays_task.h"
#include "ui/display/manager/display_layout_manager.h" #include "ui/display/manager/display_layout_manager.h"
#include "ui/display/manager/display_util.h" #include "ui/display/manager/display_util.h"
...@@ -37,6 +38,7 @@ UpdateDisplayConfigurationTask::~UpdateDisplayConfigurationTask() { ...@@ -37,6 +38,7 @@ UpdateDisplayConfigurationTask::~UpdateDisplayConfigurationTask() {
} }
void UpdateDisplayConfigurationTask::Run() { void UpdateDisplayConfigurationTask::Run() {
start_timestamp_ = base::TimeTicks::Now();
requesting_displays_ = true; requesting_displays_ = true;
delegate_->GetDisplays( delegate_->GetDisplays(
base::BindOnce(&UpdateDisplayConfigurationTask::OnDisplaysUpdated, base::BindOnce(&UpdateDisplayConfigurationTask::OnDisplaysUpdated,
...@@ -145,6 +147,14 @@ void UpdateDisplayConfigurationTask::OnEnableSoftwareMirroring( ...@@ -145,6 +147,14 @@ void UpdateDisplayConfigurationTask::OnEnableSoftwareMirroring(
} }
void UpdateDisplayConfigurationTask::FinishConfiguration(bool success) { void UpdateDisplayConfigurationTask::FinishConfiguration(bool success) {
DCHECK(start_timestamp_);
base::UmaHistogramTimes(
"DisplayManager.UpdateDisplayConfigurationTask.ExecutionTime",
base::TimeTicks::Now() - *start_timestamp_);
base::UmaHistogramBoolean(
"DisplayManager.UpdateDisplayConfigurationTask.Success", success);
start_timestamp_.reset();
std::move(callback_).Run(success, cached_displays_, std::move(callback_).Run(success, cached_displays_,
cached_unassociated_displays_, new_display_state_, cached_unassociated_displays_, new_display_state_,
new_power_state_); new_power_state_);
......
...@@ -12,6 +12,8 @@ ...@@ -12,6 +12,8 @@
#include "base/macros.h" #include "base/macros.h"
#include "base/memory/weak_ptr.h" #include "base/memory/weak_ptr.h"
#include "base/optional.h"
#include "base/time/time.h"
#include "ui/display/manager/configure_displays_task.h" #include "ui/display/manager/configure_displays_task.h"
#include "ui/display/manager/display_configurator.h" #include "ui/display/manager/display_configurator.h"
#include "ui/display/types/native_display_observer.h" #include "ui/display/types/native_display_observer.h"
...@@ -106,6 +108,9 @@ class DISPLAY_MANAGER_EXPORT UpdateDisplayConfigurationTask ...@@ -106,6 +108,9 @@ class DISPLAY_MANAGER_EXPORT UpdateDisplayConfigurationTask
std::unique_ptr<ConfigureDisplaysTask> configure_task_; std::unique_ptr<ConfigureDisplaysTask> configure_task_;
// The timestamp when Run() was called. Null if the task is not running.
base::Optional<base::TimeTicks> start_timestamp_;
base::WeakPtrFactory<UpdateDisplayConfigurationTask> weak_ptr_factory_{this}; base::WeakPtrFactory<UpdateDisplayConfigurationTask> weak_ptr_factory_{this};
DISALLOW_COPY_AND_ASSIGN(UpdateDisplayConfigurationTask); DISALLOW_COPY_AND_ASSIGN(UpdateDisplayConfigurationTask);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment