Chromium Code Reviews| 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); |