Skip to content

Commit f6e16c8

Browse files
authored
Bring back webflux client instrumentation (#406)
1 parent 2308c69 commit f6e16c8

File tree

4 files changed

+6
-17
lines changed

4 files changed

+6
-17
lines changed

instrumentation/spring-webflux-5.0/src/main/java/io/opentelemetry/auto/instrumentation/springwebflux/client/WebClientFilterInstrumentation.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,14 @@
2222
import static net.bytebuddy.matcher.ElementMatchers.isPublic;
2323
import static net.bytebuddy.matcher.ElementMatchers.named;
2424

25+
import com.google.auto.service.AutoService;
2526
import io.opentelemetry.auto.tooling.Instrumenter;
2627
import java.util.Map;
2728
import net.bytebuddy.description.method.MethodDescription;
2829
import net.bytebuddy.description.type.TypeDescription;
2930
import net.bytebuddy.matcher.ElementMatcher;
3031

31-
// FIXME this instrumentation is not currently reliable, see DefaultWebClientAdvice
32-
// @AutoService(Instrumenter.class)
32+
@AutoService(Instrumenter.class)
3333
public class WebClientFilterInstrumentation extends Instrumenter.Default {
3434

3535
public WebClientFilterInstrumentation() {

instrumentation/spring-webflux-5.0/src/main/java8/io/opentelemetry/auto/instrumentation/springwebflux/client/WebClientTracingFilter.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import static io.opentelemetry.auto.instrumentation.springwebflux.client.HttpHeadersInjectAdapter.SETTER;
1919
import static io.opentelemetry.auto.instrumentation.springwebflux.client.SpringWebfluxHttpClientDecorator.DECORATE;
2020
import static io.opentelemetry.auto.instrumentation.springwebflux.client.SpringWebfluxHttpClientDecorator.TRACER;
21+
import static io.opentelemetry.trace.Span.Kind.CLIENT;
2122

2223
import io.grpc.Context;
2324
import io.opentelemetry.OpenTelemetry;
@@ -38,13 +39,13 @@ public static void addFilter(final List<ExchangeFilterFunction> exchangeFilterFu
3839

3940
@Override
4041
public Mono<ClientResponse> filter(final ClientRequest request, final ExchangeFunction next) {
41-
final Span span = TRACER.spanBuilder("http.request").startSpan();
42+
final Span span =
43+
TRACER.spanBuilder(DECORATE.spanNameForRequest(request)).setSpanKind(CLIENT).startSpan();
4244
DECORATE.afterStart(span);
4345

4446
try (final Scope scope = TRACER.withSpan(span)) {
4547
final ClientRequest mutatedRequest =
4648
ClientRequest.from(request)
47-
.attribute(Span.class.getName(), span)
4849
.headers(
4950
httpHeaders ->
5051
OpenTelemetry.getPropagators()

instrumentation/spring-webflux-5.0/src/main/java8/io/opentelemetry/auto/instrumentation/springwebflux/server/AdviceUtils.java

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727
import lombok.extern.slf4j.Slf4j;
2828
import org.reactivestreams.Publisher;
2929
import org.reactivestreams.Subscription;
30-
import org.springframework.web.reactive.function.client.ClientRequest;
3130
import org.springframework.web.reactive.function.server.ServerRequest;
3231
import org.springframework.web.server.ServerWebExchange;
3332
import reactor.core.CoreSubscriber;
@@ -85,13 +84,6 @@ public static void finishSpanIfPresent(
8584
}
8685
}
8786

88-
public static void finishSpanIfPresent(
89-
final ClientRequest clientRequest, final Throwable throwable) {
90-
if (clientRequest != null) {
91-
finishSpanIfPresentInAttributes(clientRequest.attributes(), throwable);
92-
}
93-
}
94-
9587
private static void finishSpanIfPresentInAttributes(
9688
final Map<String, Object> attributes, final Throwable throwable) {
9789

instrumentation/spring-webflux-5.0/src/test/groovy/client/SpringWebfluxHttpClientTest.groovy

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,10 @@ import io.opentelemetry.auto.test.base.HttpClientTest
2222
import org.springframework.http.HttpMethod
2323
import org.springframework.web.reactive.function.client.ClientResponse
2424
import org.springframework.web.reactive.function.client.WebClient
25-
import spock.lang.Ignore
2625
import spock.lang.Timeout
2726

2827
import static io.opentelemetry.trace.Span.Kind.CLIENT
2928

30-
// FIXME this instrumentation is not currently reliable and so is currently disabled
31-
// see DefaultWebClientInstrumentation and DefaultWebClientAdvice
32-
@Ignore
3329
@Timeout(5)
3430
class SpringWebfluxHttpClientTest extends HttpClientTest {
3531

@@ -54,7 +50,7 @@ class SpringWebfluxHttpClientTest extends HttpClientTest {
5450
if (!exception) {
5551
trace.span(index + 1) {
5652
childOf(trace.span(index))
57-
operationName "netty.client.request"
53+
operationName "HTTP $method"
5854
spanKind CLIENT
5955
errored exception != null
6056
tags {

0 commit comments

Comments
 (0)