Chromium Code Reviews

Side by Side Diff: components/metrics/metrics_service.cc

Issue 676783003: Record document mode histogram in UMA on every upload. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@2171
Patch Set: Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff |
« no previous file with comments | « components/metrics/metrics_provider.h ('k') | tools/metrics/histograms/histograms.xml » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 //------------------------------------------------------------------------------ 5 //------------------------------------------------------------------------------
6 // Description of the life cycle of a instance of MetricsService. 6 // Description of the life cycle of a instance of MetricsService.
7 // 7 //
8 // OVERVIEW 8 // OVERVIEW
9 // 9 //
10 // A MetricsService instance is typically created at application startup. It is 10 // A MetricsService instance is typically created at application startup. It is
(...skipping 758 matching lines...)
769 std::vector<variations::ActiveGroupId> synthetic_trials; 769 std::vector<variations::ActiveGroupId> synthetic_trials;
770 GetCurrentSyntheticFieldTrials(&synthetic_trials); 770 GetCurrentSyntheticFieldTrials(&synthetic_trials);
771 current_log->RecordEnvironment( 771 current_log->RecordEnvironment(
772 metrics_providers_.get(), synthetic_trials, GetInstallDate()); 772 metrics_providers_.get(), synthetic_trials, GetInstallDate());
773 base::TimeDelta incremental_uptime; 773 base::TimeDelta incremental_uptime;
774 base::TimeDelta uptime; 774 base::TimeDelta uptime;
775 GetUptimes(local_state_, &incremental_uptime, &uptime); 775 GetUptimes(local_state_, &incremental_uptime, &uptime);
776 current_log->RecordStabilityMetrics(metrics_providers_.get(), 776 current_log->RecordStabilityMetrics(metrics_providers_.get(),
777 incremental_uptime, uptime); 777 incremental_uptime, uptime);
778 778
779 current_log->RecordGeneralMetrics(metrics_providers_.get());
779 RecordCurrentHistograms(); 780 RecordCurrentHistograms();
780 current_log->RecordGeneralMetrics(metrics_providers_.get());
781 781
782 log_manager_.FinishCurrentLog(); 782 log_manager_.FinishCurrentLog();
783 } 783 }
784 784
785 void MetricsService::PushPendingLogsToPersistentStorage() { 785 void MetricsService::PushPendingLogsToPersistentStorage() {
786 if (state_ < SENDING_INITIAL_STABILITY_LOG) 786 if (state_ < SENDING_INITIAL_STABILITY_LOG)
787 return; // We didn't and still don't have time to get plugin list etc. 787 return; // We didn't and still don't have time to get plugin list etc.
788 788
789 CloseCurrentLog(); 789 CloseCurrentLog();
790 log_manager_.PersistUnsentLogs(); 790 log_manager_.PersistUnsentLogs();
(...skipping 193 matching lines...)
984 // Histograms only get written to the current log, so make the new log current 984 // Histograms only get written to the current log, so make the new log current
985 // before writing them. 985 // before writing them.
986 log_manager_.PauseCurrentLog(); 986 log_manager_.PauseCurrentLog();
987 log_manager_.BeginLoggingWithLog(initial_metrics_log_.Pass()); 987 log_manager_.BeginLoggingWithLog(initial_metrics_log_.Pass());
988 988
989 // Note: Some stability providers may record stability stats via histograms, 989 // Note: Some stability providers may record stability stats via histograms,
990 // so this call has to be after BeginLoggingWithLog(). 990 // so this call has to be after BeginLoggingWithLog().
991 MetricsLog* current_log = log_manager_.current_log(); 991 MetricsLog* current_log = log_manager_.current_log();
992 current_log->RecordStabilityMetrics(metrics_providers_.get(), 992 current_log->RecordStabilityMetrics(metrics_providers_.get(),
993 base::TimeDelta(), base::TimeDelta()); 993 base::TimeDelta(), base::TimeDelta());
994 current_log->RecordGeneralMetrics(metrics_providers_.get());
994 RecordCurrentHistograms(); 995 RecordCurrentHistograms();
995 996
996 current_log->RecordGeneralMetrics(metrics_providers_.get());
997
998 log_manager_.FinishCurrentLog(); 997 log_manager_.FinishCurrentLog();
999 log_manager_.ResumePausedLog(); 998 log_manager_.ResumePausedLog();
1000 999
1001 // Store unsent logs, including the initial log that was just saved, so 1000 // Store unsent logs, including the initial log that was just saved, so
1002 // that they're not lost in case of a crash before upload time. 1001 // that they're not lost in case of a crash before upload time.
1003 log_manager_.PersistUnsentLogs(); 1002 log_manager_.PersistUnsentLogs();
1004 1003
1005 DCHECK(!log_manager_.has_staged_log()); 1004 DCHECK(!log_manager_.has_staged_log());
1006 log_manager_.StageNextLogForUpload(); 1005 log_manager_.StageNextLogForUpload();
1007 } 1006 }
(...skipping 207 matching lines...)
1215 local_state_->SetBoolean(path, value); 1214 local_state_->SetBoolean(path, value);
1216 RecordCurrentState(local_state_); 1215 RecordCurrentState(local_state_);
1217 } 1216 }
1218 1217
1219 void MetricsService::RecordCurrentState(PrefService* pref) { 1218 void MetricsService::RecordCurrentState(PrefService* pref) {
1220 pref->SetInt64(metrics::prefs::kStabilityLastTimestampSec, 1219 pref->SetInt64(metrics::prefs::kStabilityLastTimestampSec,
1221 base::Time::Now().ToTimeT()); 1220 base::Time::Now().ToTimeT());
1222 } 1221 }
1223 1222
1224 } // namespace metrics 1223 } // namespace metrics
OLDNEW
« no previous file with comments | « components/metrics/metrics_provider.h ('k') | tools/metrics/histograms/histograms.xml » ('j') | no next file with comments »

Powered by Google App Engine