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

Side by Side Diff: content/browser/service_worker/service_worker_metrics.cc

Issue 1795863006: service worker: Attribute purpose to start worker attempts for UMA (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: patch for landing? Created 4 years, 9 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "content/browser/service_worker/service_worker_metrics.h" 5 #include "content/browser/service_worker/service_worker_metrics.h"
6 6
7 #include "base/metrics/histogram_macros.h" 7 #include "base/metrics/histogram_macros.h"
8 #include "base/metrics/sparse_histogram.h" 8 #include "base/metrics/sparse_histogram.h"
9 #include "base/strings/string_util.h" 9 #include "base/strings/string_util.h"
10 #include "content/common/service_worker/service_worker_types.h" 10 #include "content/common/service_worker/service_worker_types.h"
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
61 case EventType::NOTIFICATION_CLOSE: 61 case EventType::NOTIFICATION_CLOSE:
62 return "Notification Close"; 62 return "Notification Close";
63 case EventType::PUSH: 63 case EventType::PUSH:
64 return "Push"; 64 return "Push";
65 case EventType::GEOFENCING: 65 case EventType::GEOFENCING:
66 return "Geofencing"; 66 return "Geofencing";
67 case EventType::SERVICE_PORT_CONNECT: 67 case EventType::SERVICE_PORT_CONNECT:
68 return "Service Port Connect"; 68 return "Service Port Connect";
69 case EventType::MESSAGE: 69 case EventType::MESSAGE:
70 return "Message"; 70 return "Message";
71 case EventType::FETCH_MAIN_FRAME:
72 return "Fetch Main Frame";
73 case EventType::FETCH_SUB_FRAME:
74 return "Fetch Sub Frame";
75 case EventType::FETCH_SHARED_WORKER:
76 return "Fetch Shared Worker";
77 case EventType::FETCH_SUB_RESOURCE:
78 return "Fetch Subresource";
79 case EventType::UNKNOWN:
80 return "Unknown";
71 case EventType::NUM_TYPES: 81 case EventType::NUM_TYPES:
72 break; 82 break;
73 } 83 }
74 NOTREACHED() << "Got unexpected event type: " << static_cast<int>(event_type); 84 NOTREACHED() << "Got unexpected event type: " << static_cast<int>(event_type);
75 return "Unknown"; 85 return "error";
76 } 86 }
77 87
78 bool ServiceWorkerMetrics::ShouldExcludeSiteFromHistogram(Site site) { 88 bool ServiceWorkerMetrics::ShouldExcludeSiteFromHistogram(Site site) {
79 return site == ServiceWorkerMetrics::Site::NEW_TAB_PAGE; 89 return site == ServiceWorkerMetrics::Site::NEW_TAB_PAGE;
80 } 90 }
81 91
82 bool ServiceWorkerMetrics::ShouldExcludeURLFromHistogram(const GURL& url) { 92 bool ServiceWorkerMetrics::ShouldExcludeURLFromHistogram(const GURL& url) {
83 return ShouldExcludeSiteFromHistogram(SiteFromURL(url)); 93 return ShouldExcludeSiteFromHistogram(SiteFromURL(url));
84 } 94 }
85 95
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
140 static_cast<int>(Site::NUM_TYPES)); 150 static_cast<int>(Site::NUM_TYPES));
141 151
142 if (ShouldExcludeSiteFromHistogram(site)) 152 if (ShouldExcludeSiteFromHistogram(site))
143 return; 153 return;
144 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, 154 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE,
145 base::Bind(&RecordURLMetricOnUI, url)); 155 base::Bind(&RecordURLMetricOnUI, url));
146 } 156 }
147 157
148 void ServiceWorkerMetrics::RecordStartWorkerStatus( 158 void ServiceWorkerMetrics::RecordStartWorkerStatus(
149 ServiceWorkerStatusCode status, 159 ServiceWorkerStatusCode status,
160 EventType purpose,
150 bool is_installed) { 161 bool is_installed) {
151 if (is_installed) { 162 if (is_installed) {
152 UMA_HISTOGRAM_ENUMERATION("ServiceWorker.StartWorker.Status", status, 163 UMA_HISTOGRAM_ENUMERATION("ServiceWorker.StartWorker.Status", status,
153 SERVICE_WORKER_ERROR_MAX_VALUE); 164 SERVICE_WORKER_ERROR_MAX_VALUE);
165 UMA_HISTOGRAM_ENUMERATION("ServiceWorker.StartWorker.Purpose",
166 static_cast<int>(purpose),
167 static_cast<int>(EventType::NUM_TYPES));
168 if (status == SERVICE_WORKER_ERROR_TIMEOUT) {
169 UMA_HISTOGRAM_ENUMERATION(
170 "ServiceWorker.StartWorker.Timeout.StartPurpose",
171 static_cast<int>(purpose), static_cast<int>(EventType::NUM_TYPES));
172 }
154 } else { 173 } else {
155 UMA_HISTOGRAM_ENUMERATION("ServiceWorker.StartNewWorker.Status", status, 174 UMA_HISTOGRAM_ENUMERATION("ServiceWorker.StartNewWorker.Status", status,
156 SERVICE_WORKER_ERROR_MAX_VALUE); 175 SERVICE_WORKER_ERROR_MAX_VALUE);
157 } 176 }
158 } 177 }
159 178
160 void ServiceWorkerMetrics::RecordStartWorkerTime(const base::TimeDelta& time, 179 void ServiceWorkerMetrics::RecordStartWorkerTime(const base::TimeDelta& time,
161 bool is_installed) { 180 bool is_installed) {
162 if (is_installed) 181 if (is_installed)
163 UMA_HISTOGRAM_MEDIUM_TIMES("ServiceWorker.StartWorker.Time", time); 182 UMA_HISTOGRAM_MEDIUM_TIMES("ServiceWorker.StartWorker.Time", time);
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
215 const base::TimeDelta& time, 234 const base::TimeDelta& time,
216 bool was_handled) { 235 bool was_handled) {
217 switch (event) { 236 switch (event) {
218 case EventType::ACTIVATE: 237 case EventType::ACTIVATE:
219 UMA_HISTOGRAM_MEDIUM_TIMES("ServiceWorker.ActivateEvent.Time", time); 238 UMA_HISTOGRAM_MEDIUM_TIMES("ServiceWorker.ActivateEvent.Time", time);
220 break; 239 break;
221 case EventType::INSTALL: 240 case EventType::INSTALL:
222 UMA_HISTOGRAM_MEDIUM_TIMES("ServiceWorker.InstallEvent.Time", time); 241 UMA_HISTOGRAM_MEDIUM_TIMES("ServiceWorker.InstallEvent.Time", time);
223 break; 242 break;
224 case EventType::FETCH: 243 case EventType::FETCH:
244 case EventType::FETCH_MAIN_FRAME:
245 case EventType::FETCH_SUB_FRAME:
246 case EventType::FETCH_SHARED_WORKER:
247 case EventType::FETCH_SUB_RESOURCE:
225 if (was_handled) { 248 if (was_handled) {
226 UMA_HISTOGRAM_MEDIUM_TIMES("ServiceWorker.FetchEvent.HasResponse.Time", 249 UMA_HISTOGRAM_MEDIUM_TIMES("ServiceWorker.FetchEvent.HasResponse.Time",
227 time); 250 time);
228 } else { 251 } else {
229 UMA_HISTOGRAM_MEDIUM_TIMES("ServiceWorker.FetchEvent.Fallback.Time", 252 UMA_HISTOGRAM_MEDIUM_TIMES("ServiceWorker.FetchEvent.Fallback.Time",
230 time); 253 time);
231 } 254 }
232 break; 255 break;
233 case EventType::SYNC: 256 case EventType::SYNC:
234 UMA_HISTOGRAM_MEDIUM_TIMES("ServiceWorker.BackgroundSyncEvent.Time", 257 UMA_HISTOGRAM_MEDIUM_TIMES("ServiceWorker.BackgroundSyncEvent.Time",
(...skipping 13 matching lines...) Expand all
248 case EventType::MESSAGE: 271 case EventType::MESSAGE:
249 // TODO(nhiroki): Record event duration for Message event after 272 // TODO(nhiroki): Record event duration for Message event after
250 // ExtendableMessageEvent is enabled by default (crbug.com/543198). 273 // ExtendableMessageEvent is enabled by default (crbug.com/543198).
251 break; 274 break;
252 275
253 // For now event duration for these events is not recorded. 276 // For now event duration for these events is not recorded.
254 case EventType::GEOFENCING: 277 case EventType::GEOFENCING:
255 case EventType::SERVICE_PORT_CONNECT: 278 case EventType::SERVICE_PORT_CONNECT:
256 break; 279 break;
257 280
281 case EventType::UNKNOWN:
258 case EventType::NUM_TYPES: 282 case EventType::NUM_TYPES:
259 NOTREACHED() << "Invalid event type"; 283 NOTREACHED() << "Invalid event type";
260 break; 284 break;
261 } 285 }
262 } 286 }
263 287
264 void ServiceWorkerMetrics::RecordFetchEventStatus( 288 void ServiceWorkerMetrics::RecordFetchEventStatus(
265 bool is_main_resource, 289 bool is_main_resource,
266 ServiceWorkerStatusCode status) { 290 ServiceWorkerStatusCode status) {
267 if (is_main_resource) { 291 if (is_main_resource) {
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
303 UMA_HISTOGRAM_ENUMERATION("ServiceWorker.URLRequestJob.FallbackedRequestMode", 327 UMA_HISTOGRAM_ENUMERATION("ServiceWorker.URLRequestJob.FallbackedRequestMode",
304 mode, FETCH_REQUEST_MODE_LAST + 1); 328 mode, FETCH_REQUEST_MODE_LAST + 1);
305 } 329 }
306 330
307 void ServiceWorkerMetrics::RecordTimeBetweenEvents( 331 void ServiceWorkerMetrics::RecordTimeBetweenEvents(
308 const base::TimeDelta& time) { 332 const base::TimeDelta& time) {
309 UMA_HISTOGRAM_MEDIUM_TIMES("ServiceWorker.TimeBetweenEvents", time); 333 UMA_HISTOGRAM_MEDIUM_TIMES("ServiceWorker.TimeBetweenEvents", time);
310 } 334 }
311 335
312 } // namespace content 336 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698