[Metrics] Merge MetricsService and MetricsServiceBase classes.
BUG=374200
TEST=compiles
[email protected]
Review URL: https://codereview.chromium.org/294033007
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@272247 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/chrome/browser/metrics/metrics_service.cc b/chrome/browser/metrics/metrics_service.cc
index 052efbd..73f8170 100644
--- a/chrome/browser/metrics/metrics_service.cc
+++ b/chrome/browser/metrics/metrics_service.cc
@@ -169,6 +169,8 @@
#include "base/callback.h"
#include "base/command_line.h"
#include "base/metrics/histogram.h"
+#include "base/metrics/histogram_base.h"
+#include "base/metrics/histogram_samples.h"
#include "base/metrics/sparse_histogram.h"
#include "base/metrics/statistics_recorder.h"
#include "base/prefs/pref_registry_simple.h"
@@ -272,6 +274,12 @@
// Interval, in minutes, between state saves.
const int kSaveStateIntervalMinutes = 5;
+// The metrics server's URL.
+const char kServerUrl[] = "https://clients4.google.com/uma/v2";
+
+// The MIME type for the uploaded metrics data.
+const char kMimeType[] = "application/vnd.chrome.uma";
+
enum ResponseStatus {
UNKNOWN_FAILURE,
SUCCESS,
@@ -431,8 +439,9 @@
MetricsService::MetricsService(metrics::MetricsStateManager* state_manager,
metrics::MetricsServiceClient* client)
- : MetricsServiceBase(g_browser_process->local_state(),
- kUploadLogAvoidRetransmitSize),
+ : log_manager_(g_browser_process->local_state(),
+ kUploadLogAvoidRetransmitSize),
+ histogram_snapshot_manager_(this),
state_manager_(state_manager),
client_(client),
recording_active_(false),
@@ -591,6 +600,29 @@
content::NotificationService::AllSources());
}
+void MetricsService::RecordDelta(const base::HistogramBase& histogram,
+ const base::HistogramSamples& snapshot) {
+ log_manager_.current_log()->RecordHistogramDelta(histogram.histogram_name(),
+ snapshot);
+}
+
+void MetricsService::InconsistencyDetected(
+ base::HistogramBase::Inconsistency problem) {
+ UMA_HISTOGRAM_ENUMERATION("Histogram.InconsistenciesBrowser",
+ problem, base::HistogramBase::NEVER_EXCEEDED_VALUE);
+}
+
+void MetricsService::UniqueInconsistencyDetected(
+ base::HistogramBase::Inconsistency problem) {
+ UMA_HISTOGRAM_ENUMERATION("Histogram.InconsistenciesBrowserUnique",
+ problem, base::HistogramBase::NEVER_EXCEEDED_VALUE);
+}
+
+void MetricsService::InconsistencyDetectedInLoggedCount(int amount) {
+ UMA_HISTOGRAM_COUNTS("Histogram.InconsistentSnapshotBrowser",
+ std::abs(amount));
+}
+
void MetricsService::BrowserChildProcessHostConnected(
const content::ChildProcessData& data) {
GetChildProcessStats(data).process_launches++;
@@ -1586,6 +1618,18 @@
state_manager_->client_id(), session_id_, log_type, client_));
}
+void MetricsService::RecordCurrentHistograms() {
+ DCHECK(log_manager_.current_log());
+ histogram_snapshot_manager_.PrepareDeltas(
+ base::Histogram::kNoFlags, base::Histogram::kUmaTargetedHistogramFlag);
+}
+
+void MetricsService::RecordCurrentStabilityHistograms() {
+ DCHECK(log_manager_.current_log());
+ histogram_snapshot_manager_.PrepareDeltas(
+ base::Histogram::kNoFlags, base::Histogram::kUmaStabilityHistogramFlag);
+}
+
void MetricsService::LogCleanShutdown() {
// Redundant hack to write pref ASAP.
MarkAppCleanShutdownAndCommit();