Measure sizes of group messages

This commit is contained in:
Jon Chambers 2024-06-11 16:14:42 -04:00 committed by Jon Chambers
parent 3aa4d8713c
commit 09bc4ef1d6
1 changed files with 7 additions and 3 deletions

View File

@ -344,7 +344,7 @@ public class MessageController {
contentLength += message.content().length(); contentLength += message.content().length();
} }
validateContentLength(contentLength, userAgent); validateContentLength(contentLength, false, userAgent);
validateEnvelopeType(message.type(), userAgent); validateEnvelopeType(message.type(), userAgent);
totalContentLength += contentLength; totalContentLength += contentLength;
@ -641,6 +641,8 @@ public class MessageController {
Tag.of(SENDER_TYPE_TAG_NAME, SENDER_TYPE_UNIDENTIFIED), Tag.of(SENDER_TYPE_TAG_NAME, SENDER_TYPE_UNIDENTIFIED),
Tag.of(IDENTITY_TYPE_TAG_NAME, recipientData.serviceIdentifier().identityType().name()))); Tag.of(IDENTITY_TYPE_TAG_NAME, recipientData.serviceIdentifier().identityType().name())));
validateContentLength(multiRecipientMessage.messageSizeForRecipient(recipientData.recipient()), true, userAgent);
return recipientData.deviceIdToRegistrationId().keySet().stream().map( return recipientData.deviceIdToRegistrationId().keySet().stream().map(
deviceId ->CompletableFuture.runAsync( 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; final boolean oversize = contentLength > MAX_MESSAGE_SIZE;
DistributionSummary.builder(CONTENT_SIZE_DISTRIBUTION_NAME) 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) .publishPercentileHistogram(true)
.register(Metrics.globalRegistry) .register(Metrics.globalRegistry)
.record(contentLength); .record(contentLength);