diff options
| author | 2023-05-01 17:50:11 +0000 | |
|---|---|---|
| committer | 2023-05-01 17:50:11 +0000 | |
| commit | c7ac88d484b57dc9538fcb24309a37177e5378e3 (patch) | |
| tree | aa3c179ab3bbce5c7d429bc8acbaac25c145e6a3 | |
| parent | 0f59388c3a0e1d40753115d119beb0d61168794d (diff) | |
| parent | 7785cb0af1d200caa06e4c2f1918927e5b5ab3e1 (diff) | |
Merge "Add metrics coverage to Cred Reg flow." into udc-dev
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<>(); |