Commit b3b023bd authored by Muhammad Hasan Khan's avatar Muhammad Hasan Khan Committed by Commit Bot

arcvm: log a metric when bugreport backup is made

BUG=b:149874690
TEST=deploy to dut, force backup codepath, verify the metric is logged in chrome://histograms

Change-Id: I8f8d3c9c3708bbd7ac2ff014c37cd3ce25e2e131
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2437011Reviewed-by: default avatarHidehiko Abe <hidehiko@chromium.org>
Reviewed-by: default avatarYusuke Sato <yusukes@chromium.org>
Commit-Queue: Muhammad Hasan Khan <mhasank@chromium.org>
Cr-Commit-Position: refs/heads/master@{#811802}
parent 9c40768c
......@@ -23,6 +23,7 @@
#include "base/logging.h"
#include "base/macros.h"
#include "base/memory/weak_ptr.h"
#include "base/metrics/histogram_functions.h"
#include "base/no_destructor.h"
#include "base/optional.h"
#include "base/posix/eintr_wrapper.h"
......@@ -78,6 +79,14 @@ constexpr const char kCrosSystemPath[] = "/usr/bin/crossystem";
constexpr const char kArcVmBootNotificationServerSocketPath[] =
"/run/arcvm_boot_notification_server/host.socket";
constexpr base::TimeDelta kArcBugReportBackupTimeMetricMinTime =
base::TimeDelta::FromMilliseconds(1);
constexpr base::TimeDelta kArcBugReportBackupTimeMetricMaxTime =
base::TimeDelta::FromSeconds(60);
constexpr int kArcBugReportBackupTimeMetricBuckets = 50;
constexpr const char kArcBugReportBackupTimeMetric[] =
"Login.ArcBugReportBackupTime";
constexpr int64_t kInvalidCid = -1;
constexpr base::TimeDelta kConnectTimeoutLimit =
......@@ -543,7 +552,7 @@ class ArcVmClientAdapter : public ArcClientAdapter,
GetDebugDaemonClient()->BackupArcBugReport(
cryptohome::CreateAccountIdentifierFromIdentification(cryptohome_id_),
base::BindOnce(&ArcVmClientAdapter::OnArcBugReportBackedUp,
weak_factory_.GetWeakPtr()));
weak_factory_.GetWeakPtr(), base::TimeTicks::Now()));
} else {
StopArcInstanceInternal();
}
......@@ -577,9 +586,18 @@ class ArcVmClientAdapter : public ArcClientAdapter,
void ConciergeServiceStarted() override {}
private:
void OnArcBugReportBackedUp(bool result) {
VLOG(1) << "OnArcBugReportBackedUp: back up "
<< (result ? "done" : "failed");
void OnArcBugReportBackedUp(base::TimeTicks arc_bug_report_backup_time,
bool result) {
if (result) {
base::TimeDelta elapsed_time =
base::TimeTicks::Now() - arc_bug_report_backup_time;
base::UmaHistogramCustomTimes(kArcBugReportBackupTimeMetric, elapsed_time,
kArcBugReportBackupTimeMetricMinTime,
kArcBugReportBackupTimeMetricMaxTime,
kArcBugReportBackupTimeMetricBuckets);
} else {
LOG(ERROR) << "Error contacting debugd to back up ARC bug report.";
}
StopArcInstanceInternal();
}
......
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