Skip to content

Commit 65d8b4b

Browse files
committed
create instrumenter directly, aligning code between agent and library
1 parent bd45916 commit 65d8b4b

File tree

27 files changed

+165
-102
lines changed

27 files changed

+165
-102
lines changed

instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/builder/AbstractHttpClientTelemetryBuilder.java

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,15 @@
77

88
import com.google.errorprone.annotations.CanIgnoreReturnValue;
99
import io.opentelemetry.api.OpenTelemetry;
10+
import io.opentelemetry.context.propagation.TextMapSetter;
1011
import io.opentelemetry.instrumentation.api.incubator.semconv.http.HttpClientExperimentalMetrics;
1112
import io.opentelemetry.instrumentation.api.incubator.semconv.http.HttpClientPeerServiceAttributesExtractor;
1213
import io.opentelemetry.instrumentation.api.incubator.semconv.http.HttpExperimentalAttributesExtractor;
1314
import io.opentelemetry.instrumentation.api.incubator.semconv.net.PeerServiceResolver;
1415
import io.opentelemetry.instrumentation.api.instrumenter.AttributesExtractor;
1516
import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter;
1617
import io.opentelemetry.instrumentation.api.instrumenter.InstrumenterBuilder;
18+
import io.opentelemetry.instrumentation.api.instrumenter.SpanKindExtractor;
1719
import io.opentelemetry.instrumentation.api.instrumenter.SpanNameExtractor;
1820
import io.opentelemetry.instrumentation.api.semconv.http.HttpClientAttributesExtractor;
1921
import io.opentelemetry.instrumentation.api.semconv.http.HttpClientAttributesExtractorBuilder;
@@ -24,7 +26,9 @@
2426
import io.opentelemetry.instrumentation.api.semconv.http.HttpSpanStatusExtractor;
2527
import java.util.ArrayList;
2628
import java.util.List;
29+
import java.util.Optional;
2730
import java.util.Set;
31+
import java.util.function.Consumer;
2832
import java.util.function.Function;
2933

3034
public abstract class AbstractHttpClientTelemetryBuilder<SELF, REQUEST, RESPONSE> {
@@ -37,6 +41,7 @@ public abstract class AbstractHttpClientTelemetryBuilder<SELF, REQUEST, RESPONSE
3741
private final HttpClientAttributesExtractorBuilder<REQUEST, RESPONSE>
3842
httpAttributesExtractorBuilder;
3943
private final HttpClientAttributesGetter<REQUEST, RESPONSE> attributesGetter;
44+
private final Optional<TextMapSetter<REQUEST>> headerSetter;
4045
private final HttpSpanNameExtractorBuilder<REQUEST> httpSpanNameExtractorBuilder;
4146
private Function<SpanNameExtractor<REQUEST>, ? extends SpanNameExtractor<? super REQUEST>>
4247
spanNameExtractorTransformer = Function.identity();
@@ -45,12 +50,14 @@ public abstract class AbstractHttpClientTelemetryBuilder<SELF, REQUEST, RESPONSE
4550
public AbstractHttpClientTelemetryBuilder(
4651
String instrumentationName,
4752
OpenTelemetry openTelemetry,
48-
HttpClientAttributesGetter<REQUEST, RESPONSE> attributesGetter) {
53+
HttpClientAttributesGetter<REQUEST, RESPONSE> attributesGetter,
54+
Optional<TextMapSetter<REQUEST>> headerSetter) {
4955
this.instrumentationName = instrumentationName;
5056
this.openTelemetry = openTelemetry;
5157
httpSpanNameExtractorBuilder = HttpSpanNameExtractor.builder(attributesGetter);
5258
httpAttributesExtractorBuilder = HttpClientAttributesExtractor.builder(attributesGetter);
5359
this.attributesGetter = attributesGetter;
60+
this.headerSetter = headerSetter;
5461
}
5562

5663
/**
@@ -134,7 +141,12 @@ public SELF setPeerServiceResolver(PeerServiceResolver peerServiceResolver) {
134141
HttpClientPeerServiceAttributesExtractor.create(attributesGetter, peerServiceResolver));
135142
}
136143

137-
public InstrumenterBuilder<REQUEST, RESPONSE> instrumenterBuilder() {
144+
public Instrumenter<REQUEST, RESPONSE> instrumenter() {
145+
return instrumenter(b -> {});
146+
}
147+
148+
public Instrumenter<REQUEST, RESPONSE> instrumenter(
149+
Consumer<InstrumenterBuilder<REQUEST, RESPONSE>> instrumenterBuilderConsumer) {
138150
SpanNameExtractor<? super REQUEST> spanNameExtractor =
139151
spanNameExtractorTransformer.apply(httpSpanNameExtractorBuilder.build());
140152

@@ -150,8 +162,12 @@ public InstrumenterBuilder<REQUEST, RESPONSE> instrumenterBuilder() {
150162
.addAttributesExtractor(HttpExperimentalAttributesExtractor.create(attributesGetter))
151163
.addOperationMetrics(HttpClientExperimentalMetrics.get());
152164
}
165+
instrumenterBuilderConsumer.accept(builder);
153166

154-
return builder;
167+
if (headerSetter.isPresent()) {
168+
return builder.buildClientInstrumenter(headerSetter.get());
169+
}
170+
return builder.buildInstrumenter(SpanKindExtractor.alwaysClient());
155171
}
156172

157173
@SuppressWarnings("unchecked")

instrumentation/akka/akka-http-10.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/akkahttp/client/AkkaHttpClientSingletons.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@
99
import akka.http.scaladsl.model.HttpResponse;
1010
import io.opentelemetry.api.GlobalOpenTelemetry;
1111
import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter;
12-
import io.opentelemetry.instrumentation.api.instrumenter.SpanKindExtractor;
1312
import io.opentelemetry.javaagent.bootstrap.internal.JavaagentHttpClientInstrumenterBuilder;
1413
import io.opentelemetry.javaagent.instrumentation.akkahttp.AkkaHttpUtil;
14+
import java.util.Optional;
1515

1616
public class AkkaHttpClientSingletons {
1717

@@ -22,8 +22,9 @@ public class AkkaHttpClientSingletons {
2222
SETTER = new HttpHeaderSetter(GlobalOpenTelemetry.getPropagators());
2323
INSTRUMENTER =
2424
JavaagentHttpClientInstrumenterBuilder.create(
25-
AkkaHttpUtil.instrumentationName(), new AkkaHttpClientAttributesGetter())
26-
.buildInstrumenter(SpanKindExtractor.alwaysClient());
25+
AkkaHttpUtil.instrumentationName(),
26+
new AkkaHttpClientAttributesGetter(),
27+
Optional.empty());
2728
}
2829

2930
public static Instrumenter<HttpRequest, HttpResponse> instrumenter() {

instrumentation/apache-httpasyncclient-4.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachehttpasyncclient/ApacheHttpAsyncClientSingletons.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter;
99
import io.opentelemetry.javaagent.bootstrap.internal.JavaagentHttpClientInstrumenterBuilder;
10+
import java.util.Optional;
1011
import org.apache.http.HttpResponse;
1112

1213
public final class ApacheHttpAsyncClientSingletons {
@@ -17,8 +18,9 @@ public final class ApacheHttpAsyncClientSingletons {
1718
static {
1819
INSTRUMENTER =
1920
JavaagentHttpClientInstrumenterBuilder.create(
20-
INSTRUMENTATION_NAME, new ApacheHttpAsyncClientHttpAttributesGetter())
21-
.buildClientInstrumenter(HttpHeaderSetter.INSTANCE);
21+
INSTRUMENTATION_NAME,
22+
new ApacheHttpAsyncClientHttpAttributesGetter(),
23+
Optional.of(HttpHeaderSetter.INSTANCE));
2224
}
2325

2426
public static Instrumenter<ApacheHttpClientRequest, HttpResponse> instrumenter() {

instrumentation/apache-httpclient/apache-httpclient-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachehttpclient/v2_0/ApacheHttpClientSingletons.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter;
99
import io.opentelemetry.javaagent.bootstrap.internal.JavaagentHttpClientInstrumenterBuilder;
10+
import java.util.Optional;
1011
import org.apache.commons.httpclient.HttpMethod;
1112

1213
public final class ApacheHttpClientSingletons {
@@ -17,8 +18,9 @@ public final class ApacheHttpClientSingletons {
1718
static {
1819
INSTRUMENTER =
1920
JavaagentHttpClientInstrumenterBuilder.create(
20-
INSTRUMENTATION_NAME, new ApacheHttpClientHttpAttributesGetter())
21-
.buildClientInstrumenter(HttpHeaderSetter.INSTANCE);
21+
INSTRUMENTATION_NAME,
22+
new ApacheHttpClientHttpAttributesGetter(),
23+
Optional.of(HttpHeaderSetter.INSTANCE));
2224
}
2325

2426
public static Instrumenter<HttpMethod, HttpMethod> instrumenter() {

instrumentation/apache-httpclient/apache-httpclient-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachehttpclient/v4_0/ApacheHttpClientSingletons.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter;
99
import io.opentelemetry.javaagent.bootstrap.internal.JavaagentHttpClientInstrumenterBuilder;
10+
import java.util.Optional;
1011
import org.apache.http.HttpResponse;
1112

1213
public final class ApacheHttpClientSingletons {
@@ -17,8 +18,9 @@ public final class ApacheHttpClientSingletons {
1718
static {
1819
INSTRUMENTER =
1920
JavaagentHttpClientInstrumenterBuilder.create(
20-
INSTRUMENTATION_NAME, new ApacheHttpClientHttpAttributesGetter())
21-
.buildClientInstrumenter(HttpHeaderSetter.INSTANCE);
21+
INSTRUMENTATION_NAME,
22+
new ApacheHttpClientHttpAttributesGetter(),
23+
Optional.of(HttpHeaderSetter.INSTANCE));
2224
}
2325

2426
public static Instrumenter<ApacheHttpClientRequest, HttpResponse> instrumenter() {

instrumentation/apache-httpclient/apache-httpclient-4.3/library/src/main/java/io/opentelemetry/instrumentation/apachehttpclient/v4_3/ApacheHttpClientTelemetryBuilder.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
import io.opentelemetry.api.OpenTelemetry;
99
import io.opentelemetry.instrumentation.api.incubator.builder.AbstractHttpClientTelemetryBuilder;
10-
import io.opentelemetry.instrumentation.api.instrumenter.SpanKindExtractor;
10+
import java.util.Optional;
1111
import org.apache.http.HttpResponse;
1212

1313
/** A builder for {@link ApacheHttpClientTelemetry}. */
@@ -18,7 +18,11 @@ public final class ApacheHttpClientTelemetryBuilder
1818
private static final String INSTRUMENTATION_NAME = "io.opentelemetry.apache-httpclient-4.3";
1919

2020
ApacheHttpClientTelemetryBuilder(OpenTelemetry openTelemetry) {
21-
super(INSTRUMENTATION_NAME, openTelemetry, ApacheHttpClientHttpAttributesGetter.INSTANCE);
21+
super(
22+
INSTRUMENTATION_NAME,
23+
openTelemetry,
24+
ApacheHttpClientHttpAttributesGetter.INSTANCE,
25+
Optional.empty());
2226
}
2327

2428
/**
@@ -27,8 +31,6 @@ public final class ApacheHttpClientTelemetryBuilder
2731
*/
2832
public ApacheHttpClientTelemetry build() {
2933
// We manually inject because we need to inject internal requests for redirects.
30-
return new ApacheHttpClientTelemetry(
31-
instrumenterBuilder().buildInstrumenter(SpanKindExtractor.alwaysClient()),
32-
openTelemetry.getPropagators());
34+
return new ApacheHttpClientTelemetry(instrumenter(), openTelemetry.getPropagators());
3335
}
3436
}

instrumentation/apache-httpclient/apache-httpclient-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachehttpclient/v5_0/ApacheHttpClientSingletons.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter;
99
import io.opentelemetry.javaagent.bootstrap.internal.JavaagentHttpClientInstrumenterBuilder;
10+
import java.util.Optional;
1011
import org.apache.hc.core5.http.HttpRequest;
1112
import org.apache.hc.core5.http.HttpResponse;
1213

@@ -18,8 +19,9 @@ public final class ApacheHttpClientSingletons {
1819
static {
1920
INSTRUMENTER =
2021
JavaagentHttpClientInstrumenterBuilder.create(
21-
INSTRUMENTATION_NAME, new ApacheHttpClientHttpAttributesGetter())
22-
.buildClientInstrumenter(HttpHeaderSetter.INSTANCE);
22+
INSTRUMENTATION_NAME,
23+
new ApacheHttpClientHttpAttributesGetter(),
24+
Optional.of(HttpHeaderSetter.INSTANCE));
2325
}
2426

2527
public static Instrumenter<HttpRequest, HttpResponse> instrumenter() {

instrumentation/apache-httpclient/apache-httpclient-5.2/library/src/main/java/io/opentelemetry/instrumentation/apachehttpclient/v5_2/ApacheHttpClient5TelemetryBuilder.java

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,7 @@
77

88
import io.opentelemetry.api.OpenTelemetry;
99
import io.opentelemetry.instrumentation.api.incubator.builder.AbstractHttpClientTelemetryBuilder;
10-
import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter;
11-
import io.opentelemetry.instrumentation.api.instrumenter.SpanKindExtractor;
10+
import java.util.Optional;
1211
import org.apache.hc.core5.http.HttpResponse;
1312

1413
/** A builder for {@link ApacheHttpClient5Telemetry}. */
@@ -19,19 +18,19 @@ public final class ApacheHttpClient5TelemetryBuilder
1918
private static final String INSTRUMENTATION_NAME = "io.opentelemetry.apache-httpclient-5.2";
2019

2120
ApacheHttpClient5TelemetryBuilder(OpenTelemetry openTelemetry) {
22-
super(INSTRUMENTATION_NAME, openTelemetry, ApacheHttpClient5HttpAttributesGetter.INSTANCE);
21+
super(
22+
INSTRUMENTATION_NAME,
23+
openTelemetry,
24+
ApacheHttpClient5HttpAttributesGetter.INSTANCE,
25+
// We manually inject because we need to inject internal requests for redirects.
26+
Optional.empty());
2327
}
2428

2529
/**
2630
* Returns a new {@link ApacheHttpClient5Telemetry} configured with this {@link
2731
* ApacheHttpClient5TelemetryBuilder}.
2832
*/
2933
public ApacheHttpClient5Telemetry build() {
30-
Instrumenter<ApacheHttpClient5Request, HttpResponse> instrumenter =
31-
instrumenterBuilder()
32-
// We manually inject because we need to inject internal requests for redirects.
33-
.buildInstrumenter(SpanKindExtractor.alwaysClient());
34-
35-
return new ApacheHttpClient5Telemetry(instrumenter, openTelemetry.getPropagators());
34+
return new ApacheHttpClient5Telemetry(instrumenter(), openTelemetry.getPropagators());
3635
}
3736
}

instrumentation/async-http-client/async-http-client-1.9/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/asynchttpclient/v1_9/AsyncHttpClientSingletons.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import com.ning.http.client.Response;
1010
import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter;
1111
import io.opentelemetry.javaagent.bootstrap.internal.JavaagentHttpClientInstrumenterBuilder;
12+
import java.util.Optional;
1213

1314
public final class AsyncHttpClientSingletons {
1415
private static final String INSTRUMENTATION_NAME = "io.opentelemetry.async-http-client-1.9";
@@ -18,8 +19,9 @@ public final class AsyncHttpClientSingletons {
1819
static {
1920
INSTRUMENTER =
2021
JavaagentHttpClientInstrumenterBuilder.create(
21-
INSTRUMENTATION_NAME, new AsyncHttpClientHttpAttributesGetter())
22-
.buildClientInstrumenter(HttpHeaderSetter.INSTANCE);
22+
INSTRUMENTATION_NAME,
23+
new AsyncHttpClientHttpAttributesGetter(),
24+
Optional.of(HttpHeaderSetter.INSTANCE));
2325
}
2426

2527
public static Instrumenter<Request, Response> instrumenter() {

instrumentation/async-http-client/async-http-client-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/asynchttpclient/v2_0/AsyncHttpClientSingletons.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter;
99
import io.opentelemetry.javaagent.bootstrap.internal.JavaagentHttpClientInstrumenterBuilder;
10+
import java.util.Optional;
1011
import org.asynchttpclient.Response;
1112

1213
public final class AsyncHttpClientSingletons {
@@ -17,8 +18,9 @@ public final class AsyncHttpClientSingletons {
1718
static {
1819
INSTRUMENTER =
1920
JavaagentHttpClientInstrumenterBuilder.create(
20-
INSTRUMENTATION_NAME, new AsyncHttpClientHttpAttributesGetter())
21-
.buildClientInstrumenter(HttpHeaderSetter.INSTANCE);
21+
INSTRUMENTATION_NAME,
22+
new AsyncHttpClientHttpAttributesGetter(),
23+
Optional.of(HttpHeaderSetter.INSTANCE));
2224
}
2325

2426
public static Instrumenter<RequestContext, Response> instrumenter() {

instrumentation/google-http-client-1.19/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/googlehttpclient/GoogleHttpClientSingletons.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import com.google.api.client.http.HttpResponse;
1010
import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter;
1111
import io.opentelemetry.javaagent.bootstrap.internal.JavaagentHttpClientInstrumenterBuilder;
12+
import java.util.Optional;
1213

1314
public class GoogleHttpClientSingletons {
1415
private static final String INSTRUMENTATION_NAME = "io.opentelemetry.google-http-client-1.19";
@@ -18,8 +19,9 @@ public class GoogleHttpClientSingletons {
1819
static {
1920
INSTRUMENTER =
2021
JavaagentHttpClientInstrumenterBuilder.create(
21-
INSTRUMENTATION_NAME, new GoogleHttpClientHttpAttributesGetter())
22-
.buildClientInstrumenter(HttpHeaderSetter.INSTANCE);
22+
INSTRUMENTATION_NAME,
23+
new GoogleHttpClientHttpAttributesGetter(),
24+
Optional.of(HttpHeaderSetter.INSTANCE));
2325
}
2426

2527
public static Instrumenter<HttpRequest, HttpResponse> instrumenter() {

instrumentation/http-url-connection/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/httpurlconnection/HttpUrlConnectionSingletons.java

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,22 +9,26 @@
99
import io.opentelemetry.javaagent.bootstrap.internal.CommonConfig;
1010
import io.opentelemetry.javaagent.bootstrap.internal.JavaagentHttpClientInstrumenterBuilder;
1111
import java.net.HttpURLConnection;
12+
import java.util.Optional;
1213

1314
public final class HttpUrlConnectionSingletons {
1415

1516
private static final Instrumenter<HttpURLConnection, Integer> INSTRUMENTER;
1617

1718
static {
1819
INSTRUMENTER =
19-
JavaagentHttpClientInstrumenterBuilder.create(
20-
"io.opentelemetry.http-url-connection", new HttpUrlHttpAttributesGetter())
21-
.addAttributesExtractor(
22-
HttpMethodAttributeExtractor.create(
23-
CommonConfig.get().getKnownHttpRequestMethods()))
24-
.addContextCustomizer(
25-
(context, httpRequestPacket, startAttributes) ->
26-
GetOutputStreamContext.init(context))
27-
.buildClientInstrumenter(RequestPropertySetter.INSTANCE);
20+
JavaagentHttpClientInstrumenterBuilder.createWithCustomizer(
21+
"io.opentelemetry.http-url-connection",
22+
new HttpUrlHttpAttributesGetter(),
23+
Optional.of(RequestPropertySetter.INSTANCE),
24+
builder ->
25+
builder
26+
.addAttributesExtractor(
27+
HttpMethodAttributeExtractor.create(
28+
CommonConfig.get().getKnownHttpRequestMethods()))
29+
.addContextCustomizer(
30+
(context, httpRequestPacket, startAttributes) ->
31+
GetOutputStreamContext.init(context)));
2832
}
2933

3034
public static Instrumenter<HttpURLConnection, Integer> instrumenter() {

instrumentation/java-http-client/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/httpclient/JavaHttpClientSingletons.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77

88
import io.opentelemetry.api.GlobalOpenTelemetry;
99
import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter;
10-
import io.opentelemetry.instrumentation.api.instrumenter.SpanKindExtractor;
1110
import io.opentelemetry.instrumentation.httpclient.JavaHttpClientTelemetry;
1211
import io.opentelemetry.instrumentation.httpclient.internal.HttpHeadersSetter;
1312
import io.opentelemetry.javaagent.bootstrap.internal.JavaagentHttpClientInstrumenterBuilder;
@@ -24,8 +23,7 @@ public class JavaHttpClientSingletons {
2423

2524
INSTRUMENTER =
2625
JavaagentHttpClientInstrumenterBuilder.create(
27-
JavaHttpClientTelemetry.builder(GlobalOpenTelemetry.get()))
28-
.buildInstrumenter(SpanKindExtractor.alwaysClient());
26+
JavaHttpClientTelemetry.builder(GlobalOpenTelemetry.get()));
2927
}
3028

3129
public static Instrumenter<HttpRequest, HttpResponse<?>> instrumenter() {

instrumentation/java-http-client/library/src/main/java/io/opentelemetry/instrumentation/httpclient/JavaHttpClientTelemetryBuilder.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,11 @@
77

88
import io.opentelemetry.api.OpenTelemetry;
99
import io.opentelemetry.instrumentation.api.incubator.builder.AbstractHttpClientTelemetryBuilder;
10-
import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter;
11-
import io.opentelemetry.instrumentation.api.instrumenter.SpanKindExtractor;
1210
import io.opentelemetry.instrumentation.httpclient.internal.HttpHeadersSetter;
1311
import io.opentelemetry.instrumentation.httpclient.internal.JavaHttpClientAttributesGetter;
1412
import java.net.http.HttpRequest;
1513
import java.net.http.HttpResponse;
14+
import java.util.Optional;
1615

1716
public final class JavaHttpClientTelemetryBuilder
1817
extends AbstractHttpClientTelemetryBuilder<
@@ -21,14 +20,15 @@ public final class JavaHttpClientTelemetryBuilder
2120
private static final String INSTRUMENTATION_NAME = "io.opentelemetry.java-http-client";
2221

2322
JavaHttpClientTelemetryBuilder(OpenTelemetry openTelemetry) {
24-
super(INSTRUMENTATION_NAME, openTelemetry, JavaHttpClientAttributesGetter.INSTANCE);
23+
super(
24+
INSTRUMENTATION_NAME,
25+
openTelemetry,
26+
JavaHttpClientAttributesGetter.INSTANCE,
27+
Optional.empty());
2528
}
2629

2730
public JavaHttpClientTelemetry build() {
28-
Instrumenter<HttpRequest, HttpResponse<?>> instrumenter =
29-
instrumenterBuilder().buildInstrumenter(SpanKindExtractor.alwaysClient());
30-
3131
return new JavaHttpClientTelemetry(
32-
instrumenter, new HttpHeadersSetter(openTelemetry.getPropagators()));
32+
instrumenter(), new HttpHeadersSetter(openTelemetry.getPropagators()));
3333
}
3434
}

0 commit comments

Comments
 (0)