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

Unified Diff: components/data_reduction_proxy/core/browser/data_reduction_proxy_bypass_protocol.cc

Issue 1141023002: Record UMA about the response's proxy_server in the DRP bypass logic. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebased on master again Created 5 years, 7 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: components/data_reduction_proxy/core/browser/data_reduction_proxy_bypass_protocol.cc
diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_bypass_protocol.cc b/components/data_reduction_proxy/core/browser/data_reduction_proxy_bypass_protocol.cc
index 92720634ed23b6be777fb68fa0c3641cbc19a72b..9d68955d6f41f6bcbe4c4fcf795227fe9eb59362 100644
--- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_bypass_protocol.cc
+++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_bypass_protocol.cc
@@ -6,6 +6,7 @@
#include <vector>
+#include "base/metrics/histogram_macros.h"
#include "base/strings/string_number_conversions.h"
#include "base/time/time.h"
#include "components/data_reduction_proxy/core/browser/data_reduction_proxy_bypass_stats.h"
@@ -24,6 +25,8 @@
#include "net/url_request/url_request_context.h"
#include "url/gurl.h"
+namespace data_reduction_proxy {
+
namespace {
// Adds non-empty entries in |data_reduction_proxies| to the retry map
@@ -66,9 +69,14 @@ void MarkProxiesAsBadUntil(
proxy_info, bypass_duration, additional_bad_proxies, request->net_log());
}
-} // namespace
+void ReportResponseProxyServerStatusHistogram(
+ DataReductionProxyBypassProtocol::ResponseProxyServerStatus status) {
+ UMA_HISTOGRAM_ENUMERATION(
+ "DataReductionProxy.ResponseProxyServerStatus", status,
+ DataReductionProxyBypassProtocol::RESPONSE_PROXY_SERVER_STATUS_MAX);
+}
-namespace data_reduction_proxy {
+} // namespace
DataReductionProxyBypassProtocol::DataReductionProxyBypassProtocol(
DataReductionProxyConfig* config)
@@ -93,22 +101,28 @@ bool DataReductionProxyBypassProtocol::MaybeBypassProxyAndPrepareToRetry(
// Empty implies either that the request was served from cache or that
// request was served directly from the origin.
- // TODO(sclittle): Add UMA to confirm that the |proxy_server| is never empty
- // when the response has the Data Reduction Proxy via header.
- if (request->proxy_server().IsEmpty())
+ if (request->proxy_server().IsEmpty()) {
+ ReportResponseProxyServerStatusHistogram(
+ RESPONSE_PROXY_SERVER_STATUS_EMPTY);
return false;
+ }
DataReductionProxyTypeInfo data_reduction_proxy_type_info;
if (!config_->WasDataReductionProxyUsed(request,
&data_reduction_proxy_type_info)) {
- if (!HasDataReductionProxyViaHeader(response_headers, nullptr))
+ if (!HasDataReductionProxyViaHeader(response_headers, nullptr)) {
+ ReportResponseProxyServerStatusHistogram(
+ RESPONSE_PROXY_SERVER_STATUS_NON_DRP_NO_VIA);
return false;
+ }
+ ReportResponseProxyServerStatusHistogram(
+ RESPONSE_PROXY_SERVER_STATUS_NON_DRP_WITH_VIA);
// If the |proxy_server| doesn't match any of the currently configured Data
// Reduction Proxies, but it still has the Data Reduction Proxy via header,
// then apply the bypass logic regardless.
- // TODO(sclittle): Add UMA to record how often this occurs, and remove this
- // workaround once http://crbug.com/476610 is fixed.
+ // TODO(sclittle): Remove this workaround once http://crbug.com/476610 is
+ // fixed.
data_reduction_proxy_type_info.proxy_servers.first = net::ProxyServer(
net::ProxyServer::SCHEME_HTTPS, request->proxy_server());
data_reduction_proxy_type_info.proxy_servers.second = net::ProxyServer(
@@ -117,7 +131,10 @@ bool DataReductionProxyBypassProtocol::MaybeBypassProxyAndPrepareToRetry(
data_reduction_proxy_type_info.is_fallback = false;
data_reduction_proxy_type_info.is_ssl =
request->url().SchemeIsCryptographic();
+ } else {
+ ReportResponseProxyServerStatusHistogram(RESPONSE_PROXY_SERVER_STATUS_DRP);
}
+
// TODO(bengr): Implement bypass for CONNECT tunnel.
if (data_reduction_proxy_type_info.is_ssl)
return false;

Powered by Google App Engine
This is Rietveld 408576698