Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2025)

Unified Diff: chrome/browser/metrics/metrics_service.cc

Issue 294033007: [Metrics] Merge MetricsService and MetricsServiceBase classes. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/metrics/metrics_service.h ('k') | chrome/browser/metrics/metrics_service_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/metrics/metrics_service.cc
diff --git a/chrome/browser/metrics/metrics_service.cc b/chrome/browser/metrics/metrics_service.cc
index 55b9f074448ef95e89dbf79093db0ff210c69443..fe02b393cc7ff7a711fd8786a1529694dcd3cba7 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"
@@ -281,6 +283,12 @@ const size_t kUploadLogAvoidRetransmitSize = 50000;
// 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,
@@ -458,8 +466,9 @@ void MetricsService::RegisterPrefs(PrefRegistrySimple* registry) {
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),
@@ -619,6 +628,29 @@ void MetricsService::SetUpNotifications(
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++;
@@ -1690,6 +1722,18 @@ scoped_ptr<MetricsLog> MetricsService::CreateLog(MetricsLog::LogType log_type) {
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();
« no previous file with comments | « chrome/browser/metrics/metrics_service.h ('k') | chrome/browser/metrics/metrics_service_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698