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

Side by Side Diff: chrome/browser/metrics/metrics_service.cc

Issue 7056031: Collect stats to investigate the viability of UDP (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 6 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 10 // A MetricsService instance is typically created at application startup. It
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after
167 #include "base/threading/platform_thread.h" 167 #include "base/threading/platform_thread.h"
168 #include "base/threading/thread.h" 168 #include "base/threading/thread.h"
169 #include "base/utf_string_conversions.h" 169 #include "base/utf_string_conversions.h"
170 #include "base/values.h" 170 #include "base/values.h"
171 #include "chrome/browser/bookmarks/bookmark_model.h" 171 #include "chrome/browser/bookmarks/bookmark_model.h"
172 #include "chrome/browser/browser_process.h" 172 #include "chrome/browser/browser_process.h"
173 #include "chrome/browser/memory_details.h" 173 #include "chrome/browser/memory_details.h"
174 #include "chrome/browser/metrics/histogram_synchronizer.h" 174 #include "chrome/browser/metrics/histogram_synchronizer.h"
175 #include "chrome/browser/metrics/metrics_log.h" 175 #include "chrome/browser/metrics/metrics_log.h"
176 #include "chrome/browser/metrics/metrics_reporting_scheduler.h" 176 #include "chrome/browser/metrics/metrics_reporting_scheduler.h"
177 #include "chrome/browser/net/network_stats.h"
177 #include "chrome/browser/prefs/pref_service.h" 178 #include "chrome/browser/prefs/pref_service.h"
178 #include "chrome/browser/prefs/scoped_user_pref_update.h" 179 #include "chrome/browser/prefs/scoped_user_pref_update.h"
179 #include "chrome/browser/profiles/profile.h" 180 #include "chrome/browser/profiles/profile.h"
180 #include "chrome/browser/search_engines/template_url_model.h" 181 #include "chrome/browser/search_engines/template_url_model.h"
181 #include "chrome/browser/ui/browser_list.h" 182 #include "chrome/browser/ui/browser_list.h"
182 #include "chrome/common/child_process_logging.h" 183 #include "chrome/common/child_process_logging.h"
183 #include "chrome/common/chrome_switches.h" 184 #include "chrome/common/chrome_switches.h"
184 #include "chrome/common/guid.h" 185 #include "chrome/common/guid.h"
185 #include "chrome/common/pref_names.h" 186 #include "chrome/common/pref_names.h"
186 #include "chrome/common/render_messages.h" 187 #include "chrome/common/render_messages.h"
(...skipping 500 matching lines...) Expand 10 before | Expand all | Expand 10 after
687 // private methods 688 // private methods
688 //------------------------------------------------------------------------------ 689 //------------------------------------------------------------------------------
689 690
690 691
691 //------------------------------------------------------------------------------ 692 //------------------------------------------------------------------------------
692 // Initialization methods 693 // Initialization methods
693 694
694 void MetricsService::InitializeMetricsState() { 695 void MetricsService::InitializeMetricsState() {
695 #if defined(OS_POSIX) 696 #if defined(OS_POSIX)
696 server_url_ = L"https://clients4.google.com/firefox/metrics/collect"; 697 server_url_ = L"https://clients4.google.com/firefox/metrics/collect";
698 // TODO(rtenneti): Return the network stats server name.
699 network_stats_server_ = "";
697 #else 700 #else
698 BrowserDistribution* dist = BrowserDistribution::GetDistribution(); 701 BrowserDistribution* dist = BrowserDistribution::GetDistribution();
699 server_url_ = dist->GetStatsServerURL(); 702 server_url_ = dist->GetStatsServerURL();
703 network_stats_server_ = dist->GetNetworkStatsServer();
700 #endif 704 #endif
701 705
702 PrefService* pref = g_browser_process->local_state(); 706 PrefService* pref = g_browser_process->local_state();
703 DCHECK(pref); 707 DCHECK(pref);
704 708
705 if ((pref->GetInt64(prefs::kStabilityStatsBuildTime) 709 if ((pref->GetInt64(prefs::kStabilityStatsBuildTime)
706 != MetricsLog::GetBuildTime()) || 710 != MetricsLog::GetBuildTime()) ||
707 (pref->GetString(prefs::kStabilityStatsVersion) 711 (pref->GetString(prefs::kStabilityStatsVersion)
708 != MetricsLog::GetVersionString())) { 712 != MetricsLog::GetVersionString())) {
709 // This is a new version, so we don't want to confuse the stats about the 713 // This is a new version, so we don't want to confuse the stats about the
(...skipping 648 matching lines...) Expand 10 before | Expand all | Expand 10 after
1358 1362
1359 if (unsent_logs()) 1363 if (unsent_logs())
1360 DCHECK(state_ < SENDING_CURRENT_LOGS); 1364 DCHECK(state_ < SENDING_CURRENT_LOGS);
1361 } 1365 }
1362 1366
1363 // Error 400 indicates a problem with the log, not with the server, so 1367 // Error 400 indicates a problem with the log, not with the server, so
1364 // don't consider that a sign that the server is in trouble. 1368 // don't consider that a sign that the server is in trouble.
1365 bool server_is_healthy = upload_succeeded || response_code == 400; 1369 bool server_is_healthy = upload_succeeded || response_code == 400;
1366 1370
1367 scheduler_->UploadFinished(server_is_healthy, unsent_logs()); 1371 scheduler_->UploadFinished(server_is_healthy, unsent_logs());
1372
1373 // Collect network stats if UMA upload succeeded.
1374 if (server_is_healthy)
1375 chrome_browser_net::CollectNetworkStats(network_stats_server_);
1368 } 1376 }
1369 1377
1370 void MetricsService::LogBadResponseCode() { 1378 void MetricsService::LogBadResponseCode() {
1371 VLOG(1) << "Verify your metrics logs are formatted correctly. Verify server " 1379 VLOG(1) << "Verify your metrics logs are formatted correctly. Verify server "
1372 "is active at " << server_url_; 1380 "is active at " << server_url_;
1373 if (!pending_log()) { 1381 if (!pending_log()) {
1374 VLOG(1) << "METRICS: Recorder shutdown during log transmission."; 1382 VLOG(1) << "METRICS: Recorder shutdown during log transmission.";
1375 } else { 1383 } else {
1376 VLOG(1) << "METRICS: transmission retry being scheduled for " 1384 VLOG(1) << "METRICS: transmission retry being scheduled for "
1377 << compressed_log_; 1385 << compressed_log_;
(...skipping 306 matching lines...) Expand 10 before | Expand all | Expand 10 after
1684 thread_id = base::PlatformThread::CurrentId(); 1692 thread_id = base::PlatformThread::CurrentId();
1685 return base::PlatformThread::CurrentId() == thread_id; 1693 return base::PlatformThread::CurrentId() == thread_id;
1686 } 1694 }
1687 1695
1688 #if defined(OS_CHROMEOS) 1696 #if defined(OS_CHROMEOS)
1689 void MetricsService::StartExternalMetrics() { 1697 void MetricsService::StartExternalMetrics() {
1690 external_metrics_ = new chromeos::ExternalMetrics; 1698 external_metrics_ = new chromeos::ExternalMetrics;
1691 external_metrics_->Start(); 1699 external_metrics_->Start();
1692 } 1700 }
1693 #endif 1701 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698