blob: dcbf63ffecaf0bc3726e397ff8aed70f4c3a873d [file] [log] [blame]
// Copyright 2021 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "debugd/src/metrics.h"
#include <memory>
#include <string>
#include <base/time/time.h>
#include <metrics/metrics_library.h>
namespace debugd {
namespace {
// Histogram specifications
const char kHistogramPrefix[] = "ChromeOS.Debugd.";
const base::TimeDelta kHistogramMin = base::Minutes(0);
const base::TimeDelta kHistogramMax = base::Minutes(2);
const int kNumBuckets = 50;
} // namespace
Stopwatch::Stopwatch(const std::string& histogram_postfix) {
start_ = base::TimeTicks::Now();
metrics_library_ = std::make_unique<MetricsLibrary>();
histogram_name_ = kHistogramPrefix + histogram_postfix;
}
Stopwatch::~Stopwatch() {
base::TimeDelta duration = base::TimeTicks::Now() - start_;
metrics_library_->SendToUMA(histogram_name_, duration.InMilliseconds(),
kHistogramMin.InMilliseconds(),
kHistogramMax.InMilliseconds(), kNumBuckets);
}
} // namespace debugd