Skip to content

Commit 7cb15a9

Browse files
authored
Upgrade otel 1 9 (#356)
* ⬆️ upgrade to otel 1.9 * ♻️ fix cache usage ' * ♻️ update netty modules for moved APIs * ⬆️ upgrade byte buddy * 🔥 remove usage of struts2 convention plugin
1 parent 9d80781 commit 7cb15a9

File tree

17 files changed

+44
-40
lines changed

17 files changed

+44
-40
lines changed

Diff for: build.gradle.kts

+6-5
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,12 @@ subprojects {
3434
extra.set("versions", mapOf(
3535
// when updating these values, some values must also be updated in buildSrc as this map
3636
// cannot be accessed there
37-
"opentelemetry" to "1.7.1",
38-
"opentelemetry_java_agent" to "1.7.2-alpha",
39-
"opentelemetry_java_agent_all" to "1.7.2",
40-
"opentelemetry_gradle_plugin" to "0.8.0",
41-
"byte_buddy" to "1.11.2",
37+
"opentelemetry" to "1.9.1",
38+
"opentelemetry_proto" to "0.11.0-alpha",
39+
"opentelemetry_java_agent" to "1.9.2-alpha",
40+
"opentelemetry_java_agent_all" to "1.9.2",
41+
"opentelemetry_gradle_plugin" to "1.9.2-alpha",
42+
"byte_buddy" to "1.11.22",
4243
"slf4j" to "1.7.30"
4344
))
4445

Diff for: buildSrc/build.gradle.kts

+10-6
Original file line numberDiff line numberDiff line change
@@ -27,19 +27,23 @@ repositories {
2727
dependencies {
2828
implementation(gradleApi())
2929
implementation(localGroovy())
30-
implementation("io.opentelemetry.javaagent:opentelemetry-muzzle:1.7.2-alpha")
31-
implementation("io.opentelemetry.instrumentation.muzzle-generation:io.opentelemetry.instrumentation.muzzle-generation.gradle.plugin:0.8.0")
32-
implementation("io.opentelemetry.instrumentation.muzzle-check:io.opentelemetry.instrumentation.muzzle-check.gradle.plugin:0.8.0")
30+
val otelInstrumentationVersion = "1.9.2-alpha"
31+
implementation("io.opentelemetry.javaagent:opentelemetry-muzzle:$otelInstrumentationVersion")
32+
implementation("io.opentelemetry.instrumentation.muzzle-generation:io.opentelemetry.instrumentation.muzzle-generation.gradle.plugin:$otelInstrumentationVersion")
33+
implementation("io.opentelemetry.instrumentation.muzzle-check:io.opentelemetry.instrumentation.muzzle-check.gradle.plugin:$otelInstrumentationVersion")
3334
implementation("com.github.jengelman.gradle.plugins:shadow:6.0.0")
3435
implementation("org.eclipse.aether", "aether-connector-basic", "1.1.0")
3536
implementation("org.eclipse.aether", "aether-transport-http", "1.1.0")
3637
implementation("org.apache.maven", "maven-aether-provider", "3.3.9")
3738

3839
implementation("com.google.guava", "guava", "20.0")
39-
implementation("org.ow2.asm", "asm", "7.0-beta")
40-
implementation("org.ow2.asm", "asm-tree", "7.0-beta")
40+
implementation("org.ow2.asm", "asm", "9.1")
41+
implementation("org.ow2.asm", "asm-tree", "9.1")
4142
implementation("org.apache.httpcomponents:httpclient:4.5.10")
42-
implementation("net.bytebuddy:byte-buddy-gradle-plugin:1.11.2")
43+
implementation("net.bytebuddy:byte-buddy-gradle-plugin:1.11.22") {
44+
exclude(group = "net.bytebuddy", module = "byte-buddy")
45+
}
46+
implementation("net.bytebuddy:byte-buddy-dep:1.11.22")
4347

4448
testImplementation("org.spockframework", "spock-core", "1.3-groovy-2.5")
4549
testImplementation("org.codehaus.groovy", "groovy-all", "2.5.8")

Diff for: buildSrc/src/main/java/io/opentelemetry/instrumentation/gradle/AutoInstrumentationPlugin.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ private void addDependencies(Project project) {
5757
dependencies.add("implementation", "org.slf4j:slf4j-api:1.7.30");
5858
dependencies.add("compileOnly", "com.google.auto.service:auto-service-annotations:1.0");
5959
dependencies.add("annotationProcessor", "com.google.auto.service:auto-service:1.0");
60-
dependencies.add("implementation", "net.bytebuddy:byte-buddy:" + versions.get("byte_buddy"));
60+
dependencies.add("implementation", "net.bytebuddy:byte-buddy-dep:" + versions.get("byte_buddy"));
6161
dependencies.add("implementation",
6262
"io.opentelemetry:opentelemetry-api:" + versions.get("opentelemetry"));
6363
dependencies.add("implementation",

Diff for: instrumentation/apache-httpclient-4.0/src/main/java/io/opentelemetry/javaagent/instrumentation/hypertrace/apachehttpclient/v4_0/ApacheHttpClientObjectRegistry.java

+2-3
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,12 @@
1818

1919
import io.opentelemetry.api.common.AttributeKey;
2020
import io.opentelemetry.api.trace.Span;
21-
import io.opentelemetry.instrumentation.api.caching.Cache;
21+
import io.opentelemetry.instrumentation.api.cache.Cache;
2222
import org.apache.http.HttpEntity;
2323

2424
public class ApacheHttpClientObjectRegistry {
2525

26-
public static final Cache<HttpEntity, SpanAndAttributeKey> entityToSpan =
27-
Cache.builder().setWeakKeys().build();
26+
public static final Cache<HttpEntity, SpanAndAttributeKey> entityToSpan = Cache.weak();
2827

2928
public static class SpanAndAttributeKey {
3029
public final Span span;

Diff for: instrumentation/netty/netty-4.0/src/main/java/io/opentelemetry/javaagent/instrumentation/hypertrace/netty/v4_0/client/HttpClientResponseTracingHandler.java

+4-3
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
import io.opentelemetry.instrumentation.api.tracer.HttpStatusConverter;
3232
import io.opentelemetry.javaagent.instrumentation.hypertrace.netty.v4_0.AttributeKeys;
3333
import io.opentelemetry.javaagent.instrumentation.hypertrace.netty.v4_0.DataCaptureUtils;
34-
import io.opentelemetry.javaagent.instrumentation.netty.v4_0.client.NettyHttpClientTracer;
34+
import io.opentelemetry.javaagent.instrumentation.netty.v4_0.client.NettyClientSingletons;
3535
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
3636
import java.nio.charset.Charset;
3737
import java.util.Map;
@@ -95,13 +95,14 @@ public void channelRead(ChannelHandlerContext ctx, Object msg) {
9595
try (Scope ignored = context.makeCurrent()) {
9696
ctx.fireChannelRead(msg);
9797
} catch (Throwable throwable) {
98-
NettyHttpClientTracer.tracer().endExceptionally(context, throwable);
98+
NettyClientSingletons.instrumenter().end(context, null, null, throwable);
9999
throw throwable;
100100
}
101101
if (msg instanceof HttpResponse) {
102102
HttpResponse httpResponse = (HttpResponse) msg;
103103
span.setAttribute(SemanticAttributes.HTTP_STATUS_CODE, httpResponse.getStatus().code());
104-
span.setStatus(HttpStatusConverter.statusFromHttpStatus(httpResponse.getStatus().code()));
104+
span.setStatus(
105+
HttpStatusConverter.CLIENT.statusFromHttpStatus(httpResponse.getStatus().code()));
105106
}
106107
if (msg instanceof LastHttpContent) {
107108
span.end();

Diff for: instrumentation/netty/netty-4.0/src/main/java/io/opentelemetry/javaagent/instrumentation/hypertrace/netty/v4_0/server/HttpServerResponseTracingHandler.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,8 @@ public void write(ChannelHandlerContext ctx, Object msg, ChannelPromise prm) {
100100
if (msg instanceof HttpResponse) {
101101
HttpResponse httpResponse = (HttpResponse) msg;
102102
span.setAttribute(SemanticAttributes.HTTP_STATUS_CODE, httpResponse.getStatus().code());
103-
span.setStatus(HttpStatusConverter.statusFromHttpStatus(httpResponse.getStatus().code()));
103+
span.setStatus(
104+
HttpStatusConverter.SERVER.statusFromHttpStatus(httpResponse.getStatus().code()));
104105
}
105106
if (msg instanceof LastHttpContent) {
106107
span.end();

Diff for: instrumentation/netty/netty-4.1/build.gradle.kts

+1-1
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,8 @@ afterEvaluate{
4242
val versions: Map<String, String> by extra
4343

4444
dependencies {
45-
implementation("io.opentelemetry.instrumentation:opentelemetry-netty-4.1:${versions["opentelemetry_java_agent"]}")
4645
implementation("io.opentelemetry.javaagent.instrumentation:opentelemetry-javaagent-netty-4-common:${versions["opentelemetry_java_agent"]}")
46+
implementation("io.opentelemetry.javaagent.instrumentation:opentelemetry-javaagent-netty-4.1-common:${versions["opentelemetry_java_agent"]}")
4747
implementation("io.opentelemetry.javaagent.instrumentation:opentelemetry-javaagent-netty-4.1:${versions["opentelemetry_java_agent"]}")
4848
library("io.netty:netty-codec-http:4.1.0.Final")
4949

Diff for: instrumentation/netty/netty-4.1/src/main/java/io/opentelemetry/javaagent/instrumentation/hypertrace/netty/v4_1/client/HttpClientRequestTracingHandler.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,8 @@ public void write(ChannelHandlerContext ctx, Object msg, ChannelPromise prm) {
5151
Channel channel = ctx.channel();
5252
Context context =
5353
channel
54-
.attr(io.opentelemetry.instrumentation.netty.v4_1.AttributeKeys.CLIENT_CONTEXT)
54+
.attr(
55+
io.opentelemetry.javaagent.instrumentation.netty.v4_1.AttributeKeys.CLIENT_CONTEXT)
5556
.get();
5657
if (context == null) {
5758
ctx.write(msg, prm);

Diff for: instrumentation/netty/netty-4.1/src/main/java/io/opentelemetry/javaagent/instrumentation/hypertrace/netty/v4_1/client/HttpClientResponseTracingHandler.java

+6-4
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
import io.opentelemetry.instrumentation.api.tracer.HttpStatusConverter;
3232
import io.opentelemetry.javaagent.instrumentation.hypertrace.netty.v4_1.AttributeKeys;
3333
import io.opentelemetry.javaagent.instrumentation.hypertrace.netty.v4_1.DataCaptureUtils;
34-
import io.opentelemetry.javaagent.instrumentation.netty.v4_1.client.NettyHttpClientTracer;
34+
import io.opentelemetry.javaagent.instrumentation.netty.v4_1.client.NettyClientSingletons;
3535
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
3636
import java.nio.charset.Charset;
3737
import java.util.Map;
@@ -53,7 +53,8 @@ public void channelRead(ChannelHandlerContext ctx, Object msg) {
5353
Channel channel = ctx.channel();
5454
Context context =
5555
channel
56-
.attr(io.opentelemetry.instrumentation.netty.v4_1.AttributeKeys.CLIENT_CONTEXT)
56+
.attr(
57+
io.opentelemetry.javaagent.instrumentation.netty.v4_1.AttributeKeys.CLIENT_CONTEXT)
5758
.get();
5859
if (context == null) {
5960
ctx.fireChannelRead(msg);
@@ -94,13 +95,14 @@ public void channelRead(ChannelHandlerContext ctx, Object msg) {
9495
try (Scope ignored = context.makeCurrent()) {
9596
ctx.fireChannelRead(msg);
9697
} catch (Throwable throwable) {
97-
NettyHttpClientTracer.tracer().endExceptionally(context, throwable);
98+
NettyClientSingletons.instrumenter().end(context, null, null, throwable);
9899
throw throwable;
99100
}
100101
if (msg instanceof HttpResponse) {
101102
HttpResponse httpResponse = (HttpResponse) msg;
102103
span.setAttribute(SemanticAttributes.HTTP_STATUS_CODE, httpResponse.getStatus().code());
103-
span.setStatus(HttpStatusConverter.statusFromHttpStatus(httpResponse.getStatus().code()));
104+
span.setStatus(
105+
HttpStatusConverter.CLIENT.statusFromHttpStatus(httpResponse.getStatus().code()));
104106
}
105107
if (msg instanceof LastHttpContent) {
106108
span.end();

Diff for: instrumentation/netty/netty-4.1/src/main/java/io/opentelemetry/javaagent/instrumentation/hypertrace/netty/v4_1/server/HttpServerBlockingRequestHandler.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,8 @@ public void channelRead(ChannelHandlerContext ctx, Object msg) {
3838
Channel channel = ctx.channel();
3939
Context context =
4040
channel
41-
.attr(io.opentelemetry.instrumentation.netty.v4_1.AttributeKeys.SERVER_CONTEXT)
41+
.attr(
42+
io.opentelemetry.javaagent.instrumentation.netty.v4_1.AttributeKeys.SERVER_CONTEXT)
4243
.get();
4344
if (context == null) {
4445
ctx.fireChannelRead(msg);

Diff for: instrumentation/netty/netty-4.1/src/main/java/io/opentelemetry/javaagent/instrumentation/hypertrace/netty/v4_1/server/HttpServerRequestTracingHandler.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,8 @@ public void channelRead(ChannelHandlerContext ctx, Object msg) {
5050
Channel channel = ctx.channel();
5151
Context context =
5252
channel
53-
.attr(io.opentelemetry.instrumentation.netty.v4_1.AttributeKeys.SERVER_CONTEXT)
53+
.attr(
54+
io.opentelemetry.javaagent.instrumentation.netty.v4_1.AttributeKeys.SERVER_CONTEXT)
5455
.get();
5556
if (context == null) {
5657
ctx.fireChannelRead(msg);

Diff for: instrumentation/netty/netty-4.1/src/main/java/io/opentelemetry/javaagent/instrumentation/hypertrace/netty/v4_1/server/HttpServerResponseTracingHandler.java

+3-2
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,8 @@ public class HttpServerResponseTracingHandler extends ChannelOutboundHandlerAdap
5252
public void write(ChannelHandlerContext ctx, Object msg, ChannelPromise prm) {
5353
Context context =
5454
ctx.channel()
55-
.attr(io.opentelemetry.instrumentation.netty.v4_1.AttributeKeys.SERVER_CONTEXT)
55+
.attr(
56+
io.opentelemetry.javaagent.instrumentation.netty.v4_1.AttributeKeys.SERVER_CONTEXT)
5657
.get();
5758
if (context == null) {
5859
ctx.write(msg, prm);
@@ -99,7 +100,7 @@ public void write(ChannelHandlerContext ctx, Object msg, ChannelPromise prm) {
99100
if (msg instanceof HttpResponse) {
100101
HttpResponse httpResponse = (HttpResponse) msg;
101102
span.setAttribute(SemanticAttributes.HTTP_STATUS_CODE, httpResponse.status().code());
102-
span.setStatus(HttpStatusConverter.statusFromHttpStatus(httpResponse.status().code()));
103+
span.setStatus(HttpStatusConverter.SERVER.statusFromHttpStatus(httpResponse.status().code()));
103104
}
104105
if (msg instanceof LastHttpContent) {
105106
span.end();

Diff for: instrumentation/struts-2.3/build.gradle.kts

-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
import org.gradle.internal.Cast.uncheckedCast
2-
31
plugins {
42
`java-library`
53
id("io.opentelemetry.instrumentation.auto-instrumentation")
@@ -16,7 +14,6 @@ dependencies {
1614
testImplementation("io.opentelemetry.javaagent.instrumentation:opentelemetry-javaagent-servlet-3.0:${versions["opentelemetry_java_agent"]}")
1715
testImplementation("org.apache.struts:struts2-core:2.3.1")
1816
testImplementation("org.apache.struts:struts2-json-plugin:2.3.1")
19-
testImplementation("org.apache.struts:struts2-convention-plugin:2.3.1")
2017
testImplementation("org.eclipse.jetty:jetty-server:8.0.0.v20110901")
2118
testImplementation("org.eclipse.jetty:jetty-servlet:8.0.0.v20110901")
2219
testImplementation("javax.servlet:javax.servlet-api:3.0.1")

Diff for: instrumentation/struts-2.3/src/test/java/io/opentelemetry/javaagent/instrumentation/hypertrace/struts/Struts2Action.java

-4
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,7 @@
1717
package io.opentelemetry.javaagent.instrumentation.hypertrace.struts;
1818

1919
import com.opensymphony.xwork2.ActionSupport;
20-
import org.apache.struts2.convention.annotation.ParentPackage;
21-
import org.apache.struts2.convention.annotation.Result;
2220

23-
@Result(type = "json")
24-
@ParentPackage("json-default")
2521
public class Struts2Action extends ActionSupport {
2622

2723
private String jsonString = "{'balance':1000.21,'is_vip':true,'num':100,'name':'foo'}";

Diff for: javaagent-tooling/build.gradle.kts

+1-2
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,7 @@ dependencies {
2121
instrumentationMuzzle("io.opentelemetry.instrumentation:gradle-plugins:${versions["opentelemetry_gradle_plugin"]}")
2222
instrumentationMuzzle("io.opentelemetry.javaagent:opentelemetry-javaagent-bootstrap:${versions["opentelemetry_java_agent"]}")
2323
instrumentationMuzzle("io.opentelemetry.javaagent:opentelemetry-javaagent-extension-api:${versions["opentelemetry_java_agent"]}")
24-
instrumentationMuzzle("net.bytebuddy:byte-buddy:1.11.2")
25-
instrumentationMuzzle("net.bytebuddy:byte-buddy-agent:1.11.2")
24+
instrumentationMuzzle("net.bytebuddy:byte-buddy-dep:1.11.22")
2625
instrumentationMuzzle("com.google.auto.service:auto-service:1.0")
2726
instrumentationMuzzle("org.slf4j:slf4j-api:${versions["slf4j"]}")
2827
}

Diff for: otel-extensions/build.gradle.kts

+1-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ dependencies {
3939

4040
implementation("org.slf4j:slf4j-api:${versions["slf4j"]}")
4141
compileOnly("com.google.auto.service:auto-service-annotations:1.0")
42-
implementation("net.bytebuddy:byte-buddy:${versions["byte_buddy"]}")
42+
implementation("net.bytebuddy:byte-buddy-dep:${versions["byte_buddy"]}")
4343
annotationProcessor("com.google.auto.service:auto-service:1.0")
4444

4545

Diff for: smoke-tests/build.gradle.kts

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ dependencies{
1515
testImplementation("org.testcontainers:testcontainers:1.15.2")
1616
testImplementation("com.squareup.okhttp3:okhttp:4.9.0")
1717
testImplementation("org.awaitility:awaitility:4.0.3")
18-
testImplementation("io.opentelemetry:opentelemetry-proto:${versions["opentelemetry"]}-alpha")
18+
testImplementation("io.opentelemetry.proto:opentelemetry-proto:${versions["opentelemetry_proto"]}")
1919
testImplementation("io.grpc:grpc-core:1.36.1") // needed at runtime to send gRPC requests to the gRPC app
2020
testRuntimeOnly("io.grpc:grpc-netty-shaded:1.36.1") // needed at runtime to send gRPC requests to the gRPC app
2121
testRuntimeOnly("io.grpc:grpc-stub:1.36.1") // needed at runtime to send gRPC requests to the gRPC app

0 commit comments

Comments
 (0)