Skip to content

Commit c75be49

Browse files
committed
httpconfigure
1 parent edc0ef3 commit c75be49

File tree

18 files changed

+52
-72
lines changed

18 files changed

+52
-72
lines changed

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

Lines changed: 20 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
import io.opentelemetry.api.common.AttributeKey;
1111
import io.opentelemetry.context.Context;
1212
import io.opentelemetry.context.propagation.TextMapSetter;
13-
import io.opentelemetry.instrumentation.api.incubator.config.internal.CommonConfig;
13+
import io.opentelemetry.instrumentation.api.incubator.config.internal.DeclarativeConfigUtil;
1414
import io.opentelemetry.instrumentation.api.incubator.semconv.http.HttpClientExperimentalMetrics;
1515
import io.opentelemetry.instrumentation.api.incubator.semconv.http.HttpClientPeerServiceAttributesExtractor;
1616
import io.opentelemetry.instrumentation.api.incubator.semconv.http.HttpExperimentalAttributesExtractor;
@@ -35,8 +35,6 @@
3535
import java.util.Collection;
3636
import java.util.List;
3737
import java.util.Objects;
38-
import java.util.function.Consumer;
39-
import java.util.function.Supplier;
4038
import java.util.function.UnaryOperator;
4139
import javax.annotation.Nullable;
4240

@@ -265,22 +263,25 @@ InstrumenterBuilder<BUILDERREQUEST, BUILDERRESPONSE> instrumenterBuilder(
265263
}
266264

267265
@CanIgnoreReturnValue
268-
public DefaultHttpClientInstrumenterBuilder<REQUEST, RESPONSE> configure(CommonConfig config) {
269-
set(config::getKnownHttpRequestMethods, this::setKnownMethods);
270-
set(config::getClientRequestHeaders, this::setCapturedRequestHeaders);
271-
set(config::getClientResponseHeaders, this::setCapturedResponseHeaders);
272-
set(config::getPeerServiceResolver, this::setPeerServiceResolver);
273-
set(
274-
config::shouldEmitExperimentalHttpClientTelemetry,
275-
this::setEmitExperimentalHttpClientTelemetry);
276-
set(config::redactQueryParameters, this::setRedactQueryParameters);
266+
public DefaultHttpClientInstrumenterBuilder<REQUEST, RESPONSE> configure(
267+
OpenTelemetry openTelemetry) {
268+
DeclarativeConfigUtil.getList(openTelemetry, "general", "http", "known_methods")
269+
.ifPresent(this::setKnownMethods);
270+
DeclarativeConfigUtil.getList(
271+
openTelemetry, "general", "http", "client", "request_captured_headers")
272+
.ifPresent(this::setCapturedRequestHeaders);
273+
DeclarativeConfigUtil.getList(
274+
openTelemetry, "general", "http", "client", "response_captured_headers")
275+
.ifPresent(this::setCapturedResponseHeaders);
276+
setPeerServiceResolver(PeerServiceResolver.create(openTelemetry));
277+
setEmitExperimentalHttpClientTelemetry(
278+
DeclarativeConfigUtil.getBoolean(
279+
openTelemetry, "general", "http", "client", "emit_telemetry/development")
280+
.orElse(false));
281+
setRedactQueryParameters(
282+
DeclarativeConfigUtil.getBoolean(
283+
openTelemetry, "general", "http", "client", "redact_query_parameters/development")
284+
.orElse(true));
277285
return this;
278286
}
279-
280-
private static <T> void set(Supplier<T> supplier, Consumer<T> consumer) {
281-
T t = supplier.get();
282-
if (t != null) {
283-
consumer.accept(t);
284-
}
285-
}
286287
}

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

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import com.google.errorprone.annotations.CanIgnoreReturnValue;
99
import io.opentelemetry.api.OpenTelemetry;
1010
import io.opentelemetry.context.propagation.TextMapGetter;
11-
import io.opentelemetry.instrumentation.api.incubator.config.internal.CommonConfig;
11+
import io.opentelemetry.instrumentation.api.incubator.config.internal.DeclarativeConfigUtil;
1212
import io.opentelemetry.instrumentation.api.incubator.semconv.http.HttpExperimentalAttributesExtractor;
1313
import io.opentelemetry.instrumentation.api.incubator.semconv.http.HttpServerExperimentalMetrics;
1414
import io.opentelemetry.instrumentation.api.instrumenter.AttributesExtractor;
@@ -31,8 +31,6 @@
3131
import java.util.Collection;
3232
import java.util.List;
3333
import java.util.Objects;
34-
import java.util.function.Consumer;
35-
import java.util.function.Supplier;
3634
import java.util.function.UnaryOperator;
3735
import javax.annotation.Nullable;
3836

@@ -224,20 +222,20 @@ public InstrumenterBuilder<REQUEST, RESPONSE> instrumenterBuilder() {
224222
}
225223

226224
@CanIgnoreReturnValue
227-
public DefaultHttpServerInstrumenterBuilder<REQUEST, RESPONSE> configure(CommonConfig config) {
228-
set(config::getKnownHttpRequestMethods, this::setKnownMethods);
229-
set(config::getServerRequestHeaders, this::setCapturedRequestHeaders);
230-
set(config::getServerResponseHeaders, this::setCapturedResponseHeaders);
231-
set(
232-
config::shouldEmitExperimentalHttpServerTelemetry,
233-
this::setEmitExperimentalHttpServerTelemetry);
225+
public DefaultHttpServerInstrumenterBuilder<REQUEST, RESPONSE> configure(
226+
OpenTelemetry openTelemetry) {
227+
DeclarativeConfigUtil.getList(openTelemetry, "general", "http", "known_methods")
228+
.ifPresent(this::setKnownMethods);
229+
DeclarativeConfigUtil.getList(
230+
openTelemetry, "general", "http", "server", "request_captured_headers")
231+
.ifPresent(this::setCapturedRequestHeaders);
232+
DeclarativeConfigUtil.getList(
233+
openTelemetry, "general", "http", "server", "response_captured_headers")
234+
.ifPresent(this::setCapturedResponseHeaders);
235+
setEmitExperimentalHttpServerTelemetry(
236+
DeclarativeConfigUtil.getBoolean(
237+
openTelemetry, "general", "http", "server", "emit_telemetry/development")
238+
.orElse(false));
234239
return this;
235240
}
236-
237-
private static <T> void set(Supplier<T> supplier, Consumer<T> consumer) {
238-
T t = supplier.get();
239-
if (t != null) {
240-
consumer.accept(t);
241-
}
242-
}
243241
}

instrumentation/armeria/armeria-1.3/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/armeria/v1_3/ArmeriaSingletons.java

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,11 @@
88
import com.linecorp.armeria.client.HttpClient;
99
import com.linecorp.armeria.server.HttpService;
1010
import io.opentelemetry.api.GlobalOpenTelemetry;
11-
import io.opentelemetry.instrumentation.api.incubator.config.internal.CommonConfig;
1211
import io.opentelemetry.instrumentation.armeria.v1_3.ArmeriaClientTelemetry;
1312
import io.opentelemetry.instrumentation.armeria.v1_3.ArmeriaClientTelemetryBuilder;
1413
import io.opentelemetry.instrumentation.armeria.v1_3.ArmeriaServerTelemetry;
1514
import io.opentelemetry.instrumentation.armeria.v1_3.ArmeriaServerTelemetryBuilder;
1615
import io.opentelemetry.instrumentation.armeria.v1_3.internal.ArmeriaInstrumenterBuilderUtil;
17-
import io.opentelemetry.javaagent.bootstrap.internal.AgentCommonConfig;
1816
import java.util.function.Function;
1917

2018
// Holds singleton references to decorators to match against during suppression.
@@ -25,20 +23,18 @@ public final class ArmeriaSingletons {
2523
public static final Function<? super HttpService, ? extends HttpService> SERVER_DECORATOR;
2624

2725
static {
28-
CommonConfig config = AgentCommonConfig.get();
29-
3026
ArmeriaClientTelemetryBuilder clientBuilder =
3127
ArmeriaClientTelemetry.builder(GlobalOpenTelemetry.get());
3228
ArmeriaInstrumenterBuilderUtil.getClientBuilderExtractor()
3329
.apply(clientBuilder)
34-
.configure(config);
30+
.configure(GlobalOpenTelemetry.get());
3531
ArmeriaClientTelemetry clientTelemetry = clientBuilder.build();
3632

3733
ArmeriaServerTelemetryBuilder serverBuilder =
3834
ArmeriaServerTelemetry.builder(GlobalOpenTelemetry.get());
3935
ArmeriaInstrumenterBuilderUtil.getServerBuilderExtractor()
4036
.apply(serverBuilder)
41-
.configure(config);
37+
.configure(GlobalOpenTelemetry.get());
4238
ArmeriaServerTelemetry serverTelemetry = serverBuilder.build();
4339

4440
CLIENT_DECORATOR = clientTelemetry.newDecorator();

instrumentation/helidon-4.3/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/helidon/v4_3/HelidonSingletons.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
import io.opentelemetry.api.GlobalOpenTelemetry;
1010
import io.opentelemetry.instrumentation.helidon.v4_3.HelidonTelemetry;
1111
import io.opentelemetry.instrumentation.helidon.v4_3.internal.HelidonInstrumenterBuilderUtil;
12-
import io.opentelemetry.javaagent.bootstrap.internal.AgentCommonConfig;
1312
import java.util.List;
1413

1514
public final class HelidonSingletons {
@@ -20,7 +19,7 @@ public final class HelidonSingletons {
2019
var serverBuilder = HelidonTelemetry.builder(GlobalOpenTelemetry.get());
2120
HelidonInstrumenterBuilderUtil.getServerBuilderExtractor()
2221
.apply(serverBuilder)
23-
.configure(AgentCommonConfig.get());
22+
.configure(GlobalOpenTelemetry.get());
2423
var serverTelemetry = serverBuilder.build();
2524

2625
FILTERS = List.of(serverTelemetry.createFilter(), new ResponseCustomizingFilter());

instrumentation/java-http-server/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/javahttpserver/JavaHttpServerSingletons.java

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,9 @@
77

88
import com.sun.net.httpserver.Filter;
99
import io.opentelemetry.api.GlobalOpenTelemetry;
10-
import io.opentelemetry.instrumentation.api.incubator.config.internal.CommonConfig;
1110
import io.opentelemetry.instrumentation.javahttpserver.JavaHttpServerTelemetry;
1211
import io.opentelemetry.instrumentation.javahttpserver.JavaHttpServerTelemetryBuilder;
1312
import io.opentelemetry.instrumentation.javahttpserver.internal.JavaHttpServerInstrumenterBuilderUtil;
14-
import io.opentelemetry.javaagent.bootstrap.internal.AgentCommonConfig;
1513
import java.util.Arrays;
1614
import java.util.List;
1715

@@ -20,13 +18,11 @@ public final class JavaHttpServerSingletons {
2018
public static final List<Filter> FILTERS;
2119

2220
static {
23-
CommonConfig config = AgentCommonConfig.get();
24-
2521
JavaHttpServerTelemetryBuilder serverBuilder =
2622
JavaHttpServerTelemetry.builder(GlobalOpenTelemetry.get());
2723
JavaHttpServerInstrumenterBuilderUtil.getServerBuilderExtractor()
2824
.apply(serverBuilder)
29-
.configure(config);
25+
.configure(GlobalOpenTelemetry.get());
3026
JavaHttpServerTelemetry serverTelemetry = serverBuilder.build();
3127

3228
FILTERS = Arrays.asList(serverTelemetry.newFilter(), new ResponseCustomizingFilter());

instrumentation/ktor/ktor-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/ktor/v2_0/HttpClientInstrumentation.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
import io.opentelemetry.instrumentation.ktor.v2_0.KtorClientTelemetry;
1717
import io.opentelemetry.instrumentation.ktor.v2_0.KtorClientTelemetryBuilder;
1818
import io.opentelemetry.instrumentation.ktor.v2_0.common.internal.KtorBuilderUtil;
19-
import io.opentelemetry.javaagent.bootstrap.internal.AgentCommonConfig;
2019
import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
2120
import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer;
2221
import kotlin.Unit;
@@ -55,7 +54,7 @@ public static class SetupFunction implements Function1<KtorClientTelemetryBuilde
5554
@Override
5655
public Unit invoke(KtorClientTelemetryBuilder builder) {
5756
builder.setOpenTelemetry(GlobalOpenTelemetry.get());
58-
KtorBuilderUtil.clientBuilderExtractor.invoke(builder).configure(AgentCommonConfig.get());
57+
KtorBuilderUtil.clientBuilderExtractor.invoke(builder).configure(GlobalOpenTelemetry.get());
5958
return kotlin.Unit.INSTANCE;
6059
}
6160
}

instrumentation/ktor/ktor-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/ktor/v2_0/ServerInstrumentation.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
import io.opentelemetry.instrumentation.ktor.v2_0.KtorServerTelemetryBuilderKt;
1515
import io.opentelemetry.instrumentation.ktor.v2_0.common.AbstractKtorServerTelemetryBuilder;
1616
import io.opentelemetry.instrumentation.ktor.v2_0.common.internal.KtorBuilderUtil;
17-
import io.opentelemetry.javaagent.bootstrap.internal.AgentCommonConfig;
1817
import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
1918
import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer;
2019
import kotlin.Unit;
@@ -51,7 +50,7 @@ public static class SetupFunction
5150
@Override
5251
public Unit invoke(AbstractKtorServerTelemetryBuilder builder) {
5352
builder.setOpenTelemetry(GlobalOpenTelemetry.get());
54-
KtorBuilderUtil.serverBuilderExtractor.invoke(builder).configure(AgentCommonConfig.get());
53+
KtorBuilderUtil.serverBuilderExtractor.invoke(builder).configure(GlobalOpenTelemetry.get());
5554
return kotlin.Unit.INSTANCE;
5655
}
5756
}

instrumentation/ktor/ktor-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/ktor/v3_0/HttpClientInstrumentation.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
import io.opentelemetry.instrumentation.ktor.v2_0.common.internal.KtorBuilderUtil;
1717
import io.opentelemetry.instrumentation.ktor.v3_0.KtorClientTelemetry;
1818
import io.opentelemetry.instrumentation.ktor.v3_0.KtorClientTelemetryBuilder;
19-
import io.opentelemetry.javaagent.bootstrap.internal.AgentCommonConfig;
2019
import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
2120
import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer;
2221
import kotlin.Unit;
@@ -55,7 +54,7 @@ public static class SetupFunction implements Function1<KtorClientTelemetryBuilde
5554
@Override
5655
public Unit invoke(KtorClientTelemetryBuilder builder) {
5756
builder.setOpenTelemetry(GlobalOpenTelemetry.get());
58-
KtorBuilderUtil.clientBuilderExtractor.invoke(builder).configure(AgentCommonConfig.get());
57+
KtorBuilderUtil.clientBuilderExtractor.invoke(builder).configure(GlobalOpenTelemetry.get());
5958
return Unit.INSTANCE;
6059
}
6160
}

instrumentation/ktor/ktor-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/ktor/v3_0/ServerInstrumentation.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
import io.opentelemetry.instrumentation.ktor.v2_0.common.AbstractKtorServerTelemetryBuilder;
1616
import io.opentelemetry.instrumentation.ktor.v2_0.common.internal.KtorBuilderUtil;
1717
import io.opentelemetry.instrumentation.ktor.v3_0.KtorServerTelemetryBuilderKt;
18-
import io.opentelemetry.javaagent.bootstrap.internal.AgentCommonConfig;
1918
import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
2019
import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer;
2120
import java.lang.invoke.MethodHandle;
@@ -64,7 +63,7 @@ public static class SetupFunction implements Function1<AbstractKtorServerTelemet
6463
@Override
6564
public Unit invoke(AbstractKtorServerTelemetryBuilder builder) {
6665
builder.setOpenTelemetry(GlobalOpenTelemetry.get());
67-
KtorBuilderUtil.serverBuilderExtractor.invoke(builder).configure(AgentCommonConfig.get());
66+
KtorBuilderUtil.serverBuilderExtractor.invoke(builder).configure(GlobalOpenTelemetry.get());
6867
return Unit.INSTANCE;
6968
}
7069
}

instrumentation/kubernetes-client-7.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/kubernetesclient/KubernetesClientSingletons.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
import io.opentelemetry.context.propagation.ContextPropagators;
1212
import io.opentelemetry.instrumentation.api.incubator.builder.internal.DefaultHttpClientInstrumenterBuilder;
1313
import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter;
14-
import io.opentelemetry.javaagent.bootstrap.internal.AgentCommonConfig;
1514
import io.opentelemetry.javaagent.bootstrap.internal.AgentInstrumentationConfig;
1615
import okhttp3.Request;
1716

@@ -29,7 +28,7 @@ public class KubernetesClientSingletons {
2928
"io.opentelemetry.kubernetes-client-7.0",
3029
GlobalOpenTelemetry.get(),
3130
new KubernetesHttpAttributesGetter())
32-
.configure(AgentCommonConfig.get())
31+
.configure(GlobalOpenTelemetry.get())
3332
.setBuilderCustomizer(
3433
instrumenterBuilder -> {
3534
if (CAPTURE_EXPERIMENTAL_SPAN_ATTRIBUTES) {

0 commit comments

Comments
 (0)