Skip to content

Commit b08d272

Browse files
authored
Remove experimental methods out of (to-be-public) TelemetryBuilder classes (#12847)
1 parent f7472b7 commit b08d272

File tree

23 files changed

+519
-0
lines changed

23 files changed

+519
-0
lines changed

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

+10
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
import com.google.errorprone.annotations.CanIgnoreReturnValue;
99
import io.opentelemetry.api.OpenTelemetry;
10+
import io.opentelemetry.instrumentation.apachehttpclient.v4_3.internal.Experimental;
1011
import io.opentelemetry.instrumentation.api.incubator.builder.internal.DefaultHttpClientInstrumenterBuilder;
1112
import io.opentelemetry.instrumentation.api.instrumenter.AttributesExtractor;
1213
import io.opentelemetry.instrumentation.api.instrumenter.SpanNameExtractor;
@@ -23,6 +24,11 @@ public final class ApacheHttpClientTelemetryBuilder {
2324
private final DefaultHttpClientInstrumenterBuilder<ApacheHttpClientRequest, HttpResponse> builder;
2425
private final OpenTelemetry openTelemetry;
2526

27+
static {
28+
Experimental.setSetEmitExperimentalTelemetry(
29+
(builder, emit) -> builder.builder.setEmitExperimentalHttpClientMetrics(emit));
30+
}
31+
2632
ApacheHttpClientTelemetryBuilder(OpenTelemetry openTelemetry) {
2733
builder =
2834
DefaultHttpClientInstrumenterBuilder.create(
@@ -103,7 +109,11 @@ public ApacheHttpClientTelemetryBuilder setKnownMethods(Set<String> knownMethods
103109
*
104110
* @param emitExperimentalHttpClientMetrics {@code true} if the experimental HTTP client metrics
105111
* are to be emitted.
112+
* @deprecated Use {@link
113+
* Experimental#setEmitExperimentalTelemetry(ApacheHttpClientTelemetryBuilder, boolean)}
114+
* instead.
106115
*/
116+
@Deprecated
107117
@CanIgnoreReturnValue
108118
public ApacheHttpClientTelemetryBuilder setEmitExperimentalHttpClientMetrics(
109119
boolean emitExperimentalHttpClientMetrics) {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
/*
2+
* Copyright The OpenTelemetry Authors
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
package io.opentelemetry.instrumentation.apachehttpclient.v4_3.internal;
7+
8+
import io.opentelemetry.instrumentation.apachehttpclient.v4_3.ApacheHttpClientTelemetryBuilder;
9+
import java.util.function.BiConsumer;
10+
import javax.annotation.Nullable;
11+
12+
/**
13+
* This class is internal and experimental. Its APIs are unstable and can change at any time. Its
14+
* APIs (or a version of them) may be promoted to the public stable API in the future, but no
15+
* guarantees are made.
16+
*/
17+
public final class Experimental {
18+
19+
@Nullable
20+
private static volatile BiConsumer<ApacheHttpClientTelemetryBuilder, Boolean>
21+
setEmitExperimentalTelemetry;
22+
23+
public static void setEmitExperimentalTelemetry(
24+
ApacheHttpClientTelemetryBuilder builder, boolean emitExperimentalTelemetry) {
25+
if (setEmitExperimentalTelemetry != null) {
26+
setEmitExperimentalTelemetry.accept(builder, emitExperimentalTelemetry);
27+
}
28+
}
29+
30+
public static void setSetEmitExperimentalTelemetry(
31+
BiConsumer<ApacheHttpClientTelemetryBuilder, Boolean> setEmitExperimentalTelemetry) {
32+
Experimental.setEmitExperimentalTelemetry = setEmitExperimentalTelemetry;
33+
}
34+
35+
private Experimental() {}
36+
}

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

+10
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import io.opentelemetry.instrumentation.api.instrumenter.AttributesExtractor;
1212
import io.opentelemetry.instrumentation.api.instrumenter.SpanNameExtractor;
1313
import io.opentelemetry.instrumentation.api.semconv.http.HttpClientAttributesExtractorBuilder;
14+
import io.opentelemetry.instrumentation.httpclient.internal.Experimental;
1415
import io.opentelemetry.instrumentation.httpclient.internal.HttpHeadersSetter;
1516
import io.opentelemetry.instrumentation.httpclient.internal.JavaHttpClientInstrumenterBuilderFactory;
1617
import java.net.http.HttpRequest;
@@ -24,6 +25,11 @@ public final class JavaHttpClientTelemetryBuilder {
2425
private final DefaultHttpClientInstrumenterBuilder<HttpRequest, HttpResponse<?>> builder;
2526
private final OpenTelemetry openTelemetry;
2627

28+
static {
29+
Experimental.setSetEmitExperimentalTelemetry(
30+
(builder, emit) -> builder.builder.setEmitExperimentalHttpClientMetrics(emit));
31+
}
32+
2733
JavaHttpClientTelemetryBuilder(OpenTelemetry openTelemetry) {
2834
builder = JavaHttpClientInstrumenterBuilderFactory.create(openTelemetry);
2935
this.openTelemetry = openTelemetry;
@@ -100,7 +106,11 @@ public JavaHttpClientTelemetryBuilder setKnownMethods(Set<String> knownMethods)
100106
*
101107
* @param emitExperimentalHttpClientMetrics {@code true} if the experimental HTTP client metrics
102108
* are to be emitted.
109+
* @deprecated Use {@link
110+
* Experimental#setEmitExperimentalTelemetry(JavaHttpClientTelemetryBuilder, boolean)}
111+
* instead.
103112
*/
113+
@Deprecated
104114
@CanIgnoreReturnValue
105115
public JavaHttpClientTelemetryBuilder setEmitExperimentalHttpClientMetrics(
106116
boolean emitExperimentalHttpClientMetrics) {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
/*
2+
* Copyright The OpenTelemetry Authors
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
package io.opentelemetry.instrumentation.httpclient.internal;
7+
8+
import io.opentelemetry.instrumentation.httpclient.JavaHttpClientTelemetryBuilder;
9+
import java.util.function.BiConsumer;
10+
import javax.annotation.Nullable;
11+
12+
/**
13+
* This class is internal and experimental. Its APIs are unstable and can change at any time. Its
14+
* APIs (or a version of them) may be promoted to the public stable API in the future, but no
15+
* guarantees are made.
16+
*/
17+
public final class Experimental {
18+
19+
@Nullable
20+
private static volatile BiConsumer<JavaHttpClientTelemetryBuilder, Boolean>
21+
setEmitExperimentalTelemetry;
22+
23+
public static void setEmitExperimentalTelemetry(
24+
JavaHttpClientTelemetryBuilder builder, boolean emitExperimentalTelemetry) {
25+
if (setEmitExperimentalTelemetry != null) {
26+
setEmitExperimentalTelemetry.accept(builder, emitExperimentalTelemetry);
27+
}
28+
}
29+
30+
public static void setSetEmitExperimentalTelemetry(
31+
BiConsumer<JavaHttpClientTelemetryBuilder, Boolean> setEmitExperimentalTelemetry) {
32+
Experimental.setEmitExperimentalTelemetry = setEmitExperimentalTelemetry;
33+
}
34+
35+
private Experimental() {}
36+
}

instrumentation/jetty-httpclient/jetty-httpclient-12.0/library/src/main/java/io/opentelemetry/instrumentation/jetty/httpclient/v12_0/JettyClientTelemetryBuilder.java

+9
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import io.opentelemetry.instrumentation.api.instrumenter.AttributesExtractor;
1212
import io.opentelemetry.instrumentation.api.instrumenter.SpanNameExtractor;
1313
import io.opentelemetry.instrumentation.api.semconv.http.HttpClientAttributesExtractorBuilder;
14+
import io.opentelemetry.instrumentation.jetty.httpclient.v12_0.internal.Experimental;
1415
import io.opentelemetry.instrumentation.jetty.httpclient.v12_0.internal.JettyHttpClientInstrumenterBuilderFactory;
1516
import java.util.List;
1617
import java.util.Set;
@@ -26,6 +27,11 @@ public final class JettyClientTelemetryBuilder {
2627
private HttpClientTransport httpClientTransport;
2728
private SslContextFactory.Client sslContextFactory;
2829

30+
static {
31+
Experimental.setSetEmitExperimentalTelemetry(
32+
(builder, emit) -> builder.builder.setEmitExperimentalHttpClientMetrics(emit));
33+
}
34+
2935
JettyClientTelemetryBuilder(OpenTelemetry openTelemetry) {
3036
builder = JettyHttpClientInstrumenterBuilderFactory.create(openTelemetry);
3137
}
@@ -115,7 +121,10 @@ public JettyClientTelemetryBuilder setKnownMethods(Set<String> knownMethods) {
115121
*
116122
* @param emitExperimentalHttpClientMetrics {@code true} if the experimental HTTP client metrics
117123
* are to be emitted.
124+
* @deprecated Use {@link Experimental#setEmitExperimentalTelemetry(JettyClientTelemetryBuilder,
125+
* boolean)} instead.
118126
*/
127+
@Deprecated
119128
@CanIgnoreReturnValue
120129
public JettyClientTelemetryBuilder setEmitExperimentalHttpClientMetrics(
121130
boolean emitExperimentalHttpClientMetrics) {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
/*
2+
* Copyright The OpenTelemetry Authors
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
package io.opentelemetry.instrumentation.jetty.httpclient.v12_0.internal;
7+
8+
import io.opentelemetry.instrumentation.jetty.httpclient.v12_0.JettyClientTelemetryBuilder;
9+
import java.util.function.BiConsumer;
10+
import javax.annotation.Nullable;
11+
12+
/**
13+
* This class is internal and experimental. Its APIs are unstable and can change at any time. Its
14+
* APIs (or a version of them) may be promoted to the public stable API in the future, but no
15+
* guarantees are made.
16+
*/
17+
public final class Experimental {
18+
19+
@Nullable
20+
private static volatile BiConsumer<JettyClientTelemetryBuilder, Boolean>
21+
setEmitExperimentalTelemetry;
22+
23+
public static void setEmitExperimentalTelemetry(
24+
JettyClientTelemetryBuilder builder, boolean emitExperimentalTelemetry) {
25+
if (setEmitExperimentalTelemetry != null) {
26+
setEmitExperimentalTelemetry.accept(builder, emitExperimentalTelemetry);
27+
}
28+
}
29+
30+
public static void setSetEmitExperimentalTelemetry(
31+
BiConsumer<JettyClientTelemetryBuilder, Boolean> setEmitExperimentalTelemetry) {
32+
Experimental.setEmitExperimentalTelemetry = setEmitExperimentalTelemetry;
33+
}
34+
35+
private Experimental() {}
36+
}

instrumentation/jetty-httpclient/jetty-httpclient-9.2/library/src/main/java/io/opentelemetry/instrumentation/jetty/httpclient/v9_2/JettyClientTelemetryBuilder.java

+9
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import io.opentelemetry.instrumentation.api.instrumenter.AttributesExtractor;
1212
import io.opentelemetry.instrumentation.api.instrumenter.SpanNameExtractor;
1313
import io.opentelemetry.instrumentation.api.semconv.http.HttpClientAttributesExtractorBuilder;
14+
import io.opentelemetry.instrumentation.jetty.httpclient.v9_2.internal.Experimental;
1415
import io.opentelemetry.instrumentation.jetty.httpclient.v9_2.internal.JettyHttpClientInstrumenterBuilderFactory;
1516
import java.util.List;
1617
import java.util.Set;
@@ -27,6 +28,11 @@ public final class JettyClientTelemetryBuilder {
2728
private HttpClientTransport httpClientTransport;
2829
private SslContextFactory sslContextFactory;
2930

31+
static {
32+
Experimental.setSetEmitExperimentalTelemetry(
33+
(builder, emit) -> builder.builder.setEmitExperimentalHttpClientMetrics(emit));
34+
}
35+
3036
JettyClientTelemetryBuilder(OpenTelemetry openTelemetry) {
3137
builder = JettyHttpClientInstrumenterBuilderFactory.create(openTelemetry);
3238
}
@@ -115,7 +121,10 @@ public JettyClientTelemetryBuilder setKnownMethods(Set<String> knownMethods) {
115121
*
116122
* @param emitExperimentalHttpClientMetrics {@code true} if the experimental HTTP client metrics
117123
* are to be emitted.
124+
* @deprecated Use {@link Experimental#setEmitExperimentalTelemetry(JettyClientTelemetryBuilder,
125+
* boolean)} instead.
118126
*/
127+
@Deprecated
119128
@CanIgnoreReturnValue
120129
public JettyClientTelemetryBuilder setEmitExperimentalHttpClientMetrics(
121130
boolean emitExperimentalHttpClientMetrics) {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
/*
2+
* Copyright The OpenTelemetry Authors
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
package io.opentelemetry.instrumentation.jetty.httpclient.v9_2.internal;
7+
8+
import io.opentelemetry.instrumentation.jetty.httpclient.v9_2.JettyClientTelemetryBuilder;
9+
import java.util.function.BiConsumer;
10+
import javax.annotation.Nullable;
11+
12+
/**
13+
* This class is internal and experimental. Its APIs are unstable and can change at any time. Its
14+
* APIs (or a version of them) may be promoted to the public stable API in the future, but no
15+
* guarantees are made.
16+
*/
17+
public final class Experimental {
18+
19+
@Nullable
20+
private static volatile BiConsumer<JettyClientTelemetryBuilder, Boolean>
21+
setEmitExperimentalTelemetry;
22+
23+
public static void setEmitExperimentalTelemetry(
24+
JettyClientTelemetryBuilder builder, boolean emitExperimentalTelemetry) {
25+
if (setEmitExperimentalTelemetry != null) {
26+
setEmitExperimentalTelemetry.accept(builder, emitExperimentalTelemetry);
27+
}
28+
}
29+
30+
public static void setSetEmitExperimentalTelemetry(
31+
BiConsumer<JettyClientTelemetryBuilder, Boolean> setEmitExperimentalTelemetry) {
32+
Experimental.setEmitExperimentalTelemetry = setEmitExperimentalTelemetry;
33+
}
34+
35+
private Experimental() {}
36+
}

instrumentation/netty/netty-4.1/library/src/main/java/io/opentelemetry/instrumentation/netty/v4_1/NettyClientTelemetryBuilder.java

+17
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import io.opentelemetry.instrumentation.netty.v4.common.internal.client.NettyClientInstrumenterBuilderFactory;
1717
import io.opentelemetry.instrumentation.netty.v4.common.internal.client.NettyClientInstrumenterFactory;
1818
import io.opentelemetry.instrumentation.netty.v4.common.internal.client.NettyConnectionInstrumentationFlag;
19+
import io.opentelemetry.instrumentation.netty.v4_1.internal.Experimental;
1920
import java.util.List;
2021
import java.util.Set;
2122
import java.util.function.Function;
@@ -26,11 +27,24 @@ public final class NettyClientTelemetryBuilder {
2627
private final DefaultHttpClientInstrumenterBuilder<HttpRequestAndChannel, HttpResponse> builder;
2728
private boolean emitExperimentalHttpClientEvents = false;
2829

30+
static {
31+
Experimental.setSetEmitExperimentalClientTelemetry(
32+
(builder, emit) -> {
33+
builder.builder.setEmitExperimentalHttpClientMetrics(emit);
34+
builder.emitExperimentalHttpClientEvents = emit;
35+
});
36+
}
37+
2938
NettyClientTelemetryBuilder(OpenTelemetry openTelemetry) {
3039
builder =
3140
NettyClientInstrumenterBuilderFactory.create("io.opentelemetry.netty-4.1", openTelemetry);
3241
}
3342

43+
/**
44+
* @deprecated Use {@link Experimental#setEmitExperimentalTelemetry(NettyClientTelemetryBuilder,
45+
* boolean)} instead.
46+
*/
47+
@Deprecated
3448
@CanIgnoreReturnValue
3549
public NettyClientTelemetryBuilder setEmitExperimentalHttpClientEvents(
3650
boolean emitExperimentalHttpClientEvents) {
@@ -97,7 +111,10 @@ public NettyClientTelemetryBuilder setKnownMethods(Set<String> knownMethods) {
97111
*
98112
* @param emitExperimentalHttpClientMetrics {@code true} if the experimental HTTP client metrics
99113
* are to be emitted.
114+
* @deprecated Use {@link Experimental#setEmitExperimentalTelemetry(NettyClientTelemetryBuilder,
115+
* boolean)} instead.
100116
*/
117+
@Deprecated
101118
@CanIgnoreReturnValue
102119
public NettyClientTelemetryBuilder setEmitExperimentalHttpClientMetrics(
103120
boolean emitExperimentalHttpClientMetrics) {

instrumentation/netty/netty-4.1/library/src/main/java/io/opentelemetry/instrumentation/netty/v4_1/NettyServerTelemetryBuilder.java

+9
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import io.opentelemetry.instrumentation.netty.v4.common.HttpRequestAndChannel;
1414
import io.opentelemetry.instrumentation.netty.v4.common.internal.server.HttpRequestHeadersGetter;
1515
import io.opentelemetry.instrumentation.netty.v4.common.internal.server.NettyHttpServerAttributesGetter;
16+
import io.opentelemetry.instrumentation.netty.v4_1.internal.Experimental;
1617
import io.opentelemetry.instrumentation.netty.v4_1.internal.ProtocolEventHandler;
1718
import io.opentelemetry.instrumentation.netty.v4_1.internal.server.NettyServerInstrumenterBuilderUtil;
1819
import java.util.List;
@@ -28,6 +29,11 @@ public final class NettyServerTelemetryBuilder {
2829
static {
2930
NettyServerInstrumenterBuilderUtil.setBuilderExtractor(
3031
nettyServerTelemetryBuilder -> nettyServerTelemetryBuilder.builder);
32+
Experimental.setSetEmitExperimentalServerTelemetry(
33+
(builder, emit) -> {
34+
builder.builder.setEmitExperimentalHttpServerMetrics(emit);
35+
builder.emitExperimentalHttpServerEvents = emit;
36+
});
3137
}
3238

3339
NettyServerTelemetryBuilder(OpenTelemetry openTelemetry) {
@@ -99,7 +105,10 @@ public NettyServerTelemetryBuilder setKnownMethods(Set<String> knownMethods) {
99105
*
100106
* @param emitExperimentalHttpServerMetrics {@code true} if the experimental HTTP server metrics
101107
* are to be emitted.
108+
* @deprecated Use {@link Experimental#setEmitExperimentalTelemetry(NettyServerTelemetryBuilder,
109+
* boolean)} instead.
102110
*/
111+
@Deprecated
103112
@CanIgnoreReturnValue
104113
public NettyServerTelemetryBuilder setEmitExperimentalHttpServerMetrics(
105114
boolean emitExperimentalHttpServerMetrics) {

0 commit comments

Comments
 (0)