diff --git a/components/metrics/file_metrics_provider.cc b/components/metrics/file_metrics_provider.cc
index 45198c785118b..0619185a609b4 100644
--- a/components/metrics/file_metrics_provider.cc
+++ b/components/metrics/file_metrics_provider.cc
@@ -729,9 +729,12 @@ bool FileMetricsProvider::ProvideIndependentMetrics(
 
     bool success = false;
     RecordEmbeddedProfileResult(EMBEDDED_PROFILE_ATTEMPT);
+    base::Time start_time = base::Time::Now();
     if (PersistentSystemProfile::GetSystemProfile(
             *source->allocator->memory_allocator(), system_profile_proto)) {
       RecordHistogramSnapshotsFromSource(snapshot_manager, source);
+      UMA_HISTOGRAM_TIMES("UMA.FileMetricsProvider.EmbeddedProfile.RecordTime",
+                          base::Time::Now() - start_time);
       success = true;
       RecordEmbeddedProfileResult(EMBEDDED_PROFILE_FOUND);
     } else {
diff --git a/tools/metrics/histograms/histograms.xml b/tools/metrics/histograms/histograms.xml
index 17c2e8450a69f..1749d08b57dd1 100644
--- a/tools/metrics/histograms/histograms.xml
+++ b/tools/metrics/histograms/histograms.xml
@@ -109612,6 +109612,15 @@ uploading your change for review.
   </summary>
 </histogram>
 
+<histogram name="UMA.FileMetricsProvider.EmbeddedProfile.RecordTime" units="ms"
+    expires_after="M71">
+  <owner>bcwhite@chromium.org</owner>
+  <summary>
+    Tracks the time used to record all histograms from a file with an embedded
+    profile.
+  </summary>
+</histogram>
+
 <histogram name="UMA.FileMetricsProvider.EmbeddedProfileResult"
     enum="FileMetricsProviderEmbeddedProfileResult">
   <owner>asvitkine@chromium.org</owner>