diff options
author | Abhimanyu <abmehta@google.com> | 2022-09-01 22:43:59 +0000 |
---|---|---|
committer | Abhimanyu <abmehta@google.com> | 2022-09-06 21:47:25 +0000 |
commit | 7e261fcea4d7640876b358c842eba2952b6e0553 (patch) | |
tree | 174a63af060c931125fe3ac87adbbf252ec5ebda /adservices/service-core/java/com/android/adservices/service/measurement/registration/FetcherUtil.java | |
parent | 3c4e469c4da53c21efb83acbce1a52a2fc08e0b3 (diff) | |
download | AdServices-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.java | 45 |
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; + } } |