diff --git a/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/metrics/web/reactive/client/WebClientExchangeTags.java b/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/metrics/web/reactive/client/WebClientExchangeTags.java index 22394d4e967..5dcb729dadd 100644 --- a/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/metrics/web/reactive/client/WebClientExchangeTags.java +++ b/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/metrics/web/reactive/client/WebClientExchangeTags.java @@ -17,6 +17,7 @@ package org.springframework.boot.actuate.metrics.web.reactive.client; import java.io.IOException; +import java.util.regex.Pattern; import io.micrometer.core.instrument.Tag; @@ -41,6 +42,9 @@ public final class WebClientExchangeTags { private static final Tag CLIENT_ERROR = Tag.of("status", "CLIENT_ERROR"); + private static final Pattern PATTERN_BEFORE_PATH = Pattern + .compile("^https?://[^/]+/"); + private WebClientExchangeTags() { } @@ -66,7 +70,7 @@ public final class WebClientExchangeTags { } private static String extractPath(String url) { - String path = url.replaceFirst("^https?://[^/]+/", ""); + String path = PATTERN_BEFORE_PATH.matcher(url).replaceFirst(""); return (path.startsWith("/") ? path : "/" + path); }