Add MetricsUtil

This commit is contained in:
Chris Eager 2021-09-08 13:55:36 -07:00 committed by Chris Eager
parent f3b9a8d97f
commit 8cd93d68e4
2 changed files with 50 additions and 0 deletions

View File

@ -0,0 +1,28 @@
/*
* Copyright 2021 Signal Messenger, LLC
* SPDX-License-Identifier: AGPL-3.0-only
*/
package org.whispersystems.textsecuregcm.metrics;
public class MetricsUtil {
private static final String PREFIX = "chat";
/**
* Returns a dot-separated ('.') name for the given class and name parts
*/
public static String name(Class<?> clazz, String... parts) {
return name(clazz.getSimpleName(), parts);
}
private static String name(String name, String... parts) {
final StringBuilder sb = new StringBuilder(PREFIX);
sb.append(".").append(name);
for (String part : parts) {
sb.append(".").append(part);
}
return sb.toString();
}
}

View File

@ -0,0 +1,22 @@
/*
* Copyright 2021 Signal Messenger, LLC
* SPDX-License-Identifier: AGPL-3.0-only
*/
package org.whispersystems.textsecuregcm.metrics;
import static org.junit.jupiter.api.Assertions.assertEquals;
import org.junit.jupiter.api.Test;
class MetricsUtilTest {
@Test
void name() {
assertEquals("chat.MetricsUtilTest.metric", MetricsUtil.name(MetricsUtilTest.class, "metric"));
assertEquals("chat.MetricsUtilTest.namespace.metric",
MetricsUtil.name(MetricsUtilTest.class, "namespace", "metric"));
}
}