From 4ce060a963469a650769d1846d1f76d72761ce22 Mon Sep 17 00:00:00 2001 From: Jon Chambers Date: Wed, 13 Dec 2023 11:31:35 -0500 Subject: [PATCH] Count wildcard "get keys" requests by platform --- .../textsecuregcm/controllers/KeysController.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/controllers/KeysController.java b/service/src/main/java/org/whispersystems/textsecuregcm/controllers/KeysController.java index a899cdefa..61a16d1eb 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/controllers/KeysController.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/controllers/KeysController.java @@ -6,6 +6,8 @@ package org.whispersystems.textsecuregcm.controllers; import com.google.common.net.HttpHeaders; import io.dropwizard.auth.Auth; +import io.micrometer.core.instrument.Metrics; +import io.micrometer.core.instrument.Tags; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.headers.Header; @@ -50,6 +52,8 @@ import org.whispersystems.textsecuregcm.entities.SignedPreKey; import org.whispersystems.textsecuregcm.identity.IdentityType; import org.whispersystems.textsecuregcm.identity.ServiceIdentifier; import org.whispersystems.textsecuregcm.limits.RateLimiters; +import org.whispersystems.textsecuregcm.metrics.MetricsUtil; +import org.whispersystems.textsecuregcm.metrics.UserAgentTagUtil; import org.whispersystems.textsecuregcm.storage.Account; import org.whispersystems.textsecuregcm.storage.AccountsManager; import org.whispersystems.textsecuregcm.storage.Device; @@ -65,6 +69,8 @@ public class KeysController { private final KeysManager keys; private final AccountsManager accounts; + private static final String GET_KEYS_COUNTER_NAME = MetricsUtil.name(KeysController.class, "getKeys"); + private static final CompletableFuture[] EMPTY_FUTURE_ARRAY = new CompletableFuture[0]; public KeysController(RateLimiters rateLimiters, KeysManager keys, AccountsManager accounts) { @@ -226,6 +232,11 @@ public class KeysController { + "." + deviceId); } + Metrics.counter(GET_KEYS_COUNTER_NAME, Tags.of( + UserAgentTagUtil.getPlatformTag(userAgent), + io.micrometer.core.instrument.Tag.of("wildcardDeviceId", String.valueOf("*".equals(deviceId))))) + .increment(); + final List devices = parseDeviceId(deviceId, target); final List responseItems = new ArrayList<>(devices.size());