Add histogram metric for digest latency

Using 50 uniform bins between 0 and 500 ms.

Bug: 268323312
Test: build
Test: manual
Change-Id: I63efb508ada21fc420bca3bdbdac4f05f357b451
diff --git a/services/core/java/com/android/server/BinaryTransparencyService.java b/services/core/java/com/android/server/BinaryTransparencyService.java
index eafd3e0..c3ee81f 100644
--- a/services/core/java/com/android/server/BinaryTransparencyService.java
+++ b/services/core/java/com/android/server/BinaryTransparencyService.java
@@ -81,6 +81,7 @@
 import android.util.apk.ApkSigningBlockUtils;
 
 import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.expresslog.Histogram;
 import com.android.internal.os.IBinaryTransparencyService;
 import com.android.internal.util.FrameworkStatsLog;
 import com.android.server.pm.ApexManager;
@@ -141,6 +142,10 @@
 
     private static final boolean DEBUG = false;     // toggle this for local debug
 
+    private static final Histogram digestAllPackagesLatency = new Histogram(
+            "binary_transparency.value_digest_all_packages_latency_uniform",
+            new Histogram.UniformOptions(50, 0, 500));
+
     private final Context mContext;
     private String mVbmetaDigest;
     // the system time (in ms) the last measurement was taken
@@ -350,8 +355,9 @@
                     writeAppInfoToLog(appInfo);
                 }
             }
+            long timeSpentMeasuring = System.currentTimeMillis() - currentTimeMs;
+            digestAllPackagesLatency.logSample(timeSpentMeasuring);
             if (DEBUG) {
-                long timeSpentMeasuring = System.currentTimeMillis() - currentTimeMs;
                 Slog.d(TAG, "Measured " + packagesMeasured.size()
                         + " packages altogether in " + timeSpentMeasuring + "ms");
             }