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

Side by Side Diff: net/dns/dns_session.cc

Issue 551873002: Fix number of buckets in AsyncDNS.ServerCount and ServerFailureIndex UMA histograms. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 3 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 #include "net/dns/dns_session.h" 5 #include "net/dns/dns_session.h"
6 6
7 #include "base/basictypes.h" 7 #include "base/basictypes.h"
8 #include "base/bind.h" 8 #include "base/bind.h"
9 #include "base/lazy_instance.h" 9 #include "base/lazy_instance.h"
10 #include "base/metrics/histogram.h" 10 #include "base/metrics/histogram.h"
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
82 scoped_ptr<DnsSocketPool> socket_pool, 82 scoped_ptr<DnsSocketPool> socket_pool,
83 const RandIntCallback& rand_int_callback, 83 const RandIntCallback& rand_int_callback,
84 NetLog* net_log) 84 NetLog* net_log)
85 : config_(config), 85 : config_(config),
86 socket_pool_(socket_pool.Pass()), 86 socket_pool_(socket_pool.Pass()),
87 rand_callback_(base::Bind(rand_int_callback, 0, kuint16max)), 87 rand_callback_(base::Bind(rand_int_callback, 0, kuint16max)),
88 net_log_(net_log), 88 net_log_(net_log),
89 server_index_(0) { 89 server_index_(0) {
90 socket_pool_->Initialize(&config_.nameservers, net_log); 90 socket_pool_->Initialize(&config_.nameservers, net_log);
91 UMA_HISTOGRAM_CUSTOM_COUNTS( 91 UMA_HISTOGRAM_CUSTOM_COUNTS(
92 "AsyncDNS.ServerCount", config_.nameservers.size(), 0, 10, 10); 92 "AsyncDNS.ServerCount", config_.nameservers.size(), 0, 10, 11);
93 for (size_t i = 0; i < config_.nameservers.size(); ++i) { 93 for (size_t i = 0; i < config_.nameservers.size(); ++i) {
94 server_stats_.push_back(new ServerStats(config_.timeout, 94 server_stats_.push_back(new ServerStats(config_.timeout,
95 rtt_buckets_.Pointer())); 95 rtt_buckets_.Pointer()));
96 } 96 }
97 } 97 }
98 98
99 DnsSession::~DnsSession() { 99 DnsSession::~DnsSession() {
100 RecordServerStats(); 100 RecordServerStats();
101 } 101 }
102 102
(...skipping 29 matching lines...) Expand all
132 index = (index + 1) % config_.nameservers.size(); 132 index = (index + 1) % config_.nameservers.size();
133 } while (index != server_index); 133 } while (index != server_index);
134 134
135 // If we are here it means that there are no successful servers, so we have 135 // If we are here it means that there are no successful servers, so we have
136 // to use one that has failed oldest. 136 // to use one that has failed oldest.
137 return oldest_server_failure_index; 137 return oldest_server_failure_index;
138 } 138 }
139 139
140 void DnsSession::RecordServerFailure(unsigned server_index) { 140 void DnsSession::RecordServerFailure(unsigned server_index) {
141 UMA_HISTOGRAM_CUSTOM_COUNTS( 141 UMA_HISTOGRAM_CUSTOM_COUNTS(
142 "AsyncDNS.ServerFailureIndex", server_index, 0, 10, 10); 142 "AsyncDNS.ServerFailureIndex", server_index, 0, 10, 11);
143 ++(server_stats_[server_index]->last_failure_count); 143 ++(server_stats_[server_index]->last_failure_count);
144 server_stats_[server_index]->last_failure = base::Time::Now(); 144 server_stats_[server_index]->last_failure = base::Time::Now();
145 } 145 }
146 146
147 void DnsSession::RecordServerSuccess(unsigned server_index) { 147 void DnsSession::RecordServerSuccess(unsigned server_index) {
148 if (server_stats_[server_index]->last_success.is_null()) { 148 if (server_stats_[server_index]->last_success.is_null()) {
149 UMA_HISTOGRAM_COUNTS_100("AsyncDNS.ServerFailuresAfterNetworkChange", 149 UMA_HISTOGRAM_COUNTS_100("AsyncDNS.ServerFailuresAfterNetworkChange",
150 server_stats_[server_index]->last_failure_count); 150 server_stats_[server_index]->last_failure_count);
151 } else { 151 } else {
152 UMA_HISTOGRAM_COUNTS_100("AsyncDNS.ServerFailuresBeforeSuccess", 152 UMA_HISTOGRAM_COUNTS_100("AsyncDNS.ServerFailuresBeforeSuccess",
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after
289 timeout = std::max(timeout, base::TimeDelta::FromMilliseconds(kMinTimeoutMs)); 289 timeout = std::max(timeout, base::TimeDelta::FromMilliseconds(kMinTimeoutMs));
290 290
291 // The timeout still doubles every full round. 291 // The timeout still doubles every full round.
292 unsigned num_backoffs = attempt / config_.nameservers.size(); 292 unsigned num_backoffs = attempt / config_.nameservers.size();
293 293
294 return std::min(timeout * (1 << num_backoffs), 294 return std::min(timeout * (1 << num_backoffs),
295 base::TimeDelta::FromMilliseconds(kMaxTimeoutMs)); 295 base::TimeDelta::FromMilliseconds(kMaxTimeoutMs));
296 } 296 }
297 297
298 } // namespace net 298 } // namespace net
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698