Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 "components/offline_pages/background/request_coordinator.h" | 5 #include "components/offline_pages/background/request_coordinator.h" |
| 6 | 6 |
| 7 #include <limits> | 7 #include <limits> |
| 8 #include <string> | 8 #include <string> |
| 9 #include <utility> | 9 #include <utility> |
| 10 #include <vector> | 10 #include <vector> |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 67 // one to record samples in seconds rather than milliseconds. | 67 // one to record samples in seconds rather than milliseconds. |
| 68 base::HistogramBase* histogram = base::Histogram::FactoryGet( | 68 base::HistogramBase* histogram = base::Histogram::FactoryGet( |
| 69 AddHistogramSuffix(client_id, "OfflinePages.Background.TimeToSaved"), | 69 AddHistogramSuffix(client_id, "OfflinePages.Background.TimeToSaved"), |
| 70 kMinDurationSeconds, kMaxDurationSeconds, kDurationBuckets, | 70 kMinDurationSeconds, kMaxDurationSeconds, kDurationBuckets, |
| 71 base::HistogramBase::kUmaTargetedHistogramFlag); | 71 base::HistogramBase::kUmaTargetedHistogramFlag); |
| 72 base::TimeDelta duration = base::Time::Now() - request_creation_time; | 72 base::TimeDelta duration = base::Time::Now() - request_creation_time; |
| 73 histogram->Add(duration.InSeconds()); | 73 histogram->Add(duration.InSeconds()); |
| 74 } | 74 } |
| 75 } | 75 } |
| 76 | 76 |
| 77 void RecordStartTimeUMA(const SavePageRequest& request) { | |
| 78 std::string histogram_name("OfflinePages.Background.TimeToStart"); | |
| 79 if (base::SysInfo::IsLowEndDevice()) { | |
| 80 histogram_name += ".Svelte"; | |
| 81 } | |
| 82 | |
| 83 // The histogram below is an expansion of the UMA_HISTOGRAM_CUSTOM_TIMES | |
| 84 // macro adapted to allow for a dynamically suffixed histogram name. | |
| 85 // Note: The factory creates and owns the histogram. | |
| 86 base::HistogramBase* histogram = base::Histogram::FactoryTimeGet( | |
| 87 AddHistogramSuffix(request.client_id(), histogram_name.c_str()), | |
| 88 base::TimeDelta::FromMilliseconds(100), base::TimeDelta::FromDays(7), 50, | |
|
Dmitry Titov
2016/10/21 18:30:25
This will have second bucket that would take every
dougarnett
2016/10/21 23:16:38
I thought this one would give exponential buckets
dougarnett
2016/10/21 23:28:52
Code doc here: https://cs.chromium.org/chromium/sr
| |
| 89 base::HistogramBase::kUmaTargetedHistogramFlag); | |
| 90 base::TimeDelta duration = base::Time::Now() - request.creation_time(); | |
| 91 histogram->AddTime(duration); | |
| 92 } | |
| 93 | |
| 77 void RecordCancelTimeUMA(const SavePageRequest& canceled_request) { | 94 void RecordCancelTimeUMA(const SavePageRequest& canceled_request) { |
| 78 // Using regular histogram (with dynamic suffix) rather than time-oriented | 95 // Using regular histogram (with dynamic suffix) rather than time-oriented |
| 79 // one to record samples in seconds rather than milliseconds. | 96 // one to record samples in seconds rather than milliseconds. |
| 80 base::HistogramBase* histogram = base::Histogram::FactoryGet( | 97 base::HistogramBase* histogram = base::Histogram::FactoryGet( |
| 81 AddHistogramSuffix(canceled_request.client_id(), | 98 AddHistogramSuffix(canceled_request.client_id(), |
| 82 "OfflinePages.Background.TimeToCanceled"), | 99 "OfflinePages.Background.TimeToCanceled"), |
| 83 kMinDurationSeconds, kMaxDurationSeconds, kDurationBuckets, | 100 kMinDurationSeconds, kMaxDurationSeconds, kDurationBuckets, |
| 84 base::HistogramBase::kUmaTargetedHistogramFlag); | 101 base::HistogramBase::kUmaTargetedHistogramFlag); |
| 85 base::TimeDelta duration = | 102 base::TimeDelta duration = |
| 86 base::Time::Now() - canceled_request.creation_time(); | 103 base::Time::Now() - canceled_request.creation_time(); |
| (...skipping 453 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 540 GetOffliner(); | 557 GetOffliner(); |
| 541 if (!offliner_) { | 558 if (!offliner_) { |
| 542 DVLOG(0) << "Unable to create Offliner. " | 559 DVLOG(0) << "Unable to create Offliner. " |
| 543 << "Cannot background offline page."; | 560 << "Cannot background offline page."; |
| 544 return; | 561 return; |
| 545 } | 562 } |
| 546 | 563 |
| 547 DCHECK(!is_busy_); | 564 DCHECK(!is_busy_); |
| 548 is_busy_ = true; | 565 is_busy_ = true; |
| 549 | 566 |
| 567 // Record start time if this is first attempt. | |
| 568 if (request.started_attempt_count() == 0) { | |
| 569 RecordStartTimeUMA(request); | |
| 570 } | |
| 571 | |
| 550 // Mark attempt started in the database and start offliner when completed. | 572 // Mark attempt started in the database and start offliner when completed. |
| 551 queue_->MarkAttemptStarted( | 573 queue_->MarkAttemptStarted( |
| 552 request.request_id(), | 574 request.request_id(), |
| 553 base::Bind(&RequestCoordinator::StartOffliner, | 575 base::Bind(&RequestCoordinator::StartOffliner, |
| 554 weak_ptr_factory_.GetWeakPtr(), request.request_id(), | 576 weak_ptr_factory_.GetWeakPtr(), request.request_id(), |
| 555 request.client_id().name_space)); | 577 request.client_id().name_space)); |
| 556 } | 578 } |
| 557 | 579 |
| 558 void RequestCoordinator::StartOffliner( | 580 void RequestCoordinator::StartOffliner( |
| 559 int64_t request_id, | 581 int64_t request_id, |
| (...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 750 | 772 |
| 751 ClientPolicyController* RequestCoordinator::GetPolicyController() { | 773 ClientPolicyController* RequestCoordinator::GetPolicyController() { |
| 752 return policy_controller_.get(); | 774 return policy_controller_.get(); |
| 753 } | 775 } |
| 754 | 776 |
| 755 void RequestCoordinator::Shutdown() { | 777 void RequestCoordinator::Shutdown() { |
| 756 network_quality_estimator_ = nullptr; | 778 network_quality_estimator_ = nullptr; |
| 757 } | 779 } |
| 758 | 780 |
| 759 } // namespace offline_pages | 781 } // namespace offline_pages |
| OLD | NEW |