Add an `isEphemeral` dimension to message delivery latency metrics

This commit is contained in:
Jon Chambers 2025-06-10 17:34:52 -04:00 committed by ravi-signal
parent 4ffd164461
commit 9a1da23bdb
3 changed files with 8 additions and 1 deletions

View File

@ -781,6 +781,10 @@ public class MessageController {
"rest",
auth.getAuthenticatedDevice().isPrimary(),
outgoingMessageEntity.urgent(),
// Messages fetched via this endpoint (as opposed to WebSocketConnection) are never ephemeral
// because, by definition, the client doesn't have a "live" connection via which to receive
// ephemeral messages.
false,
userAgent,
clientReleaseManager);
})

View File

@ -72,14 +72,16 @@ public final class MessageMetrics {
final String channel,
final boolean isPrimaryDevice,
final boolean isUrgent,
final boolean isEphemeral,
final String userAgent,
final ClientReleaseManager clientReleaseManager) {
final List<Tag> tags = new ArrayList<>(4);
final List<Tag> tags = new ArrayList<>();
tags.add(UserAgentTagUtil.getPlatformTag(userAgent));
tags.add(Tag.of("channel", channel));
tags.add(Tag.of("isPrimary", String.valueOf(isPrimaryDevice)));
tags.add(Tag.of("isUrgent", String.valueOf(isUrgent)));
tags.add(Tag.of("isEphemeral", String.valueOf(isEphemeral)));
UserAgentTagUtil.getClientVersionTag(userAgent, clientReleaseManager).ifPresent(tags::add);

View File

@ -255,6 +255,7 @@ public class WebSocketConnection implements WebSocketConnectionEventListener {
"websocket",
auth.getAuthenticatedDevice().isPrimary(),
message.getUrgent(),
message.getEphemeral(),
client.getUserAgent(),
clientReleaseManager);
}