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

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

Issue 2652603002: service worker: Add UMA for navigation preload response timing. (Closed)
Patch Set: patch for landing? Created 3 years, 11 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 819 matching lines...) Expand 10 before | Expand all | Expand 10 after
830 status, SERVICE_WORKER_ERROR_MAX_VALUE); 830 status, SERVICE_WORKER_ERROR_MAX_VALUE);
831 } 831 }
832 } 832 }
833 833
834 void ServiceWorkerMetrics::RecordNavigationPreloadRequestHeaderSize( 834 void ServiceWorkerMetrics::RecordNavigationPreloadRequestHeaderSize(
835 size_t size) { 835 size_t size) {
836 UMA_HISTOGRAM_COUNTS_100000("ServiceWorker.NavigationPreload.HeaderSize", 836 UMA_HISTOGRAM_COUNTS_100000("ServiceWorker.NavigationPreload.HeaderSize",
837 size); 837 size);
838 } 838 }
839 839
840 void ServiceWorkerMetrics::RecordNavigationPreloadResponse(
841 base::TimeDelta worker_start,
842 base::TimeDelta response_start,
843 EmbeddedWorkerStatus initial_worker_status,
844 StartSituation start_situation) {
845 DCHECK_GE(worker_start.ToInternalValue(), 0);
846 DCHECK_GE(response_start.ToInternalValue(), 0);
847
848 UMA_HISTOGRAM_MEDIUM_TIMES("ServiceWorker.NavigationPreload.ResponseTime",
849 response_start);
850
851 const bool nav_preload_finished_first = response_start < worker_start;
852 UMA_HISTOGRAM_BOOLEAN(
853 "ServiceWorker.NavigationPreload.FinishedBeforeStartWorker",
854 nav_preload_finished_first);
855
856 const bool existing_process_startup =
857 (initial_worker_status == EmbeddedWorkerStatus::STOPPED &&
858 start_situation ==
859 ServiceWorkerMetrics::StartSituation::EXISTING_PROCESS);
860 if (existing_process_startup) {
861 UMA_HISTOGRAM_BOOLEAN(
862 "ServiceWorker.NavigationPreload.FinishedBeforeStartWorker"
863 "_StartWorkerExistingProcess",
864 nav_preload_finished_first);
865 }
866
867 UMA_HISTOGRAM_MEDIUM_TIMES(
868 "ServiceWorker.NavigationPreload.ConcurrentTime",
869 nav_preload_finished_first ? response_start : worker_start);
870
871 if (nav_preload_finished_first) {
872 UMA_HISTOGRAM_MEDIUM_TIMES(
873 "ServiceWorker.NavigationPreload.ConcurrentTime_NavPreloadFirst",
874 response_start);
875 UMA_HISTOGRAM_MEDIUM_TIMES(
876 "ServiceWorker.NavigationPreload.SWStartAfterNavPreload",
877 worker_start - response_start);
878
879 if (existing_process_startup) {
880 UMA_HISTOGRAM_MEDIUM_TIMES(
881 "ServiceWorker.NavigationPreload.ConcurrentTime_"
882 "StartWorkerExistingProcess",
883 response_start);
884 UMA_HISTOGRAM_MEDIUM_TIMES(
885 "ServiceWorker.NavigationPreload.ConcurrentTime_"
886 "NavPreloadFirst_StartWorkerExistingProcess",
887 response_start);
888 UMA_HISTOGRAM_MEDIUM_TIMES(
889 "ServiceWorker.NavigationPreload.SWStartAfterNavPreload_"
890 "StartWorkerExistingProcess",
891 worker_start - response_start);
892 }
893 } else {
894 UMA_HISTOGRAM_MEDIUM_TIMES(
895 "ServiceWorker.NavigationPreload.ConcurrentTime_SWStartFirst",
896 worker_start);
897 UMA_HISTOGRAM_MEDIUM_TIMES(
898 "ServiceWorker.NavigationPreload.NavPreloadAfterSWStart",
899 response_start - worker_start);
900
901 if (existing_process_startup) {
902 UMA_HISTOGRAM_MEDIUM_TIMES(
903 "ServiceWorker.NavigationPreload.ConcurrentTime_"
904 "StartWorkerExistingProcess",
905 worker_start);
906 UMA_HISTOGRAM_MEDIUM_TIMES(
907 "ServiceWorker.NavigationPreload.ConcurrentTime_"
908 "SWStartFirst_StartWorkerExistingProcess",
909 worker_start);
910 UMA_HISTOGRAM_MEDIUM_TIMES(
911 "ServiceWorker.NavigationPreload.NavPreloadAfterSWStart_"
912 "StartWorkerExistingProcess",
913 response_start - worker_start);
914 }
915 }
916 }
917
840 void ServiceWorkerMetrics::RecordContextRequestHandlerStatus( 918 void ServiceWorkerMetrics::RecordContextRequestHandlerStatus(
841 ServiceWorkerContextRequestHandler::CreateJobStatus status, 919 ServiceWorkerContextRequestHandler::CreateJobStatus status,
842 bool is_installed, 920 bool is_installed,
843 bool is_main_script) { 921 bool is_main_script) {
844 const int value = static_cast<int>(status); 922 const int value = static_cast<int>(status);
845 const int max = static_cast<int>( 923 const int max = static_cast<int>(
846 ServiceWorkerContextRequestHandler::CreateJobStatus::NUM_TYPES); 924 ServiceWorkerContextRequestHandler::CreateJobStatus::NUM_TYPES);
847 if (is_installed) { 925 if (is_installed) {
848 if (is_main_script) { 926 if (is_main_script) {
849 UMA_HISTOGRAM_ENUMERATION( 927 UMA_HISTOGRAM_ENUMERATION(
(...skipping 14 matching lines...) Expand all
864 } else { 942 } else {
865 UMA_HISTOGRAM_ENUMERATION( 943 UMA_HISTOGRAM_ENUMERATION(
866 "ServiceWorker.ContextRequestHandlerStatus.NewWorker." 944 "ServiceWorker.ContextRequestHandlerStatus.NewWorker."
867 "ImportedScript", 945 "ImportedScript",
868 value, max); 946 value, max);
869 } 947 }
870 } 948 }
871 } 949 }
872 950
873 } // namespace content 951 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698