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

Unified Diff: content/browser/service_worker/service_worker_metrics.cc

Issue 2218943002: Introduce ServiceWorker.EventDispatchingDelay UMA (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: diff from https://codereview.chromium.org/2249063004/#ps40001 Created 4 years, 4 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
Index: content/browser/service_worker/service_worker_metrics.cc
diff --git a/content/browser/service_worker/service_worker_metrics.cc b/content/browser/service_worker/service_worker_metrics.cc
index 3f724500f50e536f83965e8fa9ba1be83786488d..8d3a43bbdfde681cff9d0b0e86c3a68184743444 100644
--- a/content/browser/service_worker/service_worker_metrics.cc
+++ b/content/browser/service_worker/service_worker_metrics.cc
@@ -110,12 +110,47 @@ std::string GetWorkerPreparationSuffix(
return "_UNKNOWN";
}
+std::string GetSiteSuffix(ServiceWorkerMetrics::Site site) {
+ switch (site) {
+ case ServiceWorkerMetrics::Site::OTHER:
+ case ServiceWorkerMetrics::Site::WITH_FETCH_HANDLER:
+ case ServiceWorkerMetrics::Site::WITHOUT_FETCH_HANDLER:
+ return "";
+ case ServiceWorkerMetrics::Site::NEW_TAB_PAGE:
+ return ".ntp";
+ case ServiceWorkerMetrics::Site::PLUS:
+ return ".plus";
+ case ServiceWorkerMetrics::Site::INBOX:
+ return ".inbox";
+ case ServiceWorkerMetrics::Site::DOCS:
+ return ".docs";
+ case ServiceWorkerMetrics::Site::NUM_TYPES:
+ NOTREACHED() << static_cast<int>(site);
+ }
+ NOTREACHED();
+ return "";
+}
+
// Use this for histograms with dynamically generated names, which
// otherwise can't use the UMA_HISTOGRAM macro without code duplication.
void RecordSuffixedTimeHistogram(const std::string& name,
const std::string& suffix,
base::TimeDelta sample) {
const std::string name_with_suffix = name + suffix;
+ // This unrolls UMA_HISTOGRAM_TIMES.
+ base::HistogramBase* histogram_pointer = base::Histogram::FactoryTimeGet(
+ name_with_suffix, base::TimeDelta::FromMilliseconds(1),
+ base::TimeDelta::FromSeconds(10), 50,
+ base::HistogramBase::kUmaTargetedHistogramFlag);
+ histogram_pointer->AddTime(sample);
+}
+
+// Use this for histograms with dynamically generated names, which
+// otherwise can't use the UMA_MEDIUM_HISTOGRAM macro without code duplication.
+void RecordSuffixedMediumTimeHistogram(const std::string& name,
+ const std::string& suffix,
+ base::TimeDelta sample) {
+ const std::string name_with_suffix = name + suffix;
// This unrolls UMA_HISTOGRAM_MEDIUM_TIMES.
base::HistogramBase* histogram_pointer = base::Histogram::FactoryTimeGet(
name_with_suffix, base::TimeDelta::FromMilliseconds(10),
@@ -336,9 +371,9 @@ void ServiceWorkerMetrics::RecordStartWorkerTime(base::TimeDelta time,
if (is_installed) {
std::string name = "ServiceWorker.StartWorker.Time";
UMA_HISTOGRAM_MEDIUM_TIMES(name, time);
- RecordSuffixedTimeHistogram(name, StartSituationToSuffix(start_situation),
- time);
- RecordSuffixedTimeHistogram(
+ RecordSuffixedMediumTimeHistogram(
+ name, StartSituationToSuffix(start_situation), time);
+ RecordSuffixedMediumTimeHistogram(
"ServiceWorker.StartWorker.Time",
StartSituationToSuffix(start_situation) + EventTypeToSuffix(purpose),
time);
@@ -354,7 +389,7 @@ void ServiceWorkerMetrics::RecordActivatedWorkerPreparationTimeForMainFrame(
std::string name =
"ServiceWorker.ActivatedWorkerPreparationForMainFrame.Time";
UMA_HISTOGRAM_MEDIUM_TIMES(name, time);
- RecordSuffixedTimeHistogram(
+ RecordSuffixedMediumTimeHistogram(
name, GetWorkerPreparationSuffix(initial_worker_status, start_situation),
time);
}
@@ -420,6 +455,16 @@ void ServiceWorkerMetrics::RecordEventHandledRatio(EventType event,
}
}
+void ServiceWorkerMetrics::RecordFetchEventDispatchingDelay(
shimazu 2016/08/18 04:58:53 I think this could be open to other events. If do
horo 2016/08/22 14:57:35 Done.
+ base::TimeDelta time,
+ Site site_for_metrics) {
+ const std::string name = "ServiceWorker.FetchEvent.DispatchingDelay";
+ UMA_HISTOGRAM_TIMES(name, time);
+ const std::string site_suffix = GetSiteSuffix(site_for_metrics);
+ if (!site_suffix.empty())
+ RecordSuffixedTimeHistogram(name, site_suffix, time);
+}
+
void ServiceWorkerMetrics::RecordNavigationHintPrecision(
EventType start_worker_purpose,
bool frame_fetch_event_fired) {
@@ -581,16 +626,16 @@ void ServiceWorkerMetrics::RecordTimeToSendStartWorker(
StartSituation situation) {
std::string name = "EmbeddedWorkerInstance.Start.TimeToSendStartWorker";
UMA_HISTOGRAM_MEDIUM_TIMES(name, duration);
- RecordSuffixedTimeHistogram(name, StartSituationToSuffix(situation),
- duration);
+ RecordSuffixedMediumTimeHistogram(name, StartSituationToSuffix(situation),
+ duration);
}
void ServiceWorkerMetrics::RecordTimeToURLJob(base::TimeDelta duration,
StartSituation situation) {
std::string name = "EmbeddedWorkerInstance.Start.TimeToURLJob";
UMA_HISTOGRAM_MEDIUM_TIMES(name, duration);
- RecordSuffixedTimeHistogram(name, StartSituationToSuffix(situation),
- duration);
+ RecordSuffixedMediumTimeHistogram(name, StartSituationToSuffix(situation),
+ duration);
}
void ServiceWorkerMetrics::RecordTimeToLoad(base::TimeDelta duration,
@@ -601,20 +646,20 @@ void ServiceWorkerMetrics::RecordTimeToLoad(base::TimeDelta duration,
case LoadSource::NETWORK:
name = "EmbeddedWorkerInstance.Start.TimeToLoad.Network";
UMA_HISTOGRAM_MEDIUM_TIMES(name, duration);
- RecordSuffixedTimeHistogram(name, StartSituationToSuffix(situation),
- duration);
+ RecordSuffixedMediumTimeHistogram(name, StartSituationToSuffix(situation),
+ duration);
break;
case LoadSource::HTTP_CACHE:
name = "EmbeddedWorkerInstance.Start.TimeToLoad.HttpCache";
UMA_HISTOGRAM_MEDIUM_TIMES(name, duration);
- RecordSuffixedTimeHistogram(name, StartSituationToSuffix(situation),
- duration);
+ RecordSuffixedMediumTimeHistogram(name, StartSituationToSuffix(situation),
+ duration);
break;
case LoadSource::SERVICE_WORKER_STORAGE:
name = "EmbeddedWorkerInstance.Start.TimeToLoad.InstalledScript";
UMA_HISTOGRAM_MEDIUM_TIMES(name, duration);
- RecordSuffixedTimeHistogram(name, StartSituationToSuffix(situation),
- duration);
+ RecordSuffixedMediumTimeHistogram(name, StartSituationToSuffix(situation),
+ duration);
break;
default:
NOTREACHED() << static_cast<int>(source);
@@ -625,8 +670,8 @@ void ServiceWorkerMetrics::RecordTimeToStartThread(base::TimeDelta duration,
StartSituation situation) {
std::string name = "EmbeddedWorkerInstance.Start.TimeToStartThread";
UMA_HISTOGRAM_MEDIUM_TIMES(name, duration);
- RecordSuffixedTimeHistogram(name, StartSituationToSuffix(situation),
- duration);
+ RecordSuffixedMediumTimeHistogram(name, StartSituationToSuffix(situation),
+ duration);
}
void ServiceWorkerMetrics::RecordTimeToEvaluateScript(
@@ -634,8 +679,8 @@ void ServiceWorkerMetrics::RecordTimeToEvaluateScript(
StartSituation situation) {
std::string name = "EmbeddedWorkerInstance.Start.TimeToEvaluateScript";
UMA_HISTOGRAM_MEDIUM_TIMES(name, duration);
- RecordSuffixedTimeHistogram(name, StartSituationToSuffix(situation),
- duration);
+ RecordSuffixedMediumTimeHistogram(name, StartSituationToSuffix(situation),
+ duration);
}
const char* ServiceWorkerMetrics::LoadSourceToString(LoadSource source) {

Powered by Google App Engine
This is Rietveld 408576698