From 0c357bc3403c3a2176f40e3c6fd8bb13e9c508ce Mon Sep 17 00:00:00 2001 From: erik-signal <113138376+erik-signal@users.noreply.github.com> Date: Thu, 20 Oct 2022 12:25:03 -0400 Subject: [PATCH] Add metrics tracking story capability adoption. --- .../textsecuregcm/auth/BaseAccountAuthenticator.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/auth/BaseAccountAuthenticator.java b/service/src/main/java/org/whispersystems/textsecuregcm/auth/BaseAccountAuthenticator.java index 1f2f5a9a4..fe030f8f1 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/auth/BaseAccountAuthenticator.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/auth/BaseAccountAuthenticator.java @@ -30,6 +30,9 @@ public class BaseAccountAuthenticator { private static final String AUTHENTICATION_SUCCEEDED_TAG_NAME = "succeeded"; private static final String AUTHENTICATION_FAILURE_REASON_TAG_NAME = "reason"; private static final String AUTHENTICATION_ENABLED_REQUIRED_TAG_NAME = "enabledRequired"; + private static final String AUTHENTICATION_HAS_STORY_CAPABILITY = "hasStoryCapability"; + + private static final String STORY_ADOPTION_COUNTER_NAME = name(BaseAccountAuthenticator.class, "storyAdoption"); private static final String DAYS_SINCE_LAST_SEEN_DISTRIBUTION_NAME = name(BaseAccountAuthenticator.class, "daysSinceLastSeen"); private static final String IS_PRIMARY_DEVICE_TAG = "isPrimary"; @@ -67,6 +70,7 @@ public class BaseAccountAuthenticator { public Optional authenticate(BasicCredentials basicCredentials, boolean enabledRequired) { boolean succeeded = false; String failureReason = null; + boolean hasStoryCapability = false; try { final UUID accountUuid; @@ -104,6 +108,11 @@ public class BaseAccountAuthenticator { } } + Device.DeviceCapabilities capabilities = device.get().getCapabilities(); + if (capabilities != null) { + hasStoryCapability = capabilities.isStories(); + } + AuthenticationCredentials deviceAuthenticationCredentials = device.get().getAuthenticationCredentials(); if (deviceAuthenticationCredentials.verify(basicCredentials.getPassword())) { succeeded = true; @@ -132,6 +141,9 @@ public class BaseAccountAuthenticator { } Metrics.counter(AUTHENTICATION_COUNTER_NAME, tags).increment(); + + Tags storyTags = Tags.of(AUTHENTICATION_HAS_STORY_CAPABILITY, String.valueOf(hasStoryCapability)); + Metrics.counter(STORY_ADOPTION_COUNTER_NAME, storyTags).increment(); } }