| // Copyright (c) 2012 The Chromium 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 "chrome/common/metrics/metrics_service_base.h" |
| |
| #include <cstdlib> |
| |
| #include "chrome/common/metrics/metrics_log_base.h" |
| |
| using base::Histogram; |
| |
| MetricsServiceBase::MetricsServiceBase() |
| : histogram_snapshot_manager_(this) { |
| } |
| |
| MetricsServiceBase::~MetricsServiceBase() { |
| } |
| |
| // static |
| const char MetricsServiceBase::kServerUrl[] = |
| "https://clients4.google.com/uma/v2"; |
| |
| // static |
| const char MetricsServiceBase::kMimeType[] = "application/vnd.chrome.uma"; |
| |
| void MetricsServiceBase::RecordCurrentHistograms() { |
| DCHECK(log_manager_.current_log()); |
| histogram_snapshot_manager_.PrepareDeltas(base::Histogram::kNoFlags, true); |
| } |
| |
| void MetricsServiceBase::RecordDelta( |
| const base::HistogramBase& histogram, |
| const base::HistogramSamples& snapshot) { |
| log_manager_.current_log()->RecordHistogramDelta(histogram.histogram_name(), |
| snapshot); |
| } |
| |
| void MetricsServiceBase::InconsistencyDetected( |
| base::HistogramBase::Inconsistency problem) { |
| UMA_HISTOGRAM_ENUMERATION("Histogram.InconsistenciesBrowser", |
| problem, base::HistogramBase::NEVER_EXCEEDED_VALUE); |
| } |
| |
| void MetricsServiceBase::UniqueInconsistencyDetected( |
| base::HistogramBase::Inconsistency problem) { |
| UMA_HISTOGRAM_ENUMERATION("Histogram.InconsistenciesBrowserUnique", |
| problem, base::HistogramBase::NEVER_EXCEEDED_VALUE); |
| } |
| |
| void MetricsServiceBase::InconsistencyDetectedInLoggedCount(int amount) { |
| UMA_HISTOGRAM_COUNTS("Histogram.InconsistentSnapshotBrowser", |
| std::abs(amount)); |
| } |