[go: nahoru, domu]

cellular: Increase SM-DS scan duration metric bounds

This change increases the bounds used when recording the amount of time
taken to complete an SM-DS scan to be up to 5 minutes.

OBSOLETE_HISTOGRAMS=Patterned histogram Network.Ash.Cellular.ESim.SmdsScanDuration.{SmdsType}.{DurationType} is replaced by Network.Ash.Cellular.ESim.SmdsScanDuration2.{SmdsType}.{DurationType}.

Bug: None
Test: Unit tests.
Change-Id: I379721d56bd61bc89f0c1b35cb70f8723631f0b2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5270061
Reviewed-by: Nikhil Nayunigari <nikhilcn@google.com>
Reviewed-by: Kyle Horimoto <khorimoto@chromium.org>
Commit-Queue: Chad Duffin <chadduffin@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1257385}
diff --git a/chromeos/ash/components/network/metrics/cellular_network_metrics_logger.cc b/chromeos/ash/components/network/metrics/cellular_network_metrics_logger.cc
index 377255f..8828d24 100644
--- a/chromeos/ash/components/network/metrics/cellular_network_metrics_logger.cc
+++ b/chromeos/ash/components/network/metrics/cellular_network_metrics_logger.cc
@@ -7,6 +7,7 @@
 #include "ash/constants/ash_features.h"
 #include "base/metrics/histogram_functions.h"
 
+#include "chromeos/ash/components/dbus/hermes/constants.h"
 #include "chromeos/ash/components/network/metrics/connection_info_metrics_logger.h"
 #include "chromeos/ash/components/network/metrics/connection_results.h"
 #include "chromeos/ash/components/network/network_metadata_store.h"
@@ -20,6 +21,11 @@
 
 using ApnType = chromeos::network_config::mojom::ApnType;
 
+const base::TimeDelta kSmdsScanDurationMinimum = base::Milliseconds(1);
+const base::TimeDelta kSmdsScanDurationMaximum = base::Milliseconds(
+    ::ash::hermes_constants::kHermesNetworkOperationTimeoutMs);
+const size_t kSmdsScanDurationBuckets = 50;
+
 std::optional<CellularNetworkMetricsLogger::ApnTypes> GetApnTypes(
     std::vector<ApnType> apn_types) {
   if (apn_types.empty())
@@ -288,7 +294,9 @@
     histogram =
         success ? kSmdsScanOtherDurationSuccess : kSmdsScanOtherDurationFailure;
   }
-  base::UmaHistogramTimes(histogram, duration);
+  base::UmaHistogramCustomTimes(histogram, duration, kSmdsScanDurationMinimum,
+                                kSmdsScanDurationMaximum,
+                                kSmdsScanDurationBuckets);
 }
 
 // static
diff --git a/chromeos/ash/components/network/metrics/cellular_network_metrics_logger.h b/chromeos/ash/components/network/metrics/cellular_network_metrics_logger.h
index de721f6..31f4498 100644
--- a/chromeos/ash/components/network/metrics/cellular_network_metrics_logger.h
+++ b/chromeos/ash/components/network/metrics/cellular_network_metrics_logger.h
@@ -150,17 +150,17 @@
   static constexpr char kSmdsScanProfileCount[] =
       "Network.Ash.Cellular.ESim.SmdsScan.ProfileCount";
   static constexpr char kSmdsScanOtherDurationSuccess[] =
-      "Network.Ash.Cellular.ESim.SmdsScanDuration.Other.OnSuccess";
+      "Network.Ash.Cellular.ESim.SmdsScanDuration2.Other.OnSuccess";
   static constexpr char kSmdsScanOtherDurationFailure[] =
-      "Network.Ash.Cellular.ESim.SmdsScanDuration.Other.OnFailure";
+      "Network.Ash.Cellular.ESim.SmdsScanDuration2.Other.OnFailure";
   static constexpr char kSmdsScanAndroidDurationSuccess[] =
-      "Network.Ash.Cellular.ESim.SmdsScanDuration.Android.OnSuccess";
+      "Network.Ash.Cellular.ESim.SmdsScanDuration2.Android.OnSuccess";
   static constexpr char kSmdsScanAndroidDurationFailure[] =
-      "Network.Ash.Cellular.ESim.SmdsScanDuration.Android.OnFailure";
+      "Network.Ash.Cellular.ESim.SmdsScanDuration2.Android.OnFailure";
   static constexpr char kSmdsScanGsmaDurationSuccess[] =
-      "Network.Ash.Cellular.ESim.SmdsScanDuration.Gsma.OnSuccess";
+      "Network.Ash.Cellular.ESim.SmdsScanDuration2.Gsma.OnSuccess";
   static constexpr char kSmdsScanGsmaDurationFailure[] =
-      "Network.Ash.Cellular.ESim.SmdsScanDuration.Gsma.OnFailure";
+      "Network.Ash.Cellular.ESim.SmdsScanDuration2.Gsma.OnFailure";
   static constexpr char kESimUserInstallMethod[] =
       "Network.Ash.Cellular.ESim.UserInstall.Method";
   static constexpr char kESimPolicyInstallMethod[] =
diff --git a/tools/metrics/histograms/metadata/network/histograms.xml b/tools/metrics/histograms/metadata/network/histograms.xml
index ffb6859..37070ec 100644
--- a/tools/metrics/histograms/metadata/network/histograms.xml
+++ b/tools/metrics/histograms/metadata/network/histograms.xml
@@ -359,7 +359,7 @@
 </histogram>
 
 <histogram
-    name="Network.Ash.Cellular.ESim.SmdsScanDuration.{SmdsType}.{DurationType}"
+    name="Network.Ash.Cellular.ESim.SmdsScanDuration2.{SmdsType}.{DurationType}"
     units="ms" expires_after="2024-09-30">
   <owner>chadduffin@google.com</owner>
   <owner>tjohnsonkanu@google.com</owner>
@@ -368,7 +368,7 @@
     Tracks the time taken to perform a single SM-DS scan of a single SM-DS
     server. The {SmdsType} token indicates the type of SM-DS server that was
     scanned, and the {DurationType} token indicates whether this duration was
-    for a scan that ompleted with an Hermes result that indicates a non-fatal
+    for a scan that completed with a Hermes result that indicates a non-fatal
     error occurred. An error does not necessarily indicate that the scan failed,
     but does indicate that there was an issue when performing the scan, e.g.,
     there was an issue with one of the profiles discovered.