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

Unified Diff: components/metrics/net/network_metrics_provider.cc

Issue 1796983002: Log aggregated abort metrics when histograms are uploaded (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: isherman@ review Created 4 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
« no previous file with comments | « components/metrics/net/network_metrics_provider.h ('k') | tools/metrics/histograms/histograms.xml » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/metrics/net/network_metrics_provider.cc
diff --git a/components/metrics/net/network_metrics_provider.cc b/components/metrics/net/network_metrics_provider.cc
index 07cdf57a7af5a3e2d9e11cb0c3a5d6703cfa19ff..925408939847bfd6c67e5555a1a6a9c962b44c88 100644
--- a/components/metrics/net/network_metrics_provider.cc
+++ b/components/metrics/net/network_metrics_provider.cc
@@ -10,11 +10,14 @@
#include <vector>
#include "base/compiler_specific.h"
+#include "base/metrics/histogram_macros.h"
+#include "base/metrics/sparse_histogram.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/string_split.h"
#include "base/strings/string_util.h"
#include "base/task_runner_util.h"
#include "build/build_config.h"
+#include "net/base/net_errors.h"
#if defined(OS_CHROMEOS)
#include "components/metrics/net/wifi_access_point_info_provider_chromeos.h"
@@ -22,12 +25,13 @@
namespace metrics {
-NetworkMetricsProvider::NetworkMetricsProvider(
- base::TaskRunner* io_task_runner)
+NetworkMetricsProvider::NetworkMetricsProvider(base::TaskRunner* io_task_runner)
: io_task_runner_(io_task_runner),
connection_type_is_ambiguous_(false),
wifi_phy_layer_protocol_is_ambiguous_(false),
wifi_phy_layer_protocol_(net::WIFI_PHY_LAYER_PROTOCOL_UNKNOWN),
+ total_aborts_(0),
+ total_codes_(0),
weak_ptr_factory_(this) {
net::NetworkChangeNotifier::AddConnectionTypeObserver(this);
connection_type_ = net::NetworkChangeNotifier::GetConnectionType();
@@ -43,6 +47,7 @@ void NetworkMetricsProvider::ProvideGeneralMetrics(
// ProvideGeneralMetrics is called on the main thread, at the time a metrics
// record is being finalized.
net::NetworkChangeNotifier::FinalizingMetricsLogRecord();
+ LogAggregatedMetrics();
}
void NetworkMetricsProvider::ProvideSystemProfileMetrics(
@@ -240,4 +245,21 @@ void NetworkMetricsProvider::WriteWifiAccessPointProto(
}
}
+void NetworkMetricsProvider::LogAggregatedMetrics() {
+ base::HistogramBase* error_codes = base::SparseHistogram::FactoryGet(
+ "Net.ErrorCodesForMainFrame3",
+ base::HistogramBase::kUmaTargetedHistogramFlag);
+ scoped_ptr<base::HistogramSamples> samples = error_codes->SnapshotSamples();
+ base::HistogramBase::Count new_aborts =
+ samples->GetCount(-net::ERR_ABORTED) - total_aborts_;
+ base::HistogramBase::Count new_codes = samples->TotalCount() - total_codes_;
+ if (new_codes > 0) {
+ UMA_HISTOGRAM_COUNTS("Net.ErrAborted.CountPerUpload", new_aborts);
+ UMA_HISTOGRAM_PERCENTAGE("Net.ErrAborted.ProportionPerUpload",
+ (100 * new_aborts) / new_codes);
+ total_codes_ += new_codes;
+ total_aborts_ += new_aborts;
+ }
+}
+
} // namespace metrics
« no previous file with comments | « components/metrics/net/network_metrics_provider.h ('k') | tools/metrics/histograms/histograms.xml » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698