Add an "is primary" dimension to message latency measurements

This commit is contained in:
Jon Chambers 2024-07-17 12:15:59 -04:00 committed by Jon Chambers
parent 0ef3e00ba7
commit 4f10014902
3 changed files with 13 additions and 3 deletions

View File

@ -742,7 +742,11 @@ public class MessageController {
.map(OutgoingMessageEntity::fromEnvelope)
.peek(outgoingMessageEntity -> {
messageMetrics.measureAccountOutgoingMessageUuidMismatches(auth.getAccount(), outgoingMessageEntity);
messageMetrics.measureOutgoingMessageLatency(outgoingMessageEntity.serverTimestamp(), "rest", userAgent, clientReleaseManager);
messageMetrics.measureOutgoingMessageLatency(outgoingMessageEntity.serverTimestamp(),
"rest",
auth.getAuthenticatedDevice().isPrimary(),
userAgent,
clientReleaseManager);
})
.collect(Collectors.toList()),
messagesAndHasMore.second());

View File

@ -70,12 +70,14 @@ public final class MessageMetrics {
public void measureOutgoingMessageLatency(final long serverTimestamp,
final String channel,
final boolean isPrimaryDevice,
final String userAgent,
final ClientReleaseManager clientReleaseManager) {
final List<Tag> tags = new ArrayList<>(3);
final List<Tag> tags = new ArrayList<>(4);
tags.add(UserAgentTagUtil.getPlatformTag(userAgent));
tags.add(Tag.of("channel", channel));
tags.add(Tag.of("isPrimary", String.valueOf(isPrimaryDevice)));
UserAgentTagUtil.getClientVersionTag(userAgent, clientReleaseManager).ifPresent(tags::add);

View File

@ -222,7 +222,11 @@ public class WebSocketConnection implements MessageAvailabilityListener, Displac
if (throwable != null) {
sendFailuresCounter.increment();
} else {
messageMetrics.measureOutgoingMessageLatency(message.getServerTimestamp(), "websocket", client.getUserAgent(), clientReleaseManager);
messageMetrics.measureOutgoingMessageLatency(message.getServerTimestamp(),
"websocket",
device.isPrimary(),
client.getUserAgent(),
clientReleaseManager);
}
}).thenCompose(response -> {
final CompletableFuture<Void> result;