Skip to content

Commit eed12e5

Browse files
committed
Move experimental methods out of public API
1 parent 4af0dd5 commit eed12e5

File tree

23 files changed

+700
-8
lines changed

23 files changed

+700
-8
lines changed

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

+5
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;
@@ -88,7 +89,11 @@ public ApacheHttpClientTelemetryBuilder setKnownMethods(Set<String> knownMethods
8889
*
8990
* @param emitExperimentalHttpClientMetrics {@code true} if the experimental HTTP client metrics
9091
* are to be emitted.
92+
* @deprecated Use {@link
93+
* Experimental#setEmitExperimentalTelemetry(ApacheHttpClientTelemetryBuilder, boolean)}
94+
* instead.
9195
*/
96+
@Deprecated
9297
@CanIgnoreReturnValue
9398
public ApacheHttpClientTelemetryBuilder setEmitExperimentalHttpClientMetrics(
9499
boolean emitExperimentalHttpClientMetrics) {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
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 static java.util.logging.Level.FINE;
9+
10+
import io.opentelemetry.instrumentation.apachehttpclient.v4_3.ApacheHttpClientTelemetryBuilder;
11+
import java.lang.reflect.InvocationTargetException;
12+
import java.lang.reflect.Method;
13+
import java.util.logging.Logger;
14+
import javax.annotation.Nullable;
15+
16+
/**
17+
* This class is internal and is hence not for public use. Its APIs are unstable and can change at
18+
* any time.
19+
*/
20+
// TODO (trask) update the above javadoc similar to
21+
// https://github.com/open-telemetry/opentelemetry-java/pull/6886
22+
public class Experimental {
23+
24+
private static final Logger logger = Logger.getLogger(Experimental.class.getName());
25+
26+
@Nullable
27+
private static final Method emitExperimentalTelemetryMethod =
28+
getEmitExperimentalTelemetryMethod();
29+
30+
public void setEmitExperimentalTelemetry(
31+
ApacheHttpClientTelemetryBuilder builder, boolean emitExperimentalTelemetry) {
32+
33+
if (emitExperimentalTelemetryMethod != null) {
34+
try {
35+
emitExperimentalTelemetryMethod.invoke(builder, emitExperimentalTelemetry);
36+
} catch (IllegalAccessException | InvocationTargetException e) {
37+
logger.log(FINE, e.getMessage(), e);
38+
}
39+
}
40+
}
41+
42+
@Nullable
43+
private static Method getEmitExperimentalTelemetryMethod() {
44+
try {
45+
Method method =
46+
ApacheHttpClientTelemetryBuilder.class.getDeclaredMethod(
47+
"setEmitExperimentalHttpClientMetrics", boolean.class);
48+
method.setAccessible(true);
49+
return method;
50+
} catch (NoSuchMethodException e) {
51+
logger.log(FINE, e.getMessage(), e);
52+
return null;
53+
}
54+
}
55+
}

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

+5
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;
@@ -86,7 +87,11 @@ public JavaHttpClientTelemetryBuilder setKnownMethods(Set<String> knownMethods)
8687
*
8788
* @param emitExperimentalHttpClientMetrics {@code true} if the experimental HTTP client metrics
8889
* are to be emitted.
90+
* @deprecated Use {@link
91+
* Experimental#setEmitExperimentalTelemetry(JavaHttpClientTelemetryBuilder, boolean)}
92+
* instead.
8993
*/
94+
@Deprecated
9095
@CanIgnoreReturnValue
9196
public JavaHttpClientTelemetryBuilder setEmitExperimentalHttpClientMetrics(
9297
boolean emitExperimentalHttpClientMetrics) {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
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 static java.util.logging.Level.FINE;
9+
10+
import io.opentelemetry.instrumentation.httpclient.JavaHttpClientTelemetryBuilder;
11+
import java.lang.reflect.InvocationTargetException;
12+
import java.lang.reflect.Method;
13+
import java.util.logging.Logger;
14+
import javax.annotation.Nullable;
15+
16+
/**
17+
* This class is internal and is hence not for public use. Its APIs are unstable and can change at
18+
* any time.
19+
*/
20+
// TODO (trask) update the above javadoc similar to
21+
// https://github.com/open-telemetry/opentelemetry-java/pull/6886
22+
public class Experimental {
23+
24+
private static final Logger logger = Logger.getLogger(Experimental.class.getName());
25+
26+
@Nullable
27+
private static final Method emitExperimentalTelemetryMethod =
28+
getEmitExperimentalTelemetryMethod();
29+
30+
public void setEmitExperimentalTelemetry(
31+
JavaHttpClientTelemetryBuilder builder, boolean emitExperimentalTelemetry) {
32+
33+
if (emitExperimentalTelemetryMethod != null) {
34+
try {
35+
emitExperimentalTelemetryMethod.invoke(builder, emitExperimentalTelemetry);
36+
} catch (IllegalAccessException | InvocationTargetException e) {
37+
logger.log(FINE, e.getMessage(), e);
38+
}
39+
}
40+
}
41+
42+
@Nullable
43+
private static Method getEmitExperimentalTelemetryMethod() {
44+
try {
45+
Method method =
46+
JavaHttpClientTelemetryBuilder.class.getDeclaredMethod(
47+
"setEmitExperimentalHttpClientMetrics", boolean.class);
48+
method.setAccessible(true);
49+
return method;
50+
} catch (NoSuchMethodException e) {
51+
logger.log(FINE, e.getMessage(), e);
52+
return null;
53+
}
54+
}
55+
}

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

+4
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;
@@ -101,7 +102,10 @@ public JettyClientTelemetryBuilder setKnownMethods(Set<String> knownMethods) {
101102
*
102103
* @param emitExperimentalHttpClientMetrics {@code true} if the experimental HTTP client metrics
103104
* are to be emitted.
105+
* @deprecated Use {@link Experimental#setEmitExperimentalTelemetry(JettyClientTelemetryBuilder,
106+
* boolean)} instead.
104107
*/
108+
@Deprecated
105109
@CanIgnoreReturnValue
106110
public JettyClientTelemetryBuilder setEmitExperimentalHttpClientMetrics(
107111
boolean emitExperimentalHttpClientMetrics) {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
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 static java.util.logging.Level.FINE;
9+
10+
import io.opentelemetry.instrumentation.jetty.httpclient.v12_0.JettyClientTelemetryBuilder;
11+
import java.lang.reflect.InvocationTargetException;
12+
import java.lang.reflect.Method;
13+
import java.util.logging.Logger;
14+
import javax.annotation.Nullable;
15+
16+
/**
17+
* This class is internal and is hence not for public use. Its APIs are unstable and can change at
18+
* any time.
19+
*/
20+
// TODO (trask) update the above javadoc similar to
21+
// https://github.com/open-telemetry/opentelemetry-java/pull/6886
22+
public class Experimental {
23+
24+
private static final Logger logger = Logger.getLogger(Experimental.class.getName());
25+
26+
@Nullable
27+
private static final Method emitExperimentalTelemetryMethod =
28+
getEmitExperimentalTelemetryMethod();
29+
30+
public void setEmitExperimentalTelemetry(
31+
JettyClientTelemetryBuilder builder, boolean emitExperimentalTelemetry) {
32+
33+
if (emitExperimentalTelemetryMethod != null) {
34+
try {
35+
emitExperimentalTelemetryMethod.invoke(builder, emitExperimentalTelemetry);
36+
} catch (IllegalAccessException | InvocationTargetException e) {
37+
logger.log(FINE, e.getMessage(), e);
38+
}
39+
}
40+
}
41+
42+
@Nullable
43+
private static Method getEmitExperimentalTelemetryMethod() {
44+
try {
45+
Method method =
46+
JettyClientTelemetryBuilder.class.getDeclaredMethod(
47+
"setEmitExperimentalHttpClientMetrics", boolean.class);
48+
method.setAccessible(true);
49+
return method;
50+
} catch (NoSuchMethodException e) {
51+
logger.log(FINE, e.getMessage(), e);
52+
return null;
53+
}
54+
}
55+
}

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

+4
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;
@@ -101,7 +102,10 @@ public JettyClientTelemetryBuilder setKnownMethods(Set<String> knownMethods) {
101102
*
102103
* @param emitExperimentalHttpClientMetrics {@code true} if the experimental HTTP client metrics
103104
* are to be emitted.
105+
* @deprecated Use {@link Experimental#setEmitExperimentalTelemetry(JettyClientTelemetryBuilder,
106+
* boolean)} instead.
104107
*/
108+
@Deprecated
105109
@CanIgnoreReturnValue
106110
public JettyClientTelemetryBuilder setEmitExperimentalHttpClientMetrics(
107111
boolean emitExperimentalHttpClientMetrics) {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
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 static java.util.logging.Level.FINE;
9+
10+
import io.opentelemetry.instrumentation.jetty.httpclient.v9_2.JettyClientTelemetryBuilder;
11+
import java.lang.reflect.InvocationTargetException;
12+
import java.lang.reflect.Method;
13+
import java.util.logging.Logger;
14+
import javax.annotation.Nullable;
15+
16+
/**
17+
* This class is internal and is hence not for public use. Its APIs are unstable and can change at
18+
* any time.
19+
*/
20+
// TODO (trask) update the above javadoc similar to
21+
// https://github.com/open-telemetry/opentelemetry-java/pull/6886
22+
public class Experimental {
23+
24+
private static final Logger logger = Logger.getLogger(Experimental.class.getName());
25+
26+
@Nullable
27+
private static final Method emitExperimentalTelemetryMethod =
28+
getEmitExperimentalTelemetryMethod();
29+
30+
public void setEmitExperimentalTelemetry(
31+
JettyClientTelemetryBuilder builder, boolean emitExperimentalTelemetry) {
32+
33+
if (emitExperimentalTelemetryMethod != null) {
34+
try {
35+
emitExperimentalTelemetryMethod.invoke(builder, emitExperimentalTelemetry);
36+
} catch (IllegalAccessException | InvocationTargetException e) {
37+
logger.log(FINE, e.getMessage(), e);
38+
}
39+
}
40+
}
41+
42+
@Nullable
43+
private static Method getEmitExperimentalTelemetryMethod() {
44+
try {
45+
Method method =
46+
JettyClientTelemetryBuilder.class.getDeclaredMethod(
47+
"setEmitExperimentalHttpClientMetrics", boolean.class);
48+
method.setAccessible(true);
49+
return method;
50+
} catch (NoSuchMethodException e) {
51+
logger.log(FINE, e.getMessage(), e);
52+
return null;
53+
}
54+
}
55+
}

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

+18-8
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;
@@ -24,17 +25,22 @@
2425
public final class NettyClientTelemetryBuilder {
2526

2627
private final DefaultHttpClientInstrumenterBuilder<HttpRequestAndChannel, HttpResponse> builder;
27-
private boolean emitExperimentalHttpClientEvents = false;
28+
private boolean emitExperimentalTelemetry = false;
2829

2930
NettyClientTelemetryBuilder(OpenTelemetry openTelemetry) {
3031
builder =
3132
NettyClientInstrumenterBuilderFactory.create("io.opentelemetry.netty-4.1", openTelemetry);
3233
}
3334

35+
/**
36+
* @deprecated Use {@link Experimental#setEmitExperimentalTelemetry(NettyClientTelemetryBuilder,
37+
* boolean)} instead.
38+
*/
39+
@Deprecated
3440
@CanIgnoreReturnValue
3541
public NettyClientTelemetryBuilder setEmitExperimentalHttpClientEvents(
36-
boolean emitExperimentalHttpClientEvents) {
37-
this.emitExperimentalHttpClientEvents = emitExperimentalHttpClientEvents;
42+
boolean emitExperimentalTelemetry) {
43+
this.emitExperimentalTelemetry = emitExperimentalTelemetry;
3844
return this;
3945
}
4046

@@ -95,13 +101,17 @@ public NettyClientTelemetryBuilder setKnownMethods(Set<String> knownMethods) {
95101
/**
96102
* Configures the instrumentation to emit experimental HTTP client metrics.
97103
*
98-
* @param emitExperimentalHttpClientMetrics {@code true} if the experimental HTTP client metrics
99-
* are to be emitted.
104+
* @param emitExperimentalTelemetry {@code true} if the experimental HTTP client metrics are to be
105+
* emitted.
106+
* @deprecated Use {@link Experimental#setEmitExperimentalTelemetry(NettyClientTelemetryBuilder,
107+
* boolean)} instead.
100108
*/
109+
@Deprecated
101110
@CanIgnoreReturnValue
102111
public NettyClientTelemetryBuilder setEmitExperimentalHttpClientMetrics(
103-
boolean emitExperimentalHttpClientMetrics) {
104-
builder.setEmitExperimentalHttpClientMetrics(emitExperimentalHttpClientMetrics);
112+
boolean emitExperimentalTelemetry) {
113+
builder.setEmitExperimentalHttpClientMetrics(emitExperimentalTelemetry);
114+
this.emitExperimentalTelemetry = emitExperimentalTelemetry;
105115
return this;
106116
}
107117

@@ -124,6 +134,6 @@ public NettyClientTelemetry build() {
124134
NettyConnectionInstrumentationFlag.DISABLED,
125135
NettyConnectionInstrumentationFlag.DISABLED)
126136
.instrumenter(),
127-
emitExperimentalHttpClientEvents);
137+
emitExperimentalTelemetry);
128138
}
129139
}

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

+4
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;
@@ -99,7 +100,10 @@ public NettyServerTelemetryBuilder setKnownMethods(Set<String> knownMethods) {
99100
*
100101
* @param emitExperimentalHttpServerMetrics {@code true} if the experimental HTTP server metrics
101102
* are to be emitted.
103+
* @deprecated Use {@link Experimental#setEmitExperimentalTelemetry(NettyServerTelemetryBuilder,
104+
* boolean)} instead.
102105
*/
106+
@Deprecated
103107
@CanIgnoreReturnValue
104108
public NettyServerTelemetryBuilder setEmitExperimentalHttpServerMetrics(
105109
boolean emitExperimentalHttpServerMetrics) {

0 commit comments

Comments
 (0)