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

Unified Diff: chrome/browser/metrics/variations/variations_service.cc

Issue 10996067: Measure and log the latency of VariationsService requests. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: rebase Created 8 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/metrics/variations/variations_service.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/metrics/variations/variations_service.cc
diff --git a/chrome/browser/metrics/variations/variations_service.cc b/chrome/browser/metrics/variations/variations_service.cc
index 87a4ed954a70370fbae8d7821860044d97a8eb2c..ec8b00594476dfec8199d18963b024bc76e7c522 100644
--- a/chrome/browser/metrics/variations/variations_service.cc
+++ b/chrome/browser/metrics/variations/variations_service.cc
@@ -96,6 +96,15 @@ GURL GetVariationsServerURL() {
return url_as_gurl;
}
+// Logs |latency| in the time histogram named |name|.
+void LogRequestLatency(const char* name, base::TimeDelta latency) {
+ UMA_HISTOGRAM_CUSTOM_TIMES(name,
Ilya Sherman 2012/10/02 21:09:33 This won't work. The name passed to any of the UM
Ilya Sherman 2012/10/02 21:09:33 nit: Why do we need custom times for this histogra
SteveT 2012/10/03 19:51:34 Darn, okay. It was odd that my testing seemed to w
SteveT 2012/10/03 19:51:34 I was following what how some Net code was measuri
+ latency,
+ base::TimeDelta::FromMilliseconds(1),
+ base::TimeDelta::FromMinutes(10),
+ 100);
+}
+
} // namespace
VariationsService::VariationsService()
@@ -183,6 +192,8 @@ void VariationsService::DoActualFetch() {
variations_serial_number_);
}
pending_seed_request_->Start();
+
+ last_request_started_time_ = base::TimeTicks::Now();
}
void VariationsService::FetchVariationsSeed() {
@@ -211,11 +222,19 @@ void VariationsService::OnURLFetchComplete(const net::URLFetcher* source) {
net::HttpUtil::MapStatusCodeForHistogram(request->GetResponseCode()),
net::HttpUtil::GetStatusCodesForHistogram());
+ const base::TimeDelta latency =
+ base::TimeTicks::Now() - last_request_started_time_;
+
if (request->GetResponseCode() != 200) {
DVLOG(1) << "Variations server request returned non-200 response code: "
<< request->GetResponseCode();
+ if (request->GetResponseCode() == 304)
+ LogRequestLatency("Variations.FetchNotModifiedLatency", latency);
+ else
+ LogRequestLatency("Variations.FetchOtherLatency", latency);
return;
}
+ LogRequestLatency("Variations.FetchSuccessLatency", latency);
std::string seed_data;
bool success = request->GetResponseAsString(&seed_data);
« no previous file with comments | « chrome/browser/metrics/variations/variations_service.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698