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

Unified Diff: net/reporting/reporting_metrics.cc

Issue 2249213002: [OBSOLETE] Reporting: Initial implementation. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 4 years 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: net/reporting/reporting_metrics.cc
diff --git a/net/reporting/reporting_metrics.cc b/net/reporting/reporting_metrics.cc
new file mode 100644
index 0000000000000000000000000000000000000000..5bed2c8b68bc4f579526a53264a1e5d8fd6e6e6b
--- /dev/null
+++ b/net/reporting/reporting_metrics.cc
@@ -0,0 +1,71 @@
+// Copyright 2016 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "net/reporting/reporting_metrics.h"
+
+#include "base/metrics/histogram_macros.h"
+
+namespace net {
+
+void HistogramEnabledState(EnabledState state) {
+ DCHECK_NE(ENABLED_STATE_MAX, state);
+ UMA_HISTOGRAM_ENUMERATION("Reporting.EnabledState", state, ENABLED_STATE_MAX);
+}
+
+void HistogramHeader(HeaderFate fate) {
+ DCHECK_NE(HEADER_FATE_MAX, fate);
Ryan Sleevi 2017/01/03 21:28:13 All of these DCHECKs are arguably unnecessary I a
Julia Tuttle 2017/01/25 20:27:45 Done.
+ UMA_HISTOGRAM_ENUMERATION("Reporting.HeaderFate", fate, HEADER_FATE_MAX);
+}
+
+void HistogramHeaderEndpoint(HeaderEndpointFate fate, base::TimeDelta ttl) {
+ DCHECK_NE(HEADER_ENDPOINT_FATE_MAX, fate);
+ UMA_HISTOGRAM_ENUMERATION("Reporting.HeaderEndpointFate", fate,
+ HEADER_ENDPOINT_FATE_MAX);
+ if (ttl > base::TimeDelta()) {
Ryan Sleevi 2017/01/03 21:28:13 This is subtle and under-documented (in your desig
Julia Tuttle 2017/01/25 20:27:45 I'm not defending against a negative TTL; I'm diff
+ UMA_HISTOGRAM_CUSTOM_TIMES("Reporting.HeaderEndpointTTL", ttl,
+ base::TimeDelta::FromSeconds(1),
+ base::TimeDelta::FromDays(7), 100);
+ }
+}
+
+void HistogramClient(base::TimeDelta ttl) {
+ UMA_HISTOGRAM_CUSTOM_TIMES("Reporting.ClientTTL", ttl,
+ base::TimeDelta::FromSeconds(1),
+ base::TimeDelta::FromDays(7), 100);
+}
+
+void HistogramReport(ReportFate fate, base::TimeDelta latency, int attempts) {
+ DCHECK_NE(REPORT_FATE_MAX, fate);
+ UMA_HISTOGRAM_ENUMERATION("Reporting.ReportFate", fate, REPORT_FATE_MAX);
+ if (fate == REPORT_FATE_DELIVERED) {
+ UMA_HISTOGRAM_LONG_TIMES("Reporting.ReportDeliveredAfterTime", latency);
+ UMA_HISTOGRAM_EXACT_LINEAR("Reporting.ReportDeliveredAfterAttempts",
+ attempts, 10);
+ }
+}
+
+void HistogramDeliveryContent(int report_count, int byte_count) {
+ UMA_HISTOGRAM_COUNTS_100("Reporting.DeliveryReportCount", report_count);
+ UMA_HISTOGRAM_COUNTS_100000("Reporting.DeliveryByteCount", byte_count);
Ryan Sleevi 2017/01/03 21:28:13 I'm very skeptical of a lot of these metrics, and
Julia Tuttle 2017/01/25 20:27:45 Alright, let me give it some thought. The ones I'
+}
+
+void HistogramDeliveryOutcome(DeliveryFate fate,
+ int net_error,
+ int http_response_code) {
+ DCHECK_NE(DELIVERY_FATE_MAX, fate);
+ UMA_HISTOGRAM_ENUMERATION("Reporting.DeliveryFate", fate, DELIVERY_FATE_MAX);
+ if (fate != DELIVERY_FATE_SHUTDOWN) {
+ UMA_HISTOGRAM_SPARSE_SLOWLY("Reporting.DeliveryNetError", net_error);
+ if (http_response_code > 0) {
+ UMA_HISTOGRAM_SPARSE_SLOWLY("Reporting.DeliveryHttpResponseCode",
+ http_response_code);
+ }
+ }
+}
+
+void HistogramEndpoint(EndpointFate fate) {
+ UMA_HISTOGRAM_ENUMERATION("Reporting.EndpointFate", fate, ENDPOINT_FATE_MAX);
+}
+
+} // namespace net

Powered by Google App Engine
This is Rietveld 408576698