Commit 61604665 authored by Miriam Gershenson's avatar Miriam Gershenson Committed by Commit Bot

DNS histogram cleanup, part 3

This CL removes all the old DNS.Resolve* and AsyncDNS.Resolve*
histograms and replaces them with a new set. The new Net.DNS.Resolve*
histograms measure timing and success/failure at the Job layer, and each
type of Task gets its own set to measure Task layer timing and
success/failure.

Bug: 769320
Change-Id: I0b0df897310a474fd11022f932724c8d40789090
Reviewed-on: https://chromium-review.googlesource.com/687836
Commit-Queue: Miriam Gershenson <mgersh@chromium.org>
Reviewed-by: default avatarJulia Tuttle <juliatuttle@chromium.org>
Reviewed-by: default avatarIlya Sherman <isherman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#505215}
parent 7976c1c0
...@@ -693,7 +693,6 @@ class HostResolverImpl::ProcTask ...@@ -693,7 +693,6 @@ class HostResolverImpl::ProcTask
attempt_number_(0), attempt_number_(0),
completed_attempt_number_(0), completed_attempt_number_(0),
completed_attempt_error_(ERR_UNEXPECTED), completed_attempt_error_(ERR_UNEXPECTED),
had_non_speculative_request_(false),
net_log_(job_net_log) { net_log_(job_net_log) {
if (!params_.resolver_proc.get()) if (!params_.resolver_proc.get())
params_.resolver_proc = HostResolverProc::GetDefault(); params_.resolver_proc = HostResolverProc::GetDefault();
...@@ -721,11 +720,6 @@ class HostResolverImpl::ProcTask ...@@ -721,11 +720,6 @@ class HostResolverImpl::ProcTask
net_log_.EndEvent(NetLogEventType::HOST_RESOLVER_IMPL_PROC_TASK); net_log_.EndEvent(NetLogEventType::HOST_RESOLVER_IMPL_PROC_TASK);
} }
void set_had_non_speculative_request() {
DCHECK(network_task_runner_->BelongsToCurrentThread());
had_non_speculative_request_ = true;
}
bool was_canceled() const { bool was_canceled() const {
DCHECK(network_task_runner_->BelongsToCurrentThread()); DCHECK(network_task_runner_->BelongsToCurrentThread());
return callback_.is_null(); return callback_.is_null();
...@@ -816,11 +810,6 @@ class HostResolverImpl::ProcTask ...@@ -816,11 +810,6 @@ class HostResolverImpl::ProcTask
if (error != OK && NetworkChangeNotifier::IsOffline()) if (error != OK && NetworkChangeNotifier::IsOffline())
error = ERR_INTERNET_DISCONNECTED; error = ERR_INTERNET_DISCONNECTED;
// If this is the first attempt that is finishing later, then record data
// for the first attempt. Won't contaminate with retry attempt's data.
if (!was_retry_attempt)
RecordPerformanceHistograms(start_time, error, os_error);
RecordAttemptHistograms(start_time, attempt_number, error, os_error); RecordAttemptHistograms(start_time, attempt_number, error, os_error);
if (was_canceled()) if (was_canceled())
...@@ -841,6 +830,8 @@ class HostResolverImpl::ProcTask ...@@ -841,6 +830,8 @@ class HostResolverImpl::ProcTask
if (was_completed()) if (was_completed())
return; return;
RecordTaskHistograms(start_time, error, os_error);
// Copy the results from the first worker thread that resolves the host. // Copy the results from the first worker thread that resolves the host.
results_ = results; results_ = results;
completed_attempt_number_ = attempt_number; completed_attempt_number_ = attempt_number;
...@@ -864,76 +855,20 @@ class HostResolverImpl::ProcTask ...@@ -864,76 +855,20 @@ class HostResolverImpl::ProcTask
callback_.Run(error, results_); callback_.Run(error, results_);
} }
void RecordPerformanceHistograms(const base::TimeTicks& start_time, void RecordTaskHistograms(const base::TimeTicks& start_time,
const int error, const int error,
const int os_error) const { const int os_error) const {
DCHECK(network_task_runner_->BelongsToCurrentThread()); DCHECK(network_task_runner_->BelongsToCurrentThread());
enum Category { // Used in UMA_HISTOGRAM_ENUMERATION.
RESOLVE_SUCCESS,
RESOLVE_FAIL,
RESOLVE_SPECULATIVE_SUCCESS,
RESOLVE_SPECULATIVE_FAIL,
RESOLVE_MAX, // Bounding value.
};
Category category = RESOLVE_MAX; // Illegal value for later DCHECK only.
base::TimeDelta duration = base::TimeTicks::Now() - start_time; base::TimeDelta duration = base::TimeTicks::Now() - start_time;
if (error == OK) { if (error == OK)
if (had_non_speculative_request_) { UMA_HISTOGRAM_LONG_TIMES_100("Net.DNS.ProcTask.SuccessTime", duration);
category = RESOLVE_SUCCESS; else
UMA_HISTOGRAM_LONG_TIMES_100("DNS.ResolveSuccess", duration); UMA_HISTOGRAM_LONG_TIMES_100("Net.DNS.ProcTask.FailureTime", duration);
} else {
category = RESOLVE_SPECULATIVE_SUCCESS;
UMA_HISTOGRAM_LONG_TIMES_100("DNS.ResolveSpeculativeSuccess", duration);
}
// Log DNS lookups based on |address_family|. This will help us determine
// if IPv4 or IPv4/6 lookups are faster or slower.
switch (key_.address_family) {
case ADDRESS_FAMILY_IPV4:
UMA_HISTOGRAM_LONG_TIMES_100("DNS.ResolveSuccess_FAMILY_IPV4",
duration);
break;
case ADDRESS_FAMILY_IPV6:
UMA_HISTOGRAM_LONG_TIMES_100("DNS.ResolveSuccess_FAMILY_IPV6",
duration);
break;
case ADDRESS_FAMILY_UNSPECIFIED:
UMA_HISTOGRAM_LONG_TIMES_100("DNS.ResolveSuccess_FAMILY_UNSPEC",
duration);
break;
}
} else {
if (had_non_speculative_request_) {
category = RESOLVE_FAIL;
UMA_HISTOGRAM_LONG_TIMES_100("DNS.ResolveFail", duration);
} else {
category = RESOLVE_SPECULATIVE_FAIL;
UMA_HISTOGRAM_LONG_TIMES_100("DNS.ResolveSpeculativeFail", duration);
}
// Log DNS lookups based on |address_family|. This will help us determine
// if IPv4 or IPv4/6 lookups are faster or slower.
switch (key_.address_family) {
case ADDRESS_FAMILY_IPV4:
UMA_HISTOGRAM_LONG_TIMES_100("DNS.ResolveFail_FAMILY_IPV4", duration);
break;
case ADDRESS_FAMILY_IPV6:
UMA_HISTOGRAM_LONG_TIMES_100("DNS.ResolveFail_FAMILY_IPV6", duration);
break;
case ADDRESS_FAMILY_UNSPECIFIED:
UMA_HISTOGRAM_LONG_TIMES_100("DNS.ResolveFail_FAMILY_UNSPEC",
duration);
break;
}
UMA_HISTOGRAM_CUSTOM_ENUMERATION(kOSErrorsForGetAddrinfoHistogramName, UMA_HISTOGRAM_CUSTOM_ENUMERATION(kOSErrorsForGetAddrinfoHistogramName,
std::abs(os_error), std::abs(os_error),
GetAllGetAddrinfoOSErrors()); GetAllGetAddrinfoOSErrors());
} }
DCHECK_LT(static_cast<int>(category),
static_cast<int>(RESOLVE_MAX)); // Be sure it was set.
UMA_HISTOGRAM_ENUMERATION("DNS.ResolveCategory", category, RESOLVE_MAX);
}
void RecordAttemptHistograms(const base::TimeTicks& start_time, void RecordAttemptHistograms(const base::TimeTicks& start_time,
const uint32_t attempt_number, const uint32_t attempt_number,
...@@ -1017,12 +952,6 @@ class HostResolverImpl::ProcTask ...@@ -1017,12 +952,6 @@ class HostResolverImpl::ProcTask
// The time when retry attempt was finished. // The time when retry attempt was finished.
base::TimeTicks retry_attempt_finished_time_; base::TimeTicks retry_attempt_finished_time_;
// True if a non-speculative request was ever attached to this job
// (regardless of whether or not it was later canceled.
// This boolean is used for histogramming the duration of jobs used to
// service non-speculative requests.
bool had_non_speculative_request_;
AddressList results_; AddressList results_;
NetLogWithSource net_log_; NetLogWithSource net_log_;
...@@ -1351,12 +1280,8 @@ class HostResolverImpl::Job : public PrioritizedDispatcher::Job, ...@@ -1351,12 +1280,8 @@ class HostResolverImpl::Job : public PrioritizedDispatcher::Job,
base::Bind(&NetLogJobAttachCallback, request->source_net_log().source(), base::Bind(&NetLogJobAttachCallback, request->source_net_log().source(),
priority())); priority()));
// TODO(szym): Check if this is still needed. if (!request->info().is_speculative())
if (!request->info().is_speculative()) {
had_non_speculative_request_ = true; had_non_speculative_request_ = true;
if (proc_task_.get())
proc_task_->set_had_non_speculative_request();
}
requests_.push_back(request); requests_.push_back(request);
...@@ -1533,9 +1458,10 @@ class HostResolverImpl::Job : public PrioritizedDispatcher::Job, ...@@ -1533,9 +1458,10 @@ class HostResolverImpl::Job : public PrioritizedDispatcher::Job,
had_dns_config_ = resolver_->HaveDnsConfig(); had_dns_config_ = resolver_->HaveDnsConfig();
base::TimeTicks now = base::TimeTicks::Now(); start_time_ = base::TimeTicks::Now();
base::TimeDelta queue_time = now - creation_time_; base::TimeDelta queue_time = start_time_ - creation_time_;
base::TimeDelta queue_time_after_change = now - priority_change_time_; base::TimeDelta queue_time_after_change =
start_time_ - priority_change_time_;
DNS_HISTOGRAM_BY_PRIORITY("Net.DNS.JobQueueTime", priority(), queue_time); DNS_HISTOGRAM_BY_PRIORITY("Net.DNS.JobQueueTime", priority(), queue_time);
DNS_HISTOGRAM_BY_PRIORITY("Net.DNS.JobQueueTimeAfterChange", priority(), DNS_HISTOGRAM_BY_PRIORITY("Net.DNS.JobQueueTimeAfterChange", priority(),
...@@ -1565,8 +1491,6 @@ class HostResolverImpl::Job : public PrioritizedDispatcher::Job, ...@@ -1565,8 +1491,6 @@ class HostResolverImpl::Job : public PrioritizedDispatcher::Job,
base::Unretained(this), base::TimeTicks::Now()), base::Unretained(this), base::TimeTicks::Now()),
net_log_); net_log_);
if (had_non_speculative_request_)
proc_task_->set_had_non_speculative_request();
// Start() could be called from within Resolve(), hence it must NOT directly // Start() could be called from within Resolve(), hence it must NOT directly
// call OnProcTaskComplete, for example, on synchronous failure. // call OnProcTaskComplete, for example, on synchronous failure.
proc_task_->Start(); proc_task_->Start();
...@@ -1588,7 +1512,7 @@ class HostResolverImpl::Job : public PrioritizedDispatcher::Job, ...@@ -1588,7 +1512,7 @@ class HostResolverImpl::Job : public PrioritizedDispatcher::Job,
} else { } else {
UmaAsyncDnsResolveStatus(RESOLVE_STATUS_PROC_SUCCESS); UmaAsyncDnsResolveStatus(RESOLVE_STATUS_PROC_SUCCESS);
} }
UMA_HISTOGRAM_SPARSE_SLOWLY("AsyncDNS.ResolveError", UMA_HISTOGRAM_SPARSE_SLOWLY("Net.DNS.DnsTask.Errors",
std::abs(dns_task_error_)); std::abs(dns_task_error_));
resolver_->OnDnsTaskResolve(dns_task_error_); resolver_->OnDnsTaskResolve(dns_task_error_);
} else { } else {
...@@ -1631,7 +1555,7 @@ class HostResolverImpl::Job : public PrioritizedDispatcher::Job, ...@@ -1631,7 +1555,7 @@ class HostResolverImpl::Job : public PrioritizedDispatcher::Job,
void OnDnsTaskFailure(const base::WeakPtr<DnsTask>& dns_task, void OnDnsTaskFailure(const base::WeakPtr<DnsTask>& dns_task,
base::TimeDelta duration, base::TimeDelta duration,
int net_error) { int net_error) {
UMA_HISTOGRAM_LONG_TIMES_100("AsyncDNS.ResolveFail", duration); UMA_HISTOGRAM_LONG_TIMES_100("Net.DNS.DnsTask.FailureTime", duration);
if (!dns_task) if (!dns_task)
return; return;
...@@ -1666,22 +1590,8 @@ class HostResolverImpl::Job : public PrioritizedDispatcher::Job, ...@@ -1666,22 +1590,8 @@ class HostResolverImpl::Job : public PrioritizedDispatcher::Job,
OnDnsTaskFailure(dns_task_->AsWeakPtr(), duration, net_error); OnDnsTaskFailure(dns_task_->AsWeakPtr(), duration, net_error);
return; return;
} }
UMA_HISTOGRAM_LONG_TIMES_100("AsyncDNS.ResolveSuccess", duration);
// Log DNS lookups based on |address_family|. UMA_HISTOGRAM_LONG_TIMES_100("Net.DNS.DnsTask.SuccessTime", duration);
switch (key_.address_family) {
case ADDRESS_FAMILY_IPV4:
UMA_HISTOGRAM_LONG_TIMES_100("AsyncDNS.ResolveSuccess_FAMILY_IPV4",
duration);
break;
case ADDRESS_FAMILY_IPV6:
UMA_HISTOGRAM_LONG_TIMES_100("AsyncDNS.ResolveSuccess_FAMILY_IPV6",
duration);
break;
case ADDRESS_FAMILY_UNSPECIFIED:
UMA_HISTOGRAM_LONG_TIMES_100("AsyncDNS.ResolveSuccess_FAMILY_UNSPEC",
duration);
break;
}
UmaAsyncDnsResolveStatus(RESOLVE_STATUS_DNS_SUCCESS); UmaAsyncDnsResolveStatus(RESOLVE_STATUS_DNS_SUCCESS);
RecordTTL(ttl); RecordTTL(ttl);
...@@ -1712,6 +1622,69 @@ class HostResolverImpl::Job : public PrioritizedDispatcher::Job, ...@@ -1712,6 +1622,69 @@ class HostResolverImpl::Job : public PrioritizedDispatcher::Job,
dns_task_->StartSecondTransaction(); dns_task_->StartSecondTransaction();
} }
void RecordJobHistograms(int error) {
enum Category { // Used in UMA_HISTOGRAM_ENUMERATION.
RESOLVE_SUCCESS,
RESOLVE_FAIL,
RESOLVE_SPECULATIVE_SUCCESS,
RESOLVE_SPECULATIVE_FAIL,
RESOLVE_MAX, // Bounding value.
};
Category category = RESOLVE_MAX; // Illegal value for later DCHECK only.
base::TimeDelta duration = base::TimeTicks::Now() - start_time_;
if (error == OK) {
if (had_non_speculative_request_) {
category = RESOLVE_SUCCESS;
UMA_HISTOGRAM_LONG_TIMES_100("Net.DNS.ResolveSuccessTime", duration);
switch (key_.address_family) {
case ADDRESS_FAMILY_IPV4:
UMA_HISTOGRAM_LONG_TIMES_100("Net.DNS.ResolveSuccessTime.IPV4",
duration);
break;
case ADDRESS_FAMILY_IPV6:
UMA_HISTOGRAM_LONG_TIMES_100("Net.DNS.ResolveSuccessTime.IPV6",
duration);
break;
case ADDRESS_FAMILY_UNSPECIFIED:
UMA_HISTOGRAM_LONG_TIMES_100("Net.DNS.ResolveSuccessTime.UNSPEC",
duration);
break;
}
} else {
category = RESOLVE_SPECULATIVE_SUCCESS;
UMA_HISTOGRAM_LONG_TIMES_100("Net.DNS.ResolveSuccessTime.Speculative",
duration);
}
} else {
if (had_non_speculative_request_) {
category = RESOLVE_FAIL;
UMA_HISTOGRAM_LONG_TIMES_100("Net.DNS.ResolveFailureTime", duration);
switch (key_.address_family) {
case ADDRESS_FAMILY_IPV4:
UMA_HISTOGRAM_LONG_TIMES_100("Net.DNS.ResolveSuccessTime.IPV4",
duration);
break;
case ADDRESS_FAMILY_IPV6:
UMA_HISTOGRAM_LONG_TIMES_100("Net.DNS.ResolveSuccessTime.IPV6",
duration);
break;
case ADDRESS_FAMILY_UNSPECIFIED:
UMA_HISTOGRAM_LONG_TIMES_100("Net.DNS.ResolveSuccessTime.UNSPEC",
duration);
break;
}
} else {
category = RESOLVE_SPECULATIVE_FAIL;
UMA_HISTOGRAM_LONG_TIMES_100("Net.DNS.ResolveFailureTime.Speculative",
duration);
}
}
DCHECK_LT(static_cast<int>(category),
static_cast<int>(RESOLVE_MAX)); // Be sure it was set.
UMA_HISTOGRAM_ENUMERATION("Net.DNS.ResolveCategory", category, RESOLVE_MAX);
}
// Performs Job's last rites. Completes all Requests. Deletes this. // Performs Job's last rites. Completes all Requests. Deletes this.
void CompleteRequests(const HostCache::Entry& entry, void CompleteRequests(const HostCache::Entry& entry,
base::TimeDelta ttl) { base::TimeDelta ttl) {
...@@ -1763,8 +1736,10 @@ class HostResolverImpl::Job : public PrioritizedDispatcher::Job, ...@@ -1763,8 +1736,10 @@ class HostResolverImpl::Job : public PrioritizedDispatcher::Job,
bool did_complete = (entry.error() != ERR_NETWORK_CHANGED) && bool did_complete = (entry.error() != ERR_NETWORK_CHANGED) &&
(entry.error() != ERR_HOST_RESOLVER_QUEUE_TOO_LARGE); (entry.error() != ERR_HOST_RESOLVER_QUEUE_TOO_LARGE);
if (did_complete) if (did_complete) {
resolver_->CacheResult(key_, entry, ttl); resolver_->CacheResult(key_, entry, ttl);
RecordJobHistograms(entry.error());
}
// Complete all of the requests that were attached to the job and // Complete all of the requests that were attached to the job and
// detach them. // detach them.
...@@ -1827,6 +1802,7 @@ class HostResolverImpl::Job : public PrioritizedDispatcher::Job, ...@@ -1827,6 +1802,7 @@ class HostResolverImpl::Job : public PrioritizedDispatcher::Job,
const base::TimeTicks creation_time_; const base::TimeTicks creation_time_;
base::TimeTicks priority_change_time_; base::TimeTicks priority_change_time_;
base::TimeTicks start_time_;
NetLogWithSource net_log_; NetLogWithSource net_log_;
......
...@@ -3731,6 +3731,9 @@ http://cs/file:chrome/histograms.xml - but prefer this file for new entries. ...@@ -3731,6 +3731,9 @@ http://cs/file:chrome/histograms.xml - but prefer this file for new entries.
</histogram> </histogram>
<histogram name="AsyncDNS.ResolveError" enum="NetErrorCodes"> <histogram name="AsyncDNS.ResolveError" enum="NetErrorCodes">
<obsolete>
Deprecated as of 9/2017. Replaced by Net.DNS.DnsTaskError.
</obsolete>
<owner>mgersh@chromium.org</owner> <owner>mgersh@chromium.org</owner>
<summary> <summary>
Counts of specific error codes returned by DnsTask if a subsequent ProcTask Counts of specific error codes returned by DnsTask if a subsequent ProcTask
...@@ -3739,6 +3742,9 @@ http://cs/file:chrome/histograms.xml - but prefer this file for new entries. ...@@ -3739,6 +3742,9 @@ http://cs/file:chrome/histograms.xml - but prefer this file for new entries.
</histogram> </histogram>
<histogram name="AsyncDNS.ResolveFail" units="ms"> <histogram name="AsyncDNS.ResolveFail" units="ms">
<obsolete>
Deprecated as of 9/2017. Replaced by Net.DNS.DnsTaskFail.
</obsolete>
<owner>mgersh@chromium.org</owner> <owner>mgersh@chromium.org</owner>
<summary> <summary>
Duration of time taken by DnsTask in resolutions that failed. Excludes time Duration of time taken by DnsTask in resolutions that failed. Excludes time
...@@ -3747,6 +3753,9 @@ http://cs/file:chrome/histograms.xml - but prefer this file for new entries. ...@@ -3747,6 +3753,9 @@ http://cs/file:chrome/histograms.xml - but prefer this file for new entries.
</histogram> </histogram>
<histogram name="AsyncDNS.ResolveStatus" enum="AsyncDNSResolveStatus"> <histogram name="AsyncDNS.ResolveStatus" enum="AsyncDNSResolveStatus">
<obsolete>
Deprecated as of 9/2017.
</obsolete>
<owner>mgersh@chromium.org</owner> <owner>mgersh@chromium.org</owner>
<summary> <summary>
Counts of the overall results of using asynchronous DNS in HostResolverImpl. Counts of the overall results of using asynchronous DNS in HostResolverImpl.
...@@ -3756,6 +3765,9 @@ http://cs/file:chrome/histograms.xml - but prefer this file for new entries. ...@@ -3756,6 +3765,9 @@ http://cs/file:chrome/histograms.xml - but prefer this file for new entries.
</histogram> </histogram>
<histogram name="AsyncDNS.ResolveSuccess" units="ms"> <histogram name="AsyncDNS.ResolveSuccess" units="ms">
<obsolete>
Deprecated as of 9/2017. Replaced by Net.DNS.DnsTaskSuccess.
</obsolete>
<owner>mgersh@chromium.org</owner> <owner>mgersh@chromium.org</owner>
<summary> <summary>
Duration of time taken by DnsTask in resolutions that succeeded. Duration of time taken by DnsTask in resolutions that succeeded.
...@@ -3763,6 +3775,9 @@ http://cs/file:chrome/histograms.xml - but prefer this file for new entries. ...@@ -3763,6 +3775,9 @@ http://cs/file:chrome/histograms.xml - but prefer this file for new entries.
</histogram> </histogram>
<histogram name="AsyncDNS.ResolveSuccess_FAMILY_IPV4" units="ms"> <histogram name="AsyncDNS.ResolveSuccess_FAMILY_IPV4" units="ms">
<obsolete>
Deprecated as of 9/2017. Replaced by Net.DNS.DnsTaskSuccess.
</obsolete>
<owner>mgersh@chromium.org</owner> <owner>mgersh@chromium.org</owner>
<summary> <summary>
Same as AsyncDNS.ResolveSuccess, but limited to pure IPv4 lookups. Same as AsyncDNS.ResolveSuccess, but limited to pure IPv4 lookups.
...@@ -3770,6 +3785,9 @@ http://cs/file:chrome/histograms.xml - but prefer this file for new entries. ...@@ -3770,6 +3785,9 @@ http://cs/file:chrome/histograms.xml - but prefer this file for new entries.
</histogram> </histogram>
<histogram name="AsyncDNS.ResolveSuccess_FAMILY_IPV6" units="ms"> <histogram name="AsyncDNS.ResolveSuccess_FAMILY_IPV6" units="ms">
<obsolete>
Deprecated as of 9/2017. Replaced by Net.DNS.DnsTaskSuccess.
</obsolete>
<owner>mgersh@chromium.org</owner> <owner>mgersh@chromium.org</owner>
<summary> <summary>
Same as AsyncDNS.ResolveSuccess, but limited to pure IPv6 lookups. Same as AsyncDNS.ResolveSuccess, but limited to pure IPv6 lookups.
...@@ -3777,6 +3795,9 @@ http://cs/file:chrome/histograms.xml - but prefer this file for new entries. ...@@ -3777,6 +3795,9 @@ http://cs/file:chrome/histograms.xml - but prefer this file for new entries.
</histogram> </histogram>
<histogram name="AsyncDNS.ResolveSuccess_FAMILY_UNSPEC" units="ms"> <histogram name="AsyncDNS.ResolveSuccess_FAMILY_UNSPEC" units="ms">
<obsolete>
Deprecated as of 9/2017. Replaced by Net.DNS.DnsTaskSuccess.
</obsolete>
<owner>mgersh@chromium.org</owner> <owner>mgersh@chromium.org</owner>
<summary> <summary>
Same as AsyncDNS.ResolveSuccess, but limited to IPv4/IPv6 lookups. Same as AsyncDNS.ResolveSuccess, but limited to IPv4/IPv6 lookups.
...@@ -14693,6 +14714,9 @@ http://cs/file:chrome/histograms.xml - but prefer this file for new entries. ...@@ -14693,6 +14714,9 @@ http://cs/file:chrome/histograms.xml - but prefer this file for new entries.
</histogram> </histogram>
<histogram name="DNS.ResolveCategory" enum="ResolutionCategory"> <histogram name="DNS.ResolveCategory" enum="ResolutionCategory">
<obsolete>
Deprecated as of 9/2017. Replaced by Net.DNS.ResolveCategory.
</obsolete>
<owner>mgersh@chromium.org</owner> <owner>mgersh@chromium.org</owner>
<summary> <summary>
Counts of successes and failures of OS resolutions in various categories. Counts of successes and failures of OS resolutions in various categories.
...@@ -14700,6 +14724,9 @@ http://cs/file:chrome/histograms.xml - but prefer this file for new entries. ...@@ -14700,6 +14724,9 @@ http://cs/file:chrome/histograms.xml - but prefer this file for new entries.
</histogram> </histogram>
<histogram name="DNS.ResolveFail" units="ms"> <histogram name="DNS.ResolveFail" units="ms">
<obsolete>
Deprecated as of 9/2017. Replaced by Net.DNS.ProcTaskFail.
</obsolete>
<owner>mgersh@chromium.org</owner> <owner>mgersh@chromium.org</owner>
<summary> <summary>
Duration of time taken in OS resolutions for actual navigations. Note that Duration of time taken in OS resolutions for actual navigations. Note that
...@@ -14708,21 +14735,33 @@ http://cs/file:chrome/histograms.xml - but prefer this file for new entries. ...@@ -14708,21 +14735,33 @@ http://cs/file:chrome/histograms.xml - but prefer this file for new entries.
</histogram> </histogram>
<histogram name="DNS.ResolveFail_FAMILY_IPV4" units="ms"> <histogram name="DNS.ResolveFail_FAMILY_IPV4" units="ms">
<obsolete>
Deprecated as of 9/2017. Replaced by Net.DNS.ProcTaskFail.
</obsolete>
<owner>mgersh@chromium.org</owner> <owner>mgersh@chromium.org</owner>
<summary>Same as DNS.ResolveFail, but limited to pure IPv4 lookups.</summary> <summary>Same as DNS.ResolveFail, but limited to pure IPv4 lookups.</summary>
</histogram> </histogram>
<histogram name="DNS.ResolveFail_FAMILY_IPV6" units="ms"> <histogram name="DNS.ResolveFail_FAMILY_IPV6" units="ms">
<obsolete>
Deprecated as of 9/2017. Replaced by Net.DNS.ProcTaskFail.
</obsolete>
<owner>mgersh@chromium.org</owner> <owner>mgersh@chromium.org</owner>
<summary>Same as DNS.ResolveFail, but limited to pure IPv6 lookups.</summary> <summary>Same as DNS.ResolveFail, but limited to pure IPv6 lookups.</summary>
</histogram> </histogram>
<histogram name="DNS.ResolveFail_FAMILY_UNSPEC" units="ms"> <histogram name="DNS.ResolveFail_FAMILY_UNSPEC" units="ms">
<obsolete>
Deprecated as of 9/2017. Replaced by Net.DNS.ProcTaskFail.
</obsolete>
<owner>mgersh@chromium.org</owner> <owner>mgersh@chromium.org</owner>
<summary>Same as DNS.ResolveFail, but limited to IPv4/IPv6 lookups.</summary> <summary>Same as DNS.ResolveFail, but limited to IPv4/IPv6 lookups.</summary>
</histogram> </histogram>
<histogram name="DNS.ResolveSpeculativeFail" units="ms"> <histogram name="DNS.ResolveSpeculativeFail" units="ms">
<obsolete>
Deprecated as of 9/2017. Replaced by Net.DNS.ProcTaskFail.
</obsolete>
<owner>mgersh@chromium.org</owner> <owner>mgersh@chromium.org</owner>
<summary> <summary>
Duration of time taken in speculative OS resolutions. Note that cached OS Duration of time taken in speculative OS resolutions. Note that cached OS
...@@ -14731,6 +14770,9 @@ http://cs/file:chrome/histograms.xml - but prefer this file for new entries. ...@@ -14731,6 +14770,9 @@ http://cs/file:chrome/histograms.xml - but prefer this file for new entries.
</histogram> </histogram>
<histogram name="DNS.ResolveSpeculativeSuccess" units="ms"> <histogram name="DNS.ResolveSpeculativeSuccess" units="ms">
<obsolete>
Deprecated as of 9/2017. Replaced by Net.DNS.ProcTaskSuccess.
</obsolete>
<owner>mgersh@chromium.org</owner> <owner>mgersh@chromium.org</owner>
<summary> <summary>
Duration of time taken in speculative OS resolution that succeeded. Note Duration of time taken in speculative OS resolution that succeeded. Note
...@@ -14739,6 +14781,9 @@ http://cs/file:chrome/histograms.xml - but prefer this file for new entries. ...@@ -14739,6 +14781,9 @@ http://cs/file:chrome/histograms.xml - but prefer this file for new entries.
</histogram> </histogram>
<histogram name="DNS.ResolveSuccess" units="ms"> <histogram name="DNS.ResolveSuccess" units="ms">
<obsolete>
Deprecated as of 9/2017. Replaced by Net.DNS.ProcTaskSuccess.
</obsolete>
<owner>mgersh@chromium.org</owner> <owner>mgersh@chromium.org</owner>
<summary> <summary>
Duration of time taken in OS resolutions that succeeded and were requested Duration of time taken in OS resolutions that succeeded and were requested
...@@ -14748,6 +14793,9 @@ http://cs/file:chrome/histograms.xml - but prefer this file for new entries. ...@@ -14748,6 +14793,9 @@ http://cs/file:chrome/histograms.xml - but prefer this file for new entries.
</histogram> </histogram>
<histogram name="DNS.ResolveSuccess_FAMILY_IPV4" units="ms"> <histogram name="DNS.ResolveSuccess_FAMILY_IPV4" units="ms">
<obsolete>
Deprecated as of 9/2017. Replaced by Net.DNS.ProcTaskSuccess.
</obsolete>
<owner>mgersh@chromium.org</owner> <owner>mgersh@chromium.org</owner>
<summary> <summary>
Same as DNS.ResolveSuccess, but limited to pure IPv4 lookups. Same as DNS.ResolveSuccess, but limited to pure IPv4 lookups.
...@@ -14755,6 +14803,9 @@ http://cs/file:chrome/histograms.xml - but prefer this file for new entries. ...@@ -14755,6 +14803,9 @@ http://cs/file:chrome/histograms.xml - but prefer this file for new entries.
</histogram> </histogram>
<histogram name="DNS.ResolveSuccess_FAMILY_IPV6" units="ms"> <histogram name="DNS.ResolveSuccess_FAMILY_IPV6" units="ms">
<obsolete>
Deprecated as of 9/2017. Replaced by Net.DNS.ProcTaskSuccess.
</obsolete>
<owner>mgersh@chromium.org</owner> <owner>mgersh@chromium.org</owner>
<summary> <summary>
Same as DNS.ResolveSuccess, but limited to pure IPv6 lookups. Same as DNS.ResolveSuccess, but limited to pure IPv6 lookups.
...@@ -14762,6 +14813,9 @@ http://cs/file:chrome/histograms.xml - but prefer this file for new entries. ...@@ -14762,6 +14813,9 @@ http://cs/file:chrome/histograms.xml - but prefer this file for new entries.
</histogram> </histogram>
<histogram name="DNS.ResolveSuccess_FAMILY_UNSPEC" units="ms"> <histogram name="DNS.ResolveSuccess_FAMILY_UNSPEC" units="ms">
<obsolete>
Deprecated as of 9/2017. Replaced by Net.DNS.ProcTaskSuccess.
</obsolete>
<owner>mgersh@chromium.org</owner> <owner>mgersh@chromium.org</owner>
<summary> <summary>
Same as DNS.ResolveSuccess, but limited to IPv4/IPv6 lookups. Same as DNS.ResolveSuccess, but limited to IPv4/IPv6 lookups.
...@@ -39593,6 +39647,29 @@ http://cs/file:chrome/histograms.xml - but prefer this file for new entries. ...@@ -39593,6 +39647,29 @@ http://cs/file:chrome/histograms.xml - but prefer this file for new entries.
</summary> </summary>
</histogram> </histogram>
<histogram name="Net.DNS.DnsTask.Errors" enum="NetErrorCodes">
<owner>mgersh@chromium.org</owner>
<summary>
Counts of specific error codes returned by DnsTask if a subsequent ProcTask
succeeded.
</summary>
</histogram>
<histogram name="Net.DNS.DnsTask.FailureTime" units="ms">
<owner>mgersh@chromium.org</owner>
<summary>
Duration of time taken by DnsTask in resolutions that failed. Excludes time
spent in the subsequent fallback.
</summary>
</histogram>
<histogram name="Net.DNS.DnsTask.SuccessTime" units="ms">
<owner>mgersh@chromium.org</owner>
<summary>
Duration of time taken by DnsTask in resolutions that succeeded.
</summary>
</histogram>
<histogram name="Net.DNS.JobQueueTime" units="ms"> <histogram name="Net.DNS.JobQueueTime" units="ms">
<owner>mgersh@chromium.org</owner> <owner>mgersh@chromium.org</owner>
<summary> <summary>
...@@ -39610,6 +39687,48 @@ http://cs/file:chrome/histograms.xml - but prefer this file for new entries. ...@@ -39610,6 +39687,48 @@ http://cs/file:chrome/histograms.xml - but prefer this file for new entries.
</summary> </summary>
</histogram> </histogram>
<histogram name="Net.DNS.ProcTask.FailureTime" units="ms">
<owner>mgersh@chromium.org</owner>
<summary>
Duration of time taken by ProcTask in resolutions that failed.
</summary>
</histogram>
<histogram name="Net.DNS.ProcTask.SuccessTime" units="ms">
<owner>mgersh@chromium.org</owner>
<summary>
Duration of time taken by ProcTask in resolutions that succeeded.
</summary>
</histogram>
<histogram name="Net.DNS.ResolveCategory" enum="ResolutionCategory">
<owner>mgersh@chromium.org</owner>
<summary>
Whether a DNS resolution (single HostResolverImpl::Job) succeeded or failed,
and whether it was speculative.
</summary>
</histogram>
<histogram name="Net.DNS.ResolveFailureTime" units="ms">
<owner>mgersh@chromium.org</owner>
<summary>
Duration of time taken by HostResolverImpl::Job in resolutions that failed.
This is the time to resolve a hostname from start to finish. The main
histogram and by-priority versions exclude speculative requests, which are
recorded in the _speculative version.
</summary>
</histogram>
<histogram name="Net.DNS.ResolveSuccessTime" units="ms">
<owner>mgersh@chromium.org</owner>
<summary>
Duration of time taken by HostResolverImpl::Job in resolutions that
succeeded. This is the time to resolve a hostname from start to finish. The
main histogram and by-priority versions exclude speculative requests, which
are recorded in the _speculative version.
</summary>
</histogram>
<histogram name="Net.DNS.TotalTime" units="ms"> <histogram name="Net.DNS.TotalTime" units="ms">
<owner>mgersh@chromium.org</owner> <owner>mgersh@chromium.org</owner>
<summary> <summary>
...@@ -98052,6 +98171,14 @@ http://cs/file:chrome/histograms.xml - but prefer this file for new entries. ...@@ -98052,6 +98171,14 @@ http://cs/file:chrome/histograms.xml - but prefer this file for new entries.
<affected-histogram name="Net.BidirectionalStream.TimeToSendStart"/> <affected-histogram name="Net.BidirectionalStream.TimeToSendStart"/>
</histogram_suffixes> </histogram_suffixes>
<histogram_suffixes name="Net.DNS.AddressFamily" separator=".">
<suffix name="IPV4" label="Requests for ADDRESS_FAMILY_IPV4."/>
<suffix name="IPV6" label="Requests for ADDRESS_FAMILY_IPV6."/>
<suffix name="UNSPEC" label="Requests for ADDRESS_FAMILY_UNSPEC."/>
<affected-histogram name="Net.DNS.ResolveFailureTime"/>
<affected-histogram name="Net.DNS.ResolveSuccessTime"/>
</histogram_suffixes>
<histogram_suffixes name="Net.DNS.Priorities" separator="."> <histogram_suffixes name="Net.DNS.Priorities" separator=".">
<suffix name="THROTTLED" label="Jobs with priority THROTTLED."/> <suffix name="THROTTLED" label="Jobs with priority THROTTLED."/>
<suffix name="IDLE" label="Jobs with priority IDLE."/> <suffix name="IDLE" label="Jobs with priority IDLE."/>
...@@ -98065,6 +98192,8 @@ http://cs/file:chrome/histograms.xml - but prefer this file for new entries. ...@@ -98065,6 +98192,8 @@ http://cs/file:chrome/histograms.xml - but prefer this file for new entries.
<histogram_suffixes name="Net.DNS.Speculative" separator="."> <histogram_suffixes name="Net.DNS.Speculative" separator=".">
<suffix name="Speculative" label="Speculative resolutions only."/> <suffix name="Speculative" label="Speculative resolutions only."/>
<affected-histogram name="Net.DNS.ResolveFailureTime"/>
<affected-histogram name="Net.DNS.ResolveSuccessTime"/>
<affected-histogram name="Net.DNS.TotalTime"/> <affected-histogram name="Net.DNS.TotalTime"/>
<affected-histogram name="Net.DNS.TotalTimeNotCached"/> <affected-histogram name="Net.DNS.TotalTimeNotCached"/>
</histogram_suffixes> </histogram_suffixes>
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment