OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 1148 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1159 // Adds to ongoing logs. | 1159 // Adds to ongoing logs. |
1160 log_manager_.current_log()->set_hardware_class(hardware_class_); | 1160 log_manager_.current_log()->set_hardware_class(hardware_class_); |
1161 | 1161 |
1162 // Put incremental data (histogram deltas, and realtime stats deltas) at the | 1162 // Put incremental data (histogram deltas, and realtime stats deltas) at the |
1163 // end of all log transmissions (initial log handles this separately). | 1163 // end of all log transmissions (initial log handles this separately). |
1164 // RecordIncrementalStabilityElements only exists on the derived | 1164 // RecordIncrementalStabilityElements only exists on the derived |
1165 // MetricsLog class. | 1165 // MetricsLog class. |
1166 MetricsLog* current_log = | 1166 MetricsLog* current_log = |
1167 static_cast<MetricsLog*>(log_manager_.current_log()); | 1167 static_cast<MetricsLog*>(log_manager_.current_log()); |
1168 DCHECK(current_log); | 1168 DCHECK(current_log); |
1169 std::vector<chrome_variations::ActiveGroupId> synthetic_trials; | 1169 std::vector<variations::ActiveGroupId> synthetic_trials; |
1170 GetCurrentSyntheticFieldTrials(&synthetic_trials); | 1170 GetCurrentSyntheticFieldTrials(&synthetic_trials); |
1171 current_log->RecordEnvironment(plugins_, google_update_metrics_, | 1171 current_log->RecordEnvironment(plugins_, google_update_metrics_, |
1172 synthetic_trials); | 1172 synthetic_trials); |
1173 PrefService* pref = g_browser_process->local_state(); | 1173 PrefService* pref = g_browser_process->local_state(); |
1174 base::TimeDelta incremental_uptime; | 1174 base::TimeDelta incremental_uptime; |
1175 base::TimeDelta uptime; | 1175 base::TimeDelta uptime; |
1176 GetUptimes(pref, &incremental_uptime, &uptime); | 1176 GetUptimes(pref, &incremental_uptime, &uptime); |
1177 current_log->RecordStabilityMetrics(incremental_uptime, uptime); | 1177 current_log->RecordStabilityMetrics(incremental_uptime, uptime); |
1178 | 1178 |
1179 RecordCurrentHistograms(); | 1179 RecordCurrentHistograms(); |
(...skipping 265 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1445 // that they're not lost in case of a crash before upload time. | 1445 // that they're not lost in case of a crash before upload time. |
1446 log_manager_.PersistUnsentLogs(); | 1446 log_manager_.PersistUnsentLogs(); |
1447 | 1447 |
1448 has_initial_stability_log_ = true; | 1448 has_initial_stability_log_ = true; |
1449 } | 1449 } |
1450 | 1450 |
1451 void MetricsService::PrepareInitialMetricsLog() { | 1451 void MetricsService::PrepareInitialMetricsLog() { |
1452 DCHECK(state_ == INIT_TASK_DONE || state_ == SENDING_INITIAL_STABILITY_LOG); | 1452 DCHECK(state_ == INIT_TASK_DONE || state_ == SENDING_INITIAL_STABILITY_LOG); |
1453 initial_metrics_log_->set_hardware_class(hardware_class_); | 1453 initial_metrics_log_->set_hardware_class(hardware_class_); |
1454 | 1454 |
1455 std::vector<chrome_variations::ActiveGroupId> synthetic_trials; | 1455 std::vector<variations::ActiveGroupId> synthetic_trials; |
1456 GetCurrentSyntheticFieldTrials(&synthetic_trials); | 1456 GetCurrentSyntheticFieldTrials(&synthetic_trials); |
1457 initial_metrics_log_->RecordEnvironment(plugins_, google_update_metrics_, | 1457 initial_metrics_log_->RecordEnvironment(plugins_, google_update_metrics_, |
1458 synthetic_trials); | 1458 synthetic_trials); |
1459 PrefService* pref = g_browser_process->local_state(); | 1459 PrefService* pref = g_browser_process->local_state(); |
1460 base::TimeDelta incremental_uptime; | 1460 base::TimeDelta incremental_uptime; |
1461 base::TimeDelta uptime; | 1461 base::TimeDelta uptime; |
1462 GetUptimes(pref, &incremental_uptime, &uptime); | 1462 GetUptimes(pref, &incremental_uptime, &uptime); |
1463 initial_metrics_log_->RecordStabilityMetrics(incremental_uptime, uptime); | 1463 initial_metrics_log_->RecordStabilityMetrics(incremental_uptime, uptime); |
1464 | 1464 |
1465 // Histograms only get written to the current log, so make the new log current | 1465 // Histograms only get written to the current log, so make the new log current |
(...skipping 254 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1720 SyntheticTrialGroup trial_group = trial; | 1720 SyntheticTrialGroup trial_group = trial; |
1721 trial_group.start_time = base::TimeTicks::Now(); | 1721 trial_group.start_time = base::TimeTicks::Now(); |
1722 synthetic_trial_groups_.push_back(trial_group); | 1722 synthetic_trial_groups_.push_back(trial_group); |
1723 } | 1723 } |
1724 | 1724 |
1725 void MetricsService::CheckForClonedInstall() { | 1725 void MetricsService::CheckForClonedInstall() { |
1726 state_manager_->CheckForClonedInstall(); | 1726 state_manager_->CheckForClonedInstall(); |
1727 } | 1727 } |
1728 | 1728 |
1729 void MetricsService::GetCurrentSyntheticFieldTrials( | 1729 void MetricsService::GetCurrentSyntheticFieldTrials( |
1730 std::vector<chrome_variations::ActiveGroupId>* synthetic_trials) { | 1730 std::vector<variations::ActiveGroupId>* synthetic_trials) { |
1731 DCHECK(synthetic_trials); | 1731 DCHECK(synthetic_trials); |
1732 synthetic_trials->clear(); | 1732 synthetic_trials->clear(); |
1733 const MetricsLog* current_log = | 1733 const MetricsLog* current_log = |
1734 static_cast<const MetricsLog*>(log_manager_.current_log()); | 1734 static_cast<const MetricsLog*>(log_manager_.current_log()); |
1735 for (size_t i = 0; i < synthetic_trial_groups_.size(); ++i) { | 1735 for (size_t i = 0; i < synthetic_trial_groups_.size(); ++i) { |
1736 if (synthetic_trial_groups_[i].start_time <= current_log->creation_time()) | 1736 if (synthetic_trial_groups_[i].start_time <= current_log->creation_time()) |
1737 synthetic_trials->push_back(synthetic_trial_groups_[i].id); | 1737 synthetic_trials->push_back(synthetic_trial_groups_[i].id); |
1738 } | 1738 } |
1739 } | 1739 } |
1740 | 1740 |
(...skipping 221 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1962 if (metrics_service) | 1962 if (metrics_service) |
1963 metrics_service->AddObserver(observer); | 1963 metrics_service->AddObserver(observer); |
1964 } | 1964 } |
1965 | 1965 |
1966 void MetricsServiceHelper::RemoveMetricsServiceObserver( | 1966 void MetricsServiceHelper::RemoveMetricsServiceObserver( |
1967 MetricsServiceObserver* observer) { | 1967 MetricsServiceObserver* observer) { |
1968 MetricsService* metrics_service = g_browser_process->metrics_service(); | 1968 MetricsService* metrics_service = g_browser_process->metrics_service(); |
1969 if (metrics_service) | 1969 if (metrics_service) |
1970 metrics_service->RemoveObserver(observer); | 1970 metrics_service->RemoveObserver(observer); |
1971 } | 1971 } |
OLD | NEW |