summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Omer Ozer <omerozer@google.com> 2023-05-01 17:50:11 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2023-05-01 17:50:11 +0000
commitc7ac88d484b57dc9538fcb24309a37177e5378e3 (patch)
treeaa3c179ab3bbce5c7d429bc8acbaac25c145e6a3
parent0f59388c3a0e1d40753115d119beb0d61168794d (diff)
parent7785cb0af1d200caa06e4c2f1918927e5b5ab3e1 (diff)
Merge "Add metrics coverage to Cred Reg flow." into udc-dev
-rw-r--r--services/credentials/java/com/android/server/credentials/ProviderRegistryGetSession.java3
-rw-r--r--services/credentials/java/com/android/server/credentials/metrics/ProviderSessionMetric.java29
2 files changed, 31 insertions, 1 deletions
diff --git a/services/credentials/java/com/android/server/credentials/ProviderRegistryGetSession.java b/services/credentials/java/com/android/server/credentials/ProviderRegistryGetSession.java
index 21f4a052df43..b0b72bcf67cc 100644
--- a/services/credentials/java/com/android/server/credentials/ProviderRegistryGetSession.java
+++ b/services/credentials/java/com/android/server/credentials/ProviderRegistryGetSession.java
@@ -256,6 +256,7 @@ public class ProviderRegistryGetSession extends ProviderSession<CredentialOption
@Override
protected void invokeSession() {
+ startCandidateMetrics();
mProviderResponse = mCredentialDescriptionRegistry
.getFilteredResultForProvider(mCredentialProviderPackageName,
mElementKeys);
@@ -266,7 +267,7 @@ public class ProviderRegistryGetSession extends ProviderSession<CredentialOption
.collect(Collectors.toList());
updateStatusAndInvokeCallback(Status.CREDENTIALS_RECEIVED,
/*source=*/ CredentialsSource.REGISTRY);
- // TODO(b/273353677) : metric should be emitted similarly to sibling classes
+ mProviderSessionMetric.collectCandidateEntryMetrics(mCredentialEntries);
}
@Nullable
diff --git a/services/credentials/java/com/android/server/credentials/metrics/ProviderSessionMetric.java b/services/credentials/java/com/android/server/credentials/metrics/ProviderSessionMetric.java
index e618f3b35651..f011b554fe53 100644
--- a/services/credentials/java/com/android/server/credentials/metrics/ProviderSessionMetric.java
+++ b/services/credentials/java/com/android/server/credentials/metrics/ProviderSessionMetric.java
@@ -22,12 +22,14 @@ import static com.android.server.credentials.MetricUtilities.generateMetricKey;
import android.annotation.NonNull;
import android.service.credentials.BeginCreateCredentialResponse;
import android.service.credentials.BeginGetCredentialResponse;
+import android.service.credentials.CredentialEntry;
import android.util.Slog;
import com.android.server.credentials.MetricUtilities;
import com.android.server.credentials.metrics.shared.ResponseCollective;
import java.util.LinkedHashMap;
+import java.util.List;
import java.util.Map;
/**
@@ -149,6 +151,33 @@ public class ProviderSessionMetric {
}
}
+ /**
+ * Once entries are received from the registry, this helps collect their info for metric
+ * purposes.
+ *
+ * @param entries contains matching entries from the Credential Registry.
+ */
+ public void collectCandidateEntryMetrics(List<CredentialEntry> entries) {
+ int numCredEntries = entries.size();
+ int numRemoteEntry = MetricUtilities.ZERO;
+ int numActionEntries = MetricUtilities.ZERO;
+ int numAuthEntries = MetricUtilities.ZERO;
+ Map<EntryEnum, Integer> entryCounts = new LinkedHashMap<>();
+ Map<String, Integer> responseCounts = new LinkedHashMap<>();
+ entryCounts.put(EntryEnum.REMOTE_ENTRY, numRemoteEntry);
+ entryCounts.put(EntryEnum.CREDENTIAL_ENTRY, numCredEntries);
+ entryCounts.put(EntryEnum.ACTION_ENTRY, numActionEntries);
+ entryCounts.put(EntryEnum.AUTHENTICATION_ENTRY, numAuthEntries);
+
+ entries.forEach(entry -> {
+ String entryKey = generateMetricKey(entry.getType(), DELTA_CUT);
+ responseCounts.put(entryKey, responseCounts.getOrDefault(entryKey, 0) + 1);
+ });
+
+ ResponseCollective responseCollective = new ResponseCollective(responseCounts, entryCounts);
+ mCandidatePhasePerProviderMetric.setResponseCollective(responseCollective);
+ }
+
private void beginCreateCredentialResponseCollectionCandidateEntryMetrics(
BeginCreateCredentialResponse response) {
Map<EntryEnum, Integer> entryCounts = new LinkedHashMap<>();