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

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

Issue 1033493002: Histogram for UMA log upload connection type. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Histogram type changed, refactoring network_metrics_provider_ + nits Created 5 years, 9 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
Index: chrome/browser/metrics/chrome_metrics_service_client.cc
diff --git a/chrome/browser/metrics/chrome_metrics_service_client.cc b/chrome/browser/metrics/chrome_metrics_service_client.cc
index c68d2bf7b816bb4688c11c63d1dc4ad2a3f3648f..e7904d7792cce52eb289404df712c6c5ebb46ebf 100644
--- a/chrome/browser/metrics/chrome_metrics_service_client.cc
+++ b/chrome/browser/metrics/chrome_metrics_service_client.cc
@@ -13,6 +13,7 @@
#include "base/logging.h"
#include "base/metrics/field_trial.h"
#include "base/metrics/histogram.h"
+#include "base/metrics/sparse_histogram.h"
Ilya Sherman 2015/03/24 21:55:44 nit: No longer needed?
gayane -on leave until 09-2017 2015/03/25 21:02:33 Done.
#include "base/prefs/pref_registry_simple.h"
#include "base/prefs/pref_service.h"
#include "base/strings/string16.h"
@@ -123,6 +124,7 @@ ChromeMetricsServiceClient::ChromeMetricsServiceClient(
metrics::MetricsStateManager* state_manager)
: metrics_state_manager_(state_manager),
chromeos_metrics_provider_(NULL),
+ network_metrics_provider_(NULL),
waiting_for_collect_final_metrics_step_(false),
num_async_histogram_fetches_in_progress_(0),
weak_ptr_factory_(this) {
@@ -205,7 +207,15 @@ std::string ChromeMetricsServiceClient::GetVersionString() {
return version;
}
-void ChromeMetricsServiceClient::OnLogUploadComplete() {
+void ChromeMetricsServiceClient::OnLogUploadComplete(bool upload_succeeded) {
+ // Record the network connection type.
+ if (upload_succeeded) {
+ UMA_HISTOGRAM_ENUMERATION(
+ "UMA.LogUpload.ConnetionType",
+ network_metrics_provider_->GetConnectionType(),
+ metrics::SystemProfileProto::Network::CONNECTION_BLUETOOTH + 1);
Ilya Sherman 2015/03/24 21:55:44 Rather than using the enum type from the protocol
gayane -on leave until 09-2017 2015/03/25 21:02:33 For the enum eventually I have used net::NetworkCh
+ }
+
// Collect network stats after each UMA upload.
network_stats_uploader_.CollectAndReportNetworkStats();
}
@@ -267,10 +277,8 @@ ChromeMetricsServiceClient::CreateUploader(
base::TimeDelta ChromeMetricsServiceClient::GetStandardUploadInterval() {
#if defined(OS_ANDROID) || defined(OS_IOS)
- bool is_cellular = false;
- cellular_callback_.Run(&is_cellular);
-
- if (is_cellular && IsCellularEnabledByExperiment())
+ if (network_metrics_provider_->IsCellularConnection() &&
+ IsCellularEnabledByExperiment())
return base::TimeDelta::FromSeconds(kStandardUploadIntervalCellularSeconds);
#endif
return base::TimeDelta::FromSeconds(kStandardUploadIntervalSeconds);
@@ -303,11 +311,11 @@ void ChromeMetricsServiceClient::Initialize() {
scoped_ptr<metrics::MetricsProvider>(
new ExtensionsMetricsProvider(metrics_state_manager_)));
#endif
- scoped_ptr<metrics::NetworkMetricsProvider> network_metrics_provider(
- new metrics::NetworkMetricsProvider(
- content::BrowserThread::GetBlockingPool()));
- cellular_callback_ = network_metrics_provider->GetConnectionCallback();
- metrics_service_->RegisterMetricsProvider(network_metrics_provider.Pass());
+
+ network_metrics_provider_ = new metrics::NetworkMetricsProvider(
+ content::BrowserThread::GetBlockingPool());
+ metrics_service_->RegisterMetricsProvider(
+ scoped_ptr<metrics::NetworkMetricsProvider>(network_metrics_provider_));
metrics_service_->RegisterMetricsProvider(
scoped_ptr<metrics::MetricsProvider>(new OmniboxMetricsProvider));
@@ -316,8 +324,8 @@ void ChromeMetricsServiceClient::Initialize() {
metrics_service_->RegisterMetricsProvider(
scoped_ptr<metrics::MetricsProvider>(new metrics::GPUMetricsProvider()));
- profiler_metrics_provider_ =
- new metrics::ProfilerMetricsProvider(cellular_callback_);
+ profiler_metrics_provider_ = new metrics::ProfilerMetricsProvider(
+ network_metrics_provider_->GetConnectionCallback());
metrics_service_->RegisterMetricsProvider(
scoped_ptr<metrics::MetricsProvider>(profiler_metrics_provider_));

Powered by Google App Engine
This is Rietveld 408576698