diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/http/FaultTolerantHttpClient.java b/service/src/main/java/org/whispersystems/textsecuregcm/http/FaultTolerantHttpClient.java index 9a992143b..2bfd1595a 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/http/FaultTolerantHttpClient.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/http/FaultTolerantHttpClient.java @@ -111,7 +111,7 @@ public class FaultTolerantHttpClient { @Nullable private String circuitBreakerConfigurationName; private Builder(final String name, final Executor executor) { - this.name = Objects.requireNonNull(name); + this.name = getClass().getSimpleName() + "/" + Objects.requireNonNull(name); this.executor = Objects.requireNonNull(executor); } diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/redis/FaultTolerantRedisClient.java b/service/src/main/java/org/whispersystems/textsecuregcm/redis/FaultTolerantRedisClient.java index a21c1c3c6..f7a8f0580 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/redis/FaultTolerantRedisClient.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/redis/FaultTolerantRedisClient.java @@ -40,8 +40,12 @@ public class FaultTolerantRedisClient { RedisUriUtil.createRedisUriWithTimeout(redisConfiguration.getUri(), redisConfiguration.getTimeout()), redisConfiguration.getTimeout(), redisConfiguration.getCircuitBreakerConfigurationName() != null - ? ResilienceUtil.getCircuitBreakerRegistry().circuitBreaker(name, redisConfiguration.getCircuitBreakerConfigurationName()) - : ResilienceUtil.getCircuitBreakerRegistry().circuitBreaker(name)); + ? ResilienceUtil.getCircuitBreakerRegistry().circuitBreaker(getCircuitBreakerName(name), redisConfiguration.getCircuitBreakerConfigurationName()) + : ResilienceUtil.getCircuitBreakerRegistry().circuitBreaker(getCircuitBreakerName(name))); + } + + private static String getCircuitBreakerName(final String name) { + return FaultTolerantRedisClient.class.getSimpleName() + "/" + name; } @VisibleForTesting diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/redis/LettuceShardCircuitBreaker.java b/service/src/main/java/org/whispersystems/textsecuregcm/redis/LettuceShardCircuitBreaker.java index 60247d27a..aafefc0aa 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/redis/LettuceShardCircuitBreaker.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/redis/LettuceShardCircuitBreaker.java @@ -99,7 +99,7 @@ public class LettuceShardCircuitBreaker implements NettyCustomizer { // In some cases, like the default connection, the remote address includes the DNS hostname, which we want to exclude. shardAddress = StringUtils.substringAfter(remoteAddress.toString(), "/"); - final String circuitBreakerName = "%s/%s".formatted(clusterName, shardAddress); + final String circuitBreakerName = "%s-%s/%s".formatted(LettuceShardCircuitBreaker.class.getSimpleName(), clusterName, shardAddress); final Map tags = Map.of( CLUSTER_TAG_NAME, clusterName, SHARD_ADDRESS_TAG_NAME, shardAddress); diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/util/ResilienceUtil.java b/service/src/main/java/org/whispersystems/textsecuregcm/util/ResilienceUtil.java index 8d9ad013f..c1145e385 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/util/ResilienceUtil.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/util/ResilienceUtil.java @@ -57,6 +57,6 @@ public class ResilienceUtil { /// @param name The name of this `Retry`. Calls to this method with the same name will return the same `Retry` /// instance, and the name is used to identify metrics tied to the returned `Retry` instance. public static Retry getGeneralRedisRetry(final String name) { - return RETRY_REGISTRY.retry(name, GENERAL_REDIS_CONFIGURATION_NAME); + return RETRY_REGISTRY.retry("redis/" + name, GENERAL_REDIS_CONFIGURATION_NAME); } }