From 09bc4ef1d6b163ac13345166f9d32c34a2b3100f Mon Sep 17 00:00:00 2001 From: Jon Chambers Date: Tue, 11 Jun 2024 16:14:42 -0400 Subject: [PATCH] Measure sizes of group messages --- .../textsecuregcm/controllers/MessageController.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/controllers/MessageController.java b/service/src/main/java/org/whispersystems/textsecuregcm/controllers/MessageController.java index 2d5ec8bfa..030796407 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/controllers/MessageController.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/controllers/MessageController.java @@ -344,7 +344,7 @@ public class MessageController { contentLength += message.content().length(); } - validateContentLength(contentLength, userAgent); + validateContentLength(contentLength, false, userAgent); validateEnvelopeType(message.type(), userAgent); totalContentLength += contentLength; @@ -641,6 +641,8 @@ public class MessageController { Tag.of(SENDER_TYPE_TAG_NAME, SENDER_TYPE_UNIDENTIFIED), Tag.of(IDENTITY_TYPE_TAG_NAME, recipientData.serviceIdentifier().identityType().name()))); + validateContentLength(multiRecipientMessage.messageSizeForRecipient(recipientData.recipient()), true, userAgent); + return recipientData.deviceIdToRegistrationId().keySet().stream().map( deviceId ->CompletableFuture.runAsync( () -> { @@ -933,11 +935,13 @@ public class MessageController { } } - private void validateContentLength(final int contentLength, final String userAgent) { + private void validateContentLength(final int contentLength, final boolean multiRecipientMessage, final String userAgent) { final boolean oversize = contentLength > MAX_MESSAGE_SIZE; DistributionSummary.builder(CONTENT_SIZE_DISTRIBUTION_NAME) - .tags(Tags.of(UserAgentTagUtil.getPlatformTag(userAgent), Tag.of("oversize", String.valueOf(oversize)))) + .tags(Tags.of(UserAgentTagUtil.getPlatformTag(userAgent), + Tag.of("oversize", String.valueOf(oversize)), + Tag.of("multiRecipientMessage", String.valueOf(multiRecipientMessage)))) .publishPercentileHistogram(true) .register(Metrics.globalRegistry) .record(contentLength);