Fix WebFlux instrumentation after SPR-17395

SPR-17395 ensures that WebFlux.fn is adding a request attribute of type
`PathPattern` on the `HandlerMapping.BEST_MATCHING_PATTERN_ATTRIBUTE`.

A specific tag provider for WebFlux.fn is no longer necessary.

See gh-14876
pull/14894/head
Brian Clozel 6 years ago
parent 64c9dfe7d6
commit 5bf51f52b9

@ -21,7 +21,6 @@ import io.micrometer.core.instrument.Tag;
import org.springframework.http.HttpStatus;
import org.springframework.util.StringUtils;
import org.springframework.web.reactive.HandlerMapping;
import org.springframework.web.reactive.function.server.RouterFunctions;
import org.springframework.web.server.ServerWebExchange;
import org.springframework.web.util.pattern.PathPattern;
@ -87,9 +86,7 @@ public final class WebFluxTags {
/**
* Creates a {@code uri} tag based on the URI of the given {@code exchange}. Uses the
* {@link HandlerMapping#BEST_MATCHING_PATTERN_ATTRIBUTE} best matching pattern from
* WebFlux annotation or {@link RouterFunctions#MATCHING_PATTERN_ATTRIBUTE} from
* WebFlux Fn.
* {@link HandlerMapping#BEST_MATCHING_PATTERN_ATTRIBUTE} best matching pattern.
* @param exchange the exchange
* @return the uri tag derived from the exchange
*/
@ -99,11 +96,6 @@ public final class WebFluxTags {
if (pathPattern != null) {
return Tag.of("uri", pathPattern.getPatternString());
}
String matchingPattern = exchange
.getAttribute(RouterFunctions.MATCHING_PATTERN_ATTRIBUTE);
if (matchingPattern != null) {
return Tag.of("uri", matchingPattern);
}
HttpStatus status = exchange.getResponse().getStatusCode();
if (status != null) {
if (status.is3xxRedirection()) {

@ -25,7 +25,6 @@ import org.springframework.http.server.reactive.ServerHttpRequest;
import org.springframework.mock.http.server.reactive.MockServerHttpRequest;
import org.springframework.mock.web.server.MockServerWebExchange;
import org.springframework.web.reactive.HandlerMapping;
import org.springframework.web.reactive.function.server.RouterFunctions;
import org.springframework.web.server.ServerWebExchange;
import org.springframework.web.util.pattern.PathPatternParser;
@ -59,15 +58,6 @@ public class WebFluxTagsTests {
assertThat(tag.getValue()).isEqualTo("/spring");
}
@Test
public void uriTagValueIsFnMatchingPatternWhenAvailable() {
this.exchange.getAttributes().put(RouterFunctions.MATCHING_PATTERN_ATTRIBUTE,
"/spring");
this.exchange.getResponse().setStatusCode(HttpStatus.MOVED_PERMANENTLY);
Tag tag = WebFluxTags.uri(this.exchange);
assertThat(tag.getValue()).isEqualTo("/spring");
}
@Test
public void uriTagValueIsRedirectionWhenResponseStatusIs3xx() {
this.exchange.getResponse().setStatusCode(HttpStatus.MOVED_PERMANENTLY);

Loading…
Cancel
Save