From 70b54e227ec6342c478e162c7743c940768106dd Mon Sep 17 00:00:00 2001 From: Jon Chambers Date: Thu, 25 May 2023 10:57:39 -0400 Subject: [PATCH] Count the prevalence of keys stored as strings or as bytes --- .../java/org/whispersystems/textsecuregcm/storage/Keys.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/storage/Keys.java b/service/src/main/java/org/whispersystems/textsecuregcm/storage/Keys.java index 9676aa5b8..131c326de 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/storage/Keys.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/storage/Keys.java @@ -62,6 +62,8 @@ public class Keys extends AbstractDynamoDbStore { private static final DistributionSummary KEY_COUNT_DISTRIBUTION = Metrics.summary(name(Keys.class, "keyCount")); private static final Counter KEYS_EMPTY_TAKE_COUNTER = Metrics.counter(name(Keys.class, "takeKeyEmpty")); private static final Counter TOO_MANY_LAST_RESORT_KEYS_COUNTER = Metrics.counter(name(Keys.class, "tooManyLastResortKeys")); + private static final Counter PARSE_BYTES_FROM_STRING_COUNTER = Metrics.counter(name(Keys.class, "parseByteArray"), "format", "string"); + private static final Counter READ_BYTES_FROM_BYTE_ARRAY_COUNTER = Metrics.counter(name(Keys.class, "parseByteArray"), "format", "bytes"); public Keys( final DynamoDbClient dynamoDB, @@ -404,8 +406,10 @@ private PreKey getPreKeyFromItem(Map item) { @VisibleForTesting static byte[] extractByteArray(final AttributeValue attributeValue) { if (attributeValue.b() != null) { + READ_BYTES_FROM_BYTE_ARRAY_COUNTER.increment(); return attributeValue.b().asByteArray(); } else if (StringUtils.isNotBlank(attributeValue.s())) { + PARSE_BYTES_FROM_STRING_COUNTER.increment(); return Base64.getDecoder().decode(attributeValue.s()); }