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) .map(OutgoingMessageEntity::fromEnvelope)
.peek(outgoingMessageEntity -> { .peek(outgoingMessageEntity -> {
messageMetrics.measureAccountOutgoingMessageUuidMismatches(auth.getAccount(), 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()), .collect(Collectors.toList()),
messagesAndHasMore.second()); messagesAndHasMore.second());

View File

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

View File

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