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

Unified Diff: net/base/host_resolver_impl.cc

Issue 11065052: [net] Add AsyncDNS.TTL histogram. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 8 years, 2 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
« net/base/host_cache.h ('K') | « net/base/host_cache.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/base/host_resolver_impl.cc
diff --git a/net/base/host_resolver_impl.cc b/net/base/host_resolver_impl.cc
index d9e1aa2b7e79fa2e2eafe49c6e54f2ec36fee623..27bc0e5e3a1aa3cc76a3f19bfdd5f45729fdf834 100644
--- a/net/base/host_resolver_impl.cc
+++ b/net/base/host_resolver_impl.cc
@@ -205,6 +205,10 @@ void RecordTotalTime(bool had_dns_config,
}
}
+void RecordTTL(base::TimeDelta ttl) {
+ UMA_HISTOGRAM_CUSTOM_COUNTS("AsyncDNS.TTL", ttl.InSeconds(), 1, 86400, 100);
+}
+
//-----------------------------------------------------------------------------
// Wraps call to SystemHostResolverProc as an instance of HostResolverProc.
@@ -1464,12 +1468,7 @@ class HostResolverImpl::Job : public PrioritizedDispatcher::Job {
}
}
- base::TimeDelta ttl = base::TimeDelta::FromSeconds(
- kNegativeCacheEntryTTLSeconds);
- if (net_error == OK)
- ttl = base::TimeDelta::FromSeconds(kCacheEntryTTLSeconds);
-
- CompleteRequests(net_error, addr_list, ttl);
+ CompleteRequests(net_error, addr_list, base::TimeDelta::FromSeconds(-1));
cbentzel 2012/10/11 18:27:30 At the point that the kNegativeCacheEntry/kCacheEn
}
void StartDnsTask() {
@@ -1958,6 +1957,8 @@ bool HostResolverImpl::ServeFromCache(const Key& key,
*net_error = cache_entry->error;
if (*net_error == OK) {
+ if (cache_entry->original_ttl >= base::TimeDelta())
+ RecordTTL(cache_entry->original_ttl);
*addresses = cache_entry->addrlist;
EnsurePortOnAddressList(info.port(), addresses);
}
@@ -2001,8 +2002,25 @@ void HostResolverImpl::CacheResult(const Key& key,
int net_error,
const AddressList& addr_list,
base::TimeDelta ttl) {
- if (cache_.get())
- cache_->Set(key, net_error, addr_list, base::TimeTicks::Now(), ttl);
+ bool have_ttl = (ttl >= base::TimeDelta());
+ if (!have_ttl) {
+ if (net_error == OK) {
+ ttl = base::TimeDelta::FromSeconds(kCacheEntryTTLSeconds);
+ } else {
+ ttl = base::TimeDelta::FromSeconds(kNegativeCacheEntryTTLSeconds);
+ }
+ }
+
+ if (cache_.get()) {
+ HostCache::Entry* entry = cache_->Set(
+ key, net_error, addr_list, base::TimeTicks::Now(), ttl);
+ if (have_ttl) {
+ RecordTTL(ttl);
+ entry->original_ttl = ttl;
+ } else {
+ entry->original_ttl = base::TimeDelta::FromSeconds(-1);
+ }
+ }
}
void HostResolverImpl::RemoveJob(Job* job) {
« net/base/host_cache.h ('K') | « net/base/host_cache.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698