Skip to content

Commit 65368a3

Browse files
committed
(chore) introduce factories and refactor class access for sharing
1 parent d72ecda commit 65368a3

21 files changed

+154
-63
lines changed

Diff for: instrumentation/ratpack/ratpack-1.7/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/ratpack/v1_7/DefaultExecControllerInstrumentation.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@
1010
import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
1111

1212
import com.google.common.collect.ImmutableList;
13-
import io.opentelemetry.instrumentation.ratpack.v1_7.OpenTelemetryExecInitializer;
14-
import io.opentelemetry.instrumentation.ratpack.v1_7.OpenTelemetryExecInterceptor;
13+
import io.opentelemetry.instrumentation.ratpack.v1_7.internal.OpenTelemetryExecInitializer;
14+
import io.opentelemetry.instrumentation.ratpack.v1_7.internal.OpenTelemetryExecInterceptor;
1515
import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
1616
import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer;
1717
import net.bytebuddy.asm.Advice;

Diff for: instrumentation/ratpack/ratpack-1.7/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/ratpack/v1_7/DownstreamWrapper.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
import io.opentelemetry.context.Scope;
1010
import ratpack.exec.Downstream;
1111

12-
public class DownstreamWrapper<T> implements Downstream<T> {
12+
public final class DownstreamWrapper<T> implements Downstream<T> {
1313

1414
private final Downstream<T> delegate;
1515
private final Context parentContext;

Diff for: instrumentation/ratpack/ratpack-1.7/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/ratpack/v1_7/HttpClientInstrumentation.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ public static class OfAdvice {
4040
@Advice.OnMethodExit(suppress = Throwable.class)
4141
@Advice.AssignReturned.ToReturned
4242
public static HttpClient injectTracing(@Advice.Return HttpClient httpClient) throws Exception {
43-
return RatpackSingletons.telemetry().instrumentHttpClient(httpClient);
43+
return RatpackSingletons.httpClient().instrument(httpClient);
4444
}
4545
}
4646
}

Diff for: instrumentation/ratpack/ratpack-1.7/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/ratpack/v1_7/RatpackSingletons.java

+22-18
Original file line numberDiff line numberDiff line change
@@ -8,37 +8,41 @@
88
import io.netty.channel.Channel;
99
import io.opentelemetry.api.GlobalOpenTelemetry;
1010
import io.opentelemetry.context.Context;
11-
import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter;
1211
import io.opentelemetry.instrumentation.netty.v4_1.internal.AttributeKeys;
13-
import io.opentelemetry.instrumentation.ratpack.v1_7.RatpackTelemetry;
1412
import io.opentelemetry.instrumentation.ratpack.v1_7.internal.ContextHolder;
13+
import io.opentelemetry.instrumentation.ratpack.v1_7.internal.OpenTelemetryHttpClient;
14+
import io.opentelemetry.instrumentation.ratpack.v1_7.internal.OpenTelemetryServerHandler;
15+
import io.opentelemetry.instrumentation.ratpack.v1_7.internal.RatpackClientInstrumenterBuilderFactory;
16+
import io.opentelemetry.instrumentation.ratpack.v1_7.internal.RatpackServerInstrumenterBuilderFactory;
1517
import io.opentelemetry.javaagent.bootstrap.internal.AgentCommonConfig;
16-
import io.opentelemetry.javaagent.bootstrap.internal.ExperimentalConfig;
1718
import ratpack.exec.Execution;
1819

1920
public final class RatpackSingletons {
2021

2122
static {
22-
TELEMETRY =
23-
RatpackTelemetry.builder(GlobalOpenTelemetry.get())
24-
.configure(AgentCommonConfig.get())
25-
.build();
23+
HTTP_CLIENT =
24+
new OpenTelemetryHttpClient(
25+
RatpackClientInstrumenterBuilderFactory.create(
26+
"io.opentelemetry.ratpack-1.7", GlobalOpenTelemetry.get())
27+
.configure(AgentCommonConfig.get())
28+
.build());
29+
SERVER_HANDLER =
30+
new OpenTelemetryServerHandler(
31+
RatpackServerInstrumenterBuilderFactory.create(
32+
"io.opentelemetry.ratpack-1.7", GlobalOpenTelemetry.get())
33+
.configure(AgentCommonConfig.get())
34+
.build());
2635
}
2736

28-
private static final Instrumenter<String, Void> INSTRUMENTER =
29-
Instrumenter.<String, Void>builder(
30-
GlobalOpenTelemetry.get(), "io.opentelemetry.ratpack-1.7", s -> s)
31-
.setEnabled(ExperimentalConfig.get().controllerTelemetryEnabled())
32-
.buildInstrumenter();
37+
private static final OpenTelemetryHttpClient HTTP_CLIENT;
38+
private static final OpenTelemetryServerHandler SERVER_HANDLER;
3339

34-
public static Instrumenter<String, Void> instrumenter() {
35-
return INSTRUMENTER;
40+
public static OpenTelemetryHttpClient httpClient() {
41+
return HTTP_CLIENT;
3642
}
3743

38-
private static final RatpackTelemetry TELEMETRY;
39-
40-
public static RatpackTelemetry telemetry() {
41-
return TELEMETRY;
44+
public static OpenTelemetryServerHandler serverHandler() {
45+
return SERVER_HANDLER;
4246
}
4347

4448
public static void propagateContextToChannel(Execution execution, Channel channel) {

Diff for: instrumentation/ratpack/ratpack-1.7/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/ratpack/v1_7/ServerRegistryInstrumentation.java

+1-3
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,7 @@ public static class BuildAdvice {
3838
@Advice.AssignReturned.ToReturned
3939
public static Registry injectTracing(@Advice.Return Registry registry) {
4040
return registry.join(
41-
Registry.single(
42-
HandlerDecorator.prepend(
43-
RatpackSingletons.telemetry().getOpenTelemetryServerHandler())));
41+
Registry.single(HandlerDecorator.prepend(RatpackSingletons.serverHandler())));
4442
}
4543
}
4644
}

Diff for: instrumentation/ratpack/ratpack-1.7/library/src/main/java/io/opentelemetry/instrumentation/ratpack/v1_7/RatpackTelemetry.java

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

88
import io.opentelemetry.api.OpenTelemetry;
99
import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter;
10+
import io.opentelemetry.instrumentation.ratpack.v1_7.internal.OpenTelemetryExecInitializer;
11+
import io.opentelemetry.instrumentation.ratpack.v1_7.internal.OpenTelemetryExecInterceptor;
12+
import io.opentelemetry.instrumentation.ratpack.v1_7.internal.OpenTelemetryHttpClient;
13+
import io.opentelemetry.instrumentation.ratpack.v1_7.internal.OpenTelemetryServerHandler;
1014
import ratpack.exec.ExecInitializer;
1115
import ratpack.exec.ExecInterceptor;
1216
import ratpack.handling.HandlerDecorator;

Diff for: instrumentation/ratpack/ratpack-1.7/library/src/main/java/io/opentelemetry/instrumentation/ratpack/v1_7/RatpackTelemetryBuilder.java

+4-18
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,12 @@
99
import io.opentelemetry.api.OpenTelemetry;
1010
import io.opentelemetry.instrumentation.api.incubator.builder.internal.DefaultHttpClientInstrumenterBuilder;
1111
import io.opentelemetry.instrumentation.api.incubator.builder.internal.DefaultHttpServerInstrumenterBuilder;
12-
import io.opentelemetry.instrumentation.api.incubator.config.internal.CommonConfig;
1312
import io.opentelemetry.instrumentation.api.instrumenter.AttributesExtractor;
1413
import io.opentelemetry.instrumentation.api.instrumenter.SpanNameExtractor;
1514
import io.opentelemetry.instrumentation.api.semconv.http.HttpClientAttributesExtractorBuilder;
1615
import io.opentelemetry.instrumentation.api.semconv.http.HttpServerAttributesExtractorBuilder;
16+
import io.opentelemetry.instrumentation.ratpack.v1_7.internal.RatpackClientInstrumenterBuilderFactory;
17+
import io.opentelemetry.instrumentation.ratpack.v1_7.internal.RatpackServerInstrumenterBuilderFactory;
1718
import java.util.List;
1819
import java.util.Set;
1920
import java.util.function.Function;
@@ -32,17 +33,9 @@ public final class RatpackTelemetryBuilder {
3233

3334
RatpackTelemetryBuilder(OpenTelemetry openTelemetry) {
3435
clientBuilder =
35-
DefaultHttpClientInstrumenterBuilder.create(
36-
INSTRUMENTATION_NAME,
37-
openTelemetry,
38-
RatpackHttpClientAttributesGetter.INSTANCE,
39-
RequestHeaderSetter.INSTANCE);
36+
RatpackClientInstrumenterBuilderFactory.create(INSTRUMENTATION_NAME, openTelemetry);
4037
serverBuilder =
41-
DefaultHttpServerInstrumenterBuilder.create(
42-
INSTRUMENTATION_NAME,
43-
openTelemetry,
44-
RatpackHttpAttributesGetter.INSTANCE,
45-
RatpackGetter.INSTANCE);
38+
RatpackServerInstrumenterBuilderFactory.create(INSTRUMENTATION_NAME, openTelemetry);
4639
}
4740

4841
/**
@@ -174,13 +167,6 @@ public RatpackTelemetryBuilder setServerSpanNameExtractor(
174167
return this;
175168
}
176169

177-
@CanIgnoreReturnValue
178-
public RatpackTelemetryBuilder configure(CommonConfig config) {
179-
clientBuilder.configure(config);
180-
serverBuilder.configure(config);
181-
return this;
182-
}
183-
184170
/** Returns a new {@link RatpackTelemetry} with the configuration of this builder. */
185171
public RatpackTelemetry build() {
186172
return new RatpackTelemetry(serverBuilder.build(), clientBuilder.build());

Diff for: instrumentation/ratpack/ratpack-1.7/library/src/main/java/io/opentelemetry/instrumentation/ratpack/v1_7/OpenTelemetryExecInitializer.java renamed to instrumentation/ratpack/ratpack-1.7/library/src/main/java/io/opentelemetry/instrumentation/ratpack/v1_7/internal/OpenTelemetryExecInitializer.java

+5-2
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,15 @@
33
* SPDX-License-Identifier: Apache-2.0
44
*/
55

6-
package io.opentelemetry.instrumentation.ratpack.v1_7;
6+
package io.opentelemetry.instrumentation.ratpack.v1_7.internal;
77

8-
import io.opentelemetry.instrumentation.ratpack.v1_7.internal.ContextHolder;
98
import ratpack.exec.ExecInitializer;
109
import ratpack.exec.Execution;
1110

11+
/**
12+
* This class is internal and is hence not for public use. Its APIs are unstable and can change at
13+
* any time.
14+
*/
1215
public final class OpenTelemetryExecInitializer implements ExecInitializer {
1316
public static final ExecInitializer INSTANCE = new OpenTelemetryExecInitializer();
1417

Diff for: instrumentation/ratpack/ratpack-1.7/library/src/main/java/io/opentelemetry/instrumentation/ratpack/v1_7/OpenTelemetryExecInterceptor.java renamed to instrumentation/ratpack/ratpack-1.7/library/src/main/java/io/opentelemetry/instrumentation/ratpack/v1_7/internal/OpenTelemetryExecInterceptor.java

+5-1
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,18 @@
33
* SPDX-License-Identifier: Apache-2.0
44
*/
55

6-
package io.opentelemetry.instrumentation.ratpack.v1_7;
6+
package io.opentelemetry.instrumentation.ratpack.v1_7.internal;
77

88
import io.opentelemetry.context.Context;
99
import io.opentelemetry.context.Scope;
1010
import ratpack.exec.ExecInterceptor;
1111
import ratpack.exec.Execution;
1212
import ratpack.func.Block;
1313

14+
/**
15+
* This class is internal and is hence not for public use. Its APIs are unstable and can change at
16+
* any time.
17+
*/
1418
public final class OpenTelemetryExecInterceptor implements ExecInterceptor {
1519

1620
public static final ExecInterceptor INSTANCE = new OpenTelemetryExecInterceptor();
+5-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
* limitations under the License.
2121
*/
2222

23-
package io.opentelemetry.instrumentation.ratpack.v1_7;
23+
package io.opentelemetry.instrumentation.ratpack.v1_7.internal;
2424

2525
import static java.util.logging.Level.WARNING;
2626

@@ -32,6 +32,10 @@
3232
// Copied from
3333
// https://github.com/ratpack/ratpack/blob/master/ratpack-core/src/main/java/ratpack/core/error/internal/DefaultProductionErrorHandler.java
3434
// since it is internal and has had breaking changes.
35+
/**
36+
* This class is internal and is hence not for public use. Its APIs are unstable and can change at
37+
* any time.
38+
*/
3539
final class OpenTelemetryFallbackErrorHandler implements ClientErrorHandler, ServerErrorHandler {
3640

3741
static final OpenTelemetryFallbackErrorHandler INSTANCE = new OpenTelemetryFallbackErrorHandler();

Diff for: instrumentation/ratpack/ratpack-1.7/library/src/main/java/io/opentelemetry/instrumentation/ratpack/v1_7/OpenTelemetryHttpClient.java renamed to instrumentation/ratpack/ratpack-1.7/library/src/main/java/io/opentelemetry/instrumentation/ratpack/v1_7/internal/OpenTelemetryHttpClient.java

+7-4
Original file line numberDiff line numberDiff line change
@@ -3,23 +3,26 @@
33
* SPDX-License-Identifier: Apache-2.0
44
*/
55

6-
package io.opentelemetry.instrumentation.ratpack.v1_7;
6+
package io.opentelemetry.instrumentation.ratpack.v1_7.internal;
77

88
import io.opentelemetry.api.trace.Span;
99
import io.opentelemetry.context.Context;
1010
import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter;
11-
import io.opentelemetry.instrumentation.ratpack.v1_7.internal.ContextHolder;
1211
import io.opentelemetry.semconv.HttpAttributes;
1312
import ratpack.exec.Execution;
1413
import ratpack.http.client.HttpClient;
1514
import ratpack.http.client.HttpResponse;
1615
import ratpack.http.client.RequestSpec;
1716

18-
final class OpenTelemetryHttpClient {
17+
/**
18+
* This class is internal and is hence not for public use. Its APIs are unstable and can change at
19+
* any time.
20+
*/
21+
public final class OpenTelemetryHttpClient {
1922

2023
private final Instrumenter<RequestSpec, HttpResponse> instrumenter;
2124

22-
OpenTelemetryHttpClient(Instrumenter<RequestSpec, HttpResponse> instrumenter) {
25+
public OpenTelemetryHttpClient(Instrumenter<RequestSpec, HttpResponse> instrumenter) {
2326
this.instrumenter = instrumenter;
2427
}
2528

+5-1
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,15 @@
33
* SPDX-License-Identifier: Apache-2.0
44
*/
55

6-
package io.opentelemetry.instrumentation.ratpack.v1_7;
6+
package io.opentelemetry.instrumentation.ratpack.v1_7.internal;
77

88
import ratpack.error.ServerErrorHandler;
99
import ratpack.handling.Context;
1010

11+
/**
12+
* This class is internal and is hence not for public use. Its APIs are unstable and can change at
13+
* any time.
14+
*/
1115
final class OpenTelemetryServerErrorHandler implements ServerErrorHandler {
1216

1317
static final ServerErrorHandler INSTANCE = new OpenTelemetryServerErrorHandler();

Diff for: instrumentation/ratpack/ratpack-1.7/library/src/main/java/io/opentelemetry/instrumentation/ratpack/v1_7/OpenTelemetryServerHandler.java renamed to instrumentation/ratpack/ratpack-1.7/library/src/main/java/io/opentelemetry/instrumentation/ratpack/v1_7/internal/OpenTelemetryServerHandler.java

+6-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
* SPDX-License-Identifier: Apache-2.0
44
*/
55

6-
package io.opentelemetry.instrumentation.ratpack.v1_7;
6+
package io.opentelemetry.instrumentation.ratpack.v1_7.internal;
77

88
import static io.opentelemetry.instrumentation.api.semconv.http.HttpServerRouteSource.CONTROLLER;
99

@@ -16,11 +16,15 @@
1616
import ratpack.http.Request;
1717
import ratpack.http.Response;
1818

19+
/**
20+
* This class is internal and is hence not for public use. Its APIs are unstable and can change at
21+
* any time.
22+
*/
1923
public final class OpenTelemetryServerHandler implements Handler {
2024

2125
private final Instrumenter<Request, Response> instrumenter;
2226

23-
OpenTelemetryServerHandler(Instrumenter<Request, Response> instrumenter) {
27+
public OpenTelemetryServerHandler(Instrumenter<Request, Response> instrumenter) {
2428
this.instrumenter = instrumenter;
2529
}
2630

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
/*
2+
* Copyright The OpenTelemetry Authors
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
package io.opentelemetry.instrumentation.ratpack.v1_7.internal;
7+
8+
import io.opentelemetry.api.OpenTelemetry;
9+
import io.opentelemetry.instrumentation.api.incubator.builder.internal.DefaultHttpClientInstrumenterBuilder;
10+
import ratpack.http.client.HttpResponse;
11+
import ratpack.http.client.RequestSpec;
12+
13+
/**
14+
* This class is internal and is hence not for public use. Its APIs are unstable and can change at
15+
* any time.
16+
*/
17+
public class RatpackClientInstrumenterBuilderFactory {
18+
private RatpackClientInstrumenterBuilderFactory() {}
19+
20+
public static DefaultHttpClientInstrumenterBuilder<RequestSpec, HttpResponse> create(
21+
String instrumentationName, OpenTelemetry openTelemetry) {
22+
23+
return DefaultHttpClientInstrumenterBuilder.create(
24+
instrumentationName,
25+
openTelemetry,
26+
RatpackHttpClientAttributesGetter.INSTANCE,
27+
RequestHeaderSetter.INSTANCE);
28+
}
29+
}

Diff for: instrumentation/ratpack/ratpack-1.7/library/src/main/java/io/opentelemetry/instrumentation/ratpack/v1_7/RatpackGetter.java renamed to instrumentation/ratpack/ratpack-1.7/library/src/main/java/io/opentelemetry/instrumentation/ratpack/v1_7/internal/RatpackGetter.java

+6-2
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,17 @@
33
* SPDX-License-Identifier: Apache-2.0
44
*/
55

6-
package io.opentelemetry.instrumentation.ratpack.v1_7;
6+
package io.opentelemetry.instrumentation.ratpack.v1_7.internal;
77

88
import io.opentelemetry.context.propagation.TextMapGetter;
99
import javax.annotation.Nullable;
1010
import ratpack.http.Request;
1111

12-
enum RatpackGetter implements TextMapGetter<Request> {
12+
/**
13+
* This class is internal and is hence not for public use. Its APIs are unstable and can change at
14+
* any time.
15+
*/
16+
public enum RatpackGetter implements TextMapGetter<Request> {
1317
INSTANCE;
1418

1519
@Override

Diff for: instrumentation/ratpack/ratpack-1.7/library/src/main/java/io/opentelemetry/instrumentation/ratpack/v1_7/RatpackHttpAttributesGetter.java renamed to instrumentation/ratpack/ratpack-1.7/library/src/main/java/io/opentelemetry/instrumentation/ratpack/v1_7/internal/RatpackHttpAttributesGetter.java

+6-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
* SPDX-License-Identifier: Apache-2.0
44
*/
55

6-
package io.opentelemetry.instrumentation.ratpack.v1_7;
6+
package io.opentelemetry.instrumentation.ratpack.v1_7.internal;
77

88
import io.opentelemetry.instrumentation.api.semconv.http.HttpServerAttributesGetter;
99
import java.util.List;
@@ -13,7 +13,11 @@
1313
import ratpack.http.Response;
1414
import ratpack.server.PublicAddress;
1515

16-
enum RatpackHttpAttributesGetter implements HttpServerAttributesGetter<Request, Response> {
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+
public enum RatpackHttpAttributesGetter implements HttpServerAttributesGetter<Request, Response> {
1721
INSTANCE;
1822

1923
@Override
+6-2
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,19 @@
33
* SPDX-License-Identifier: Apache-2.0
44
*/
55

6-
package io.opentelemetry.instrumentation.ratpack.v1_7;
6+
package io.opentelemetry.instrumentation.ratpack.v1_7.internal;
77

88
import io.opentelemetry.instrumentation.api.semconv.http.HttpClientAttributesGetter;
99
import java.util.List;
1010
import javax.annotation.Nullable;
1111
import ratpack.http.client.HttpResponse;
1212
import ratpack.http.client.RequestSpec;
1313

14-
enum RatpackHttpClientAttributesGetter
14+
/**
15+
* This class is internal and is hence not for public use. Its APIs are unstable and can change at
16+
* any time.
17+
*/
18+
public enum RatpackHttpClientAttributesGetter
1519
implements HttpClientAttributesGetter<RequestSpec, HttpResponse> {
1620
INSTANCE;
1721

0 commit comments

Comments
 (0)