From 69ea9b0296ecf427d0b1bb599dfa3203664c45d4 Mon Sep 17 00:00:00 2001 From: Jon Chambers Date: Wed, 2 Aug 2023 11:33:56 -0400 Subject: [PATCH] Add a request counter tagged by client version --- .../textsecuregcm/WhisperServerService.java | 6 +++--- .../MetricsApplicationEventListener.java | 5 +++-- .../metrics/MetricsRequestEventListener.java | 20 ++++++++++++++++--- .../MetricsRequestEventListenerTest.java | 7 ++++++- 4 files changed, 29 insertions(+), 9 deletions(-) diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/WhisperServerService.java b/service/src/main/java/org/whispersystems/textsecuregcm/WhisperServerService.java index e13f458d3..d63d55b9f 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/WhisperServerService.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/WhisperServerService.java @@ -669,7 +669,7 @@ public class WhisperServerService extends Application(ImmutableMap.of(AuthenticatedAccount.class, accountAuthFilter, DisabledPermittedAuthenticatedAccount.class, disabledPermittedAccountAuthFilter))); @@ -689,7 +689,7 @@ public class WhisperServerService extends Application meterRegistry.counter(REQUESTS_BY_VERSION_COUNTER_NAME, + Tags.of(clientVersionTag, UserAgentTagUtil.getPlatformTag(userAgent))) + .increment()); } } } diff --git a/service/src/test/java/org/whispersystems/textsecuregcm/metrics/MetricsRequestEventListenerTest.java b/service/src/test/java/org/whispersystems/textsecuregcm/metrics/MetricsRequestEventListenerTest.java index 0e3bf7de8..c9aeca5e9 100644 --- a/service/src/test/java/org/whispersystems/textsecuregcm/metrics/MetricsRequestEventListenerTest.java +++ b/service/src/test/java/org/whispersystems/textsecuregcm/metrics/MetricsRequestEventListenerTest.java @@ -46,6 +46,7 @@ import org.glassfish.jersey.uri.UriTemplate; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.mockito.ArgumentCaptor; +import org.whispersystems.textsecuregcm.storage.ClientReleaseManager; import org.whispersystems.websocket.WebSocketResourceProvider; import org.whispersystems.websocket.auth.WebsocketAuthValueFactoryProvider; import org.whispersystems.websocket.logging.WebsocketRequestLog; @@ -65,7 +66,11 @@ class MetricsRequestEventListenerTest { void setup() { meterRegistry = mock(MeterRegistry.class); counter = mock(Counter.class); - listener = new MetricsRequestEventListener(TRAFFIC_SOURCE, meterRegistry); + + final ClientReleaseManager clientReleaseManager = mock(ClientReleaseManager.class); + when(clientReleaseManager.isVersionActive(any(), any())).thenReturn(false); + + listener = new MetricsRequestEventListener(TRAFFIC_SOURCE, meterRegistry, clientReleaseManager); } @Test