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

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

Issue 1921503003: service worker: Add UMA for start status grouped by start purpose. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rm extraneous file Created 4 years, 8 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 <limits> 7 #include <limits>
8 #include <string> 8 #include <string>
9 9
10 #include "base/metrics/histogram_macros.h" 10 #include "base/metrics/histogram_macros.h"
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
101 case EventType::FETCH_SUB_FRAME: 101 case EventType::FETCH_SUB_FRAME:
102 return "Fetch Sub Frame"; 102 return "Fetch Sub Frame";
103 case EventType::FETCH_SHARED_WORKER: 103 case EventType::FETCH_SHARED_WORKER:
104 return "Fetch Shared Worker"; 104 return "Fetch Shared Worker";
105 case EventType::FETCH_SUB_RESOURCE: 105 case EventType::FETCH_SUB_RESOURCE:
106 return "Fetch Subresource"; 106 return "Fetch Subresource";
107 case EventType::UNKNOWN: 107 case EventType::UNKNOWN:
108 return "Unknown"; 108 return "Unknown";
109 case EventType::FOREIGN_FETCH: 109 case EventType::FOREIGN_FETCH:
110 return "Foreign Fetch"; 110 return "Foreign Fetch";
111 case EventType::DEPRECATED_FETCH:
112 case EventType::NUM_TYPES: 111 case EventType::NUM_TYPES:
113 break; 112 break;
114 } 113 }
115 NOTREACHED() << "Got unexpected event type: " << static_cast<int>(event_type); 114 NOTREACHED() << "Got unexpected event type: " << static_cast<int>(event_type);
116 return "error"; 115 return "error";
117 } 116 }
118 117
119 bool ServiceWorkerMetrics::ShouldExcludeSiteFromHistogram(Site site) { 118 bool ServiceWorkerMetrics::ShouldExcludeSiteFromHistogram(Site site) {
120 return site == ServiceWorkerMetrics::Site::NEW_TAB_PAGE; 119 return site == ServiceWorkerMetrics::Site::NEW_TAB_PAGE;
121 } 120 }
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
183 if (ShouldExcludeSiteFromHistogram(site)) 182 if (ShouldExcludeSiteFromHistogram(site))
184 return; 183 return;
185 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, 184 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE,
186 base::Bind(&RecordURLMetricOnUI, url)); 185 base::Bind(&RecordURLMetricOnUI, url));
187 } 186 }
188 187
189 void ServiceWorkerMetrics::RecordStartWorkerStatus( 188 void ServiceWorkerMetrics::RecordStartWorkerStatus(
190 ServiceWorkerStatusCode status, 189 ServiceWorkerStatusCode status,
191 EventType purpose, 190 EventType purpose,
192 bool is_installed) { 191 bool is_installed) {
193 if (is_installed) { 192 if (!is_installed) {
194 UMA_HISTOGRAM_ENUMERATION("ServiceWorker.StartWorker.Status", status, 193 UMA_HISTOGRAM_ENUMERATION("ServiceWorker.StartNewWorker.Status", status,
195 SERVICE_WORKER_ERROR_MAX_VALUE); 194 SERVICE_WORKER_ERROR_MAX_VALUE);
196 UMA_HISTOGRAM_ENUMERATION("ServiceWorker.StartWorker.Purpose", 195 return;
196 }
197
198 UMA_HISTOGRAM_ENUMERATION("ServiceWorker.StartWorker.Status", status,
199 SERVICE_WORKER_ERROR_MAX_VALUE);
200 switch (purpose) {
201 case EventType::ACTIVATE:
202 UMA_HISTOGRAM_ENUMERATION(
203 "ServiceWorker.StartWorker.StatusByPurpose_ACTIVATE", status,
204 SERVICE_WORKER_ERROR_MAX_VALUE);
205 break;
206 case EventType::INSTALL:
207 UMA_HISTOGRAM_ENUMERATION(
208 "ServiceWorker.StartWorker.StatusByPurpose_INSTALL", status,
209 SERVICE_WORKER_ERROR_MAX_VALUE);
210 break;
211 case EventType::SYNC:
212 UMA_HISTOGRAM_ENUMERATION(
213 "ServiceWorker.StartWorker.StatusByPurpose_SYNC", status,
214 SERVICE_WORKER_ERROR_MAX_VALUE);
215 break;
216 case EventType::NOTIFICATION_CLICK:
217 UMA_HISTOGRAM_ENUMERATION(
218 "ServiceWorker.StartWorker.StatusByPurpose_NOTIFICATION_CLICK",
219 status, SERVICE_WORKER_ERROR_MAX_VALUE);
220 break;
221 case EventType::PUSH:
222 UMA_HISTOGRAM_ENUMERATION(
223 "ServiceWorker.StartWorker.StatusByPurpose_PUSH", status,
224 SERVICE_WORKER_ERROR_MAX_VALUE);
225 break;
226 case EventType::GEOFENCING:
227 UMA_HISTOGRAM_ENUMERATION(
228 "ServiceWorker.StartWorker.StatusByPurpose_GEOFENCING", status,
229 SERVICE_WORKER_ERROR_MAX_VALUE);
230 break;
231 case EventType::MESSAGE:
232 UMA_HISTOGRAM_ENUMERATION(
233 "ServiceWorker.StartWorker.StatusByPurpose_MESSAGE", status,
234 SERVICE_WORKER_ERROR_MAX_VALUE);
235 break;
236 case EventType::NOTIFICATION_CLOSE:
237 UMA_HISTOGRAM_ENUMERATION(
238 "ServiceWorker.StartWorker.StatusByPurpose_NOTIFICATION_CLOSE",
239 status, SERVICE_WORKER_ERROR_MAX_VALUE);
240 break;
241 case EventType::FETCH_MAIN_FRAME:
242 UMA_HISTOGRAM_ENUMERATION(
243 "ServiceWorker.StartWorker.StatusByPurpose_FETCH_MAIN_FRAME", status,
244 SERVICE_WORKER_ERROR_MAX_VALUE);
245 break;
246 case EventType::FETCH_SUB_FRAME:
247 UMA_HISTOGRAM_ENUMERATION(
248 "ServiceWorker.StartWorker.StatusByPurpose_FETCH_SUB_FRAME", status,
249 SERVICE_WORKER_ERROR_MAX_VALUE);
250 break;
251 case EventType::FETCH_SHARED_WORKER:
252 UMA_HISTOGRAM_ENUMERATION(
253 "ServiceWorker.StartWorker.StatusByPurpose_FETCH_SHARED_WORKER",
254 status, SERVICE_WORKER_ERROR_MAX_VALUE);
255 break;
256 case EventType::FETCH_SUB_RESOURCE:
257 UMA_HISTOGRAM_ENUMERATION(
258 "ServiceWorker.StartWorker.StatusByPurpose_FETCH_SUB_RESOURCE",
259 status, SERVICE_WORKER_ERROR_MAX_VALUE);
260 break;
261 case EventType::UNKNOWN:
262 UMA_HISTOGRAM_ENUMERATION(
263 "ServiceWorker.StartWorker.StatusByPurpose_UNKNOWN", status,
264 SERVICE_WORKER_ERROR_MAX_VALUE);
265 break;
266 case EventType::FOREIGN_FETCH:
267 UMA_HISTOGRAM_ENUMERATION(
268 "ServiceWorker.StartWorker.StatusByPurpose_FOREIGN_FETCH", status,
269 SERVICE_WORKER_ERROR_MAX_VALUE);
270 break;
271 case EventType::NUM_TYPES:
272 NOTREACHED();
273 break;
274 }
275
276 UMA_HISTOGRAM_ENUMERATION("ServiceWorker.StartWorker.Purpose",
277 static_cast<int>(purpose),
278 static_cast<int>(EventType::NUM_TYPES));
279 if (status == SERVICE_WORKER_ERROR_TIMEOUT) {
280 UMA_HISTOGRAM_ENUMERATION("ServiceWorker.StartWorker.Timeout.StartPurpose",
197 static_cast<int>(purpose), 281 static_cast<int>(purpose),
198 static_cast<int>(EventType::NUM_TYPES)); 282 static_cast<int>(EventType::NUM_TYPES));
199 if (status == SERVICE_WORKER_ERROR_TIMEOUT) {
200 UMA_HISTOGRAM_ENUMERATION(
201 "ServiceWorker.StartWorker.Timeout.StartPurpose",
202 static_cast<int>(purpose), static_cast<int>(EventType::NUM_TYPES));
203 }
204 } else {
205 UMA_HISTOGRAM_ENUMERATION("ServiceWorker.StartNewWorker.Status", status,
206 SERVICE_WORKER_ERROR_MAX_VALUE);
207 } 283 }
208 } 284 }
209 285
210 void ServiceWorkerMetrics::RecordStartWorkerTime( 286 void ServiceWorkerMetrics::RecordStartWorkerTime(
211 base::TimeDelta time, 287 base::TimeDelta time,
212 bool is_installed, 288 bool is_installed,
213 StartSituation start_situation) { 289 StartSituation start_situation) {
214 if (is_installed) { 290 if (is_installed) {
215 std::string name = "ServiceWorker.StartWorker.Time"; 291 std::string name = "ServiceWorker.StartWorker.Time";
216 UMA_HISTOGRAM_MEDIUM_TIMES(name, time); 292 UMA_HISTOGRAM_MEDIUM_TIMES(name, time);
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
328 break; 404 break;
329 case EventType::MESSAGE: 405 case EventType::MESSAGE:
330 UMA_HISTOGRAM_MEDIUM_TIMES("ServiceWorker.ExtendableMessageEvent.Time", 406 UMA_HISTOGRAM_MEDIUM_TIMES("ServiceWorker.ExtendableMessageEvent.Time",
331 time); 407 time);
332 break; 408 break;
333 409
334 // For now event duration for these events is not recorded. 410 // For now event duration for these events is not recorded.
335 case EventType::GEOFENCING: 411 case EventType::GEOFENCING:
336 break; 412 break;
337 413
338 case EventType::DEPRECATED_FETCH:
339 case EventType::UNKNOWN: 414 case EventType::UNKNOWN:
340 case EventType::NUM_TYPES: 415 case EventType::NUM_TYPES:
341 NOTREACHED() << "Invalid event type"; 416 NOTREACHED() << "Invalid event type";
342 break; 417 break;
343 } 418 }
344 } 419 }
345 420
346 void ServiceWorkerMetrics::RecordFetchEventStatus( 421 void ServiceWorkerMetrics::RecordFetchEventStatus(
347 bool is_main_resource, 422 bool is_main_resource,
348 ServiceWorkerStatusCode status) { 423 ServiceWorkerStatusCode status) {
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after
499 } else if (failure_count == 2) { 574 } else if (failure_count == 2) {
500 UMA_HISTOGRAM_ENUMERATION("ServiceWorker.StartWorker.AfterFailureStreak_2", 575 UMA_HISTOGRAM_ENUMERATION("ServiceWorker.StartWorker.AfterFailureStreak_2",
501 status, SERVICE_WORKER_ERROR_MAX_VALUE); 576 status, SERVICE_WORKER_ERROR_MAX_VALUE);
502 } else if (failure_count == 3) { 577 } else if (failure_count == 3) {
503 UMA_HISTOGRAM_ENUMERATION("ServiceWorker.StartWorker.AfterFailureStreak_3", 578 UMA_HISTOGRAM_ENUMERATION("ServiceWorker.StartWorker.AfterFailureStreak_3",
504 status, SERVICE_WORKER_ERROR_MAX_VALUE); 579 status, SERVICE_WORKER_ERROR_MAX_VALUE);
505 } 580 }
506 } 581 }
507 582
508 } // namespace content 583 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/service_worker/service_worker_metrics.h ('k') | tools/metrics/histograms/histograms.xml » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698