summaryrefslogtreecommitdiff
path: root/adservices/service-core/java/com/android/adservices/service/measurement/registration/FetcherUtil.java
diff options
context:
space:
mode:
authorAbhimanyu <abmehta@google.com>2022-09-01 22:43:59 +0000
committerAbhimanyu <abmehta@google.com>2022-09-06 21:47:25 +0000
commit7e261fcea4d7640876b358c842eba2952b6e0553 (patch)
tree174a63af060c931125fe3ac87adbbf252ec5ebda /adservices/service-core/java/com/android/adservices/service/measurement/registration/FetcherUtil.java
parent3c4e469c4da53c21efb83acbce1a52a2fc08e0b3 (diff)
downloadAdServices-7e261fcea4d7640876b358c842eba2952b6e0553.tar.gz
Metrics for response based registration payload size
Test: SourceFetcherTest, TriggerFetcherTest, FetcherUtilTest Change-Id: I6cc912aab451f2a3e4f9543c175bc3f81a2217d2
Diffstat (limited to 'adservices/service-core/java/com/android/adservices/service/measurement/registration/FetcherUtil.java')
-rw-r--r--adservices/service-core/java/com/android/adservices/service/measurement/registration/FetcherUtil.java45
1 files changed, 45 insertions, 0 deletions
diff --git a/adservices/service-core/java/com/android/adservices/service/measurement/registration/FetcherUtil.java b/adservices/service-core/java/com/android/adservices/service/measurement/registration/FetcherUtil.java
index 97c3d39e1c..981fe90bcb 100644
--- a/adservices/service-core/java/com/android/adservices/service/measurement/registration/FetcherUtil.java
+++ b/adservices/service-core/java/com/android/adservices/service/measurement/registration/FetcherUtil.java
@@ -19,10 +19,16 @@ import static com.android.adservices.service.measurement.SystemHealthParams.MAX_
import static com.android.adservices.service.measurement.SystemHealthParams.MAX_BYTES_PER_ATTRIBUTION_AGGREGATE_KEY_ID;
import static com.android.adservices.service.measurement.SystemHealthParams.MAX_BYTES_PER_ATTRIBUTION_FILTER_STRING;
import static com.android.adservices.service.measurement.SystemHealthParams.MAX_VALUES_PER_ATTRIBUTION_FILTER;
+import static com.android.adservices.service.stats.AdServicesStatsLog.AD_SERVICES_MEASUREMENT_REGISTRATIONS;
import android.annotation.NonNull;
import android.net.Uri;
+import com.android.adservices.service.Flags;
+import com.android.adservices.service.measurement.util.Web;
+import com.android.adservices.service.stats.AdServicesLogger;
+import com.android.adservices.service.stats.MeasurementRegistrationResponseStats;
+
import org.json.JSONArray;
import org.json.JSONObject;
@@ -128,4 +134,43 @@ class FetcherUtil {
}
return true;
}
+
+ static void emitHeaderMetrics(
+ Flags flags,
+ AdServicesLogger logger,
+ int registrationType,
+ Map<String, List<String>> headers,
+ Uri registrationUri) {
+ long headerSize = calculateHeadersCharactersLength(headers);
+ long maxSize = flags.getMaxResponseBasedRegistrationPayloadSizeBytes();
+ String adTechDomain = null;
+
+ if (headerSize > maxSize) {
+ adTechDomain =
+ Web.topPrivateDomainAndScheme(registrationUri).map(Uri::toString).orElse(null);
+ }
+
+ logger.logMeasurementRegistrationsResponseSize(
+ new MeasurementRegistrationResponseStats.Builder(
+ AD_SERVICES_MEASUREMENT_REGISTRATIONS, registrationType, headerSize)
+ .setAdTechDomain(adTechDomain)
+ .build());
+ }
+
+ private static long calculateHeadersCharactersLength(Map<String, List<String>> headers) {
+ long size = 0;
+ for (String headerKey : headers.keySet()) {
+ if (headerKey != null) {
+ size = size + headerKey.length();
+ List<String> headerValues = headers.get(headerKey);
+ if (headerValues != null) {
+ for (String headerValue : headerValues) {
+ size = size + headerValue.length();
+ }
+ }
+ }
+ }
+
+ return size;
+ }
}