Skip to content

Commit 9d80781

Browse files
authored
Upgrade to OTEL 1.7.X (#355)
* ⬆️ upgrade otel SDK * 🚧 * 🐛 remove all classifier from javaagent artifact * 🔥 delete tooling from autoinstrumentation dependency * 🐛 add compile dependencies on relocated otel servlet objects * ♻️ refactor java-streams to handle InstrumentationContext and ContextStore renaming to VirtualField * ♻️ refactor apache-http to handle InstrumentationContext and ContextStore renaming to VirtualField * ♻️ rename otel Cache.newBuilder() to builder() * ♻️ refactor jaxrs-client to handle InstrumentationContext and ContextStore renaming to VirtualField * 🎨 format java-streams * 🎨 format apache-http * 🎨 format jaxrs-client" * ♻️ refactor servlet-3.0 to handle InstrumentationContext and ContextStore renaming to VirtualField * 🐛 add otel to instrumentation classpath' * 🐛 update netty-4.0 module based on otel refactor to the instrumenter API * 🐛 update netty-4.1 module based on otel refactor to the instrumenter API * ♻️ refactor servlet-rw to handle InstrumentationContext and ContextStore renaming to VirtualField * ♻️ refactor undertow-1.4 to handle InstrumentationContext and ContextStore renaming to VirtualField * ♻️ refactor undertow-servlet to handle InstrumentationContext and ContextStore renaming to VirtualField * ♻️ refactor vertx to handle InstrumentationContext and ContextStore renaming to VirtualField * ♻️ account for InstrumentationModule muzzle refactor in java-streams module * ♻️ account for InstrumentationModule muzzle refactor in servlet-3.0 * ♻️ account for InstrumentationModule muzzle refactor in servlet-rw * 🐛 upgrade gradle plugins, move tooling to convention plugin for ease of configuration * ♻️ rename MuzzleCodeGenerationPlugin * 🐛 add constraint for java9 tooling API * 🐛 fix expected metric name for span exporter * 🐛 fix class definition error as a result of using Span.fromContext inline * ✅ update assertions based on the removal of http.url for http.scheme, http.host, and http.target * 🔥 remove javaagent tooling dep in auto-instrumentation plugin * ♻️ add gradle plugin version to map * 🔥 remove unneeded deps from javaagent-tooling * 💡 add comment clarifying java 9 constraint * 🐛 add otel-muzzle as muzzle dep
1 parent 09f6553 commit 9d80781

File tree

58 files changed

+459
-355
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

58 files changed

+459
-355
lines changed

build.gradle.kts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,12 @@ subprojects {
3232
description = "Hypertrace OpenTelemetry Javaagent"
3333

3434
extra.set("versions", mapOf(
35-
"opentelemetry" to "1.6.0",
36-
"opentelemetry_java_agent" to "1.6.2-alpha",
37-
"opentelemetry_java_agent_all" to "1.6.2",
35+
// when updating these values, some values must also be updated in buildSrc as this map
36+
// 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",
3841
"byte_buddy" to "1.11.2",
3942
"slf4j" to "1.7.30"
4043
))

buildSrc/build.gradle.kts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,9 @@ repositories {
2727
dependencies {
2828
implementation(gradleApi())
2929
implementation(localGroovy())
30-
31-
implementation("io.opentelemetry.instrumentation.muzzle-generation:io.opentelemetry.instrumentation.muzzle-generation.gradle.plugin:0.7.0")
32-
implementation("io.opentelemetry.instrumentation.muzzle-check:io.opentelemetry.instrumentation.muzzle-check.gradle.plugin:0.7.0")
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")
3333
implementation("com.github.jengelman.gradle.plugins:shadow:6.0.0")
3434
implementation("org.eclipse.aether", "aether-connector-basic", "1.1.0")
3535
implementation("org.eclipse.aether", "aether-transport-http", "1.1.0")

buildSrc/src/main/java/io/opentelemetry/instrumentation/gradle/AutoInstrumentationPlugin.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,11 @@
99
import java.util.Arrays;
1010
import java.util.Map;
1111
import java.util.Objects;
12-
import org.gradle.api.Action;
1312
import org.gradle.api.Plugin;
1413
import org.gradle.api.Project;
1514
import org.gradle.api.artifacts.Configuration;
1615
import org.gradle.api.artifacts.Dependency;
1716
import org.gradle.api.artifacts.dsl.DependencyHandler;
18-
import org.gradle.api.attributes.AttributeContainer;
1917
import org.gradle.api.attributes.LibraryElements;
2018
import org.gradle.api.plugins.JavaLibraryPlugin;
2119
import org.gradle.api.plugins.JavaPlugin;
@@ -62,9 +60,6 @@ private void addDependencies(Project project) {
6260
dependencies.add("implementation", "net.bytebuddy:byte-buddy:" + versions.get("byte_buddy"));
6361
dependencies.add("implementation",
6462
"io.opentelemetry:opentelemetry-api:" + versions.get("opentelemetry"));
65-
dependencies.add("implementation",
66-
"io.opentelemetry.javaagent:opentelemetry-javaagent-tooling:" + versions
67-
.get("opentelemetry_java_agent"));
6863
dependencies.add("implementation",
6964
"io.opentelemetry.javaagent:opentelemetry-javaagent-extension-api:" + versions
7065
.get("opentelemetry_java_agent"));

instrumentation/apache-httpasyncclient-4.1/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ muzzle {
1919
afterEvaluate{
2020
io.opentelemetry.instrumentation.gradle.bytebuddy.ByteBuddyPluginConfigurator(project,
2121
sourceSets.main.get(),
22-
io.opentelemetry.javaagent.muzzle.generation.MuzzleCodeGenerationPlugin::class.java.name,
22+
io.opentelemetry.javaagent.tooling.muzzle.generation.MuzzleCodeGenerationPlugin::class.java.name,
2323
project(":javaagent-tooling").configurations["instrumentationMuzzle"] + configurations.runtimeClasspath
2424
).configure()
2525
}

instrumentation/apache-httpclient-4.0/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ muzzle {
3131
afterEvaluate{
3232
io.opentelemetry.instrumentation.gradle.bytebuddy.ByteBuddyPluginConfigurator(project,
3333
sourceSets.main.get(),
34-
io.opentelemetry.javaagent.muzzle.generation.MuzzleCodeGenerationPlugin::class.java.name,
34+
io.opentelemetry.javaagent.tooling.muzzle.generation.MuzzleCodeGenerationPlugin::class.java.name,
3535
project(":javaagent-tooling").configurations["instrumentationMuzzle"] + configurations.runtimeClasspath
3636
).configure()
3737
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
public class ApacheHttpClientObjectRegistry {
2525

2626
public static final Cache<HttpEntity, SpanAndAttributeKey> entityToSpan =
27-
Cache.newBuilder().setWeakKeys().build();
27+
Cache.builder().setWeakKeys().build();
2828

2929
public static class SpanAndAttributeKey {
3030
public final Span span;

instrumentation/apache-httpclient-4.0/src/main/java/io/opentelemetry/javaagent/instrumentation/hypertrace/apachehttpclient/v4_0/HttpEntityInstrumentation.java

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,9 @@
2323
import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
2424
import static net.bytebuddy.matcher.ElementMatchers.takesArguments;
2525

26+
import io.opentelemetry.instrumentation.api.field.VirtualField;
2627
import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
2728
import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer;
28-
import io.opentelemetry.javaagent.instrumentation.api.ContextStore;
29-
import io.opentelemetry.javaagent.instrumentation.api.InstrumentationContext;
3029
import io.opentelemetry.javaagent.instrumentation.hypertrace.apachehttpclient.v4_0.ApacheHttpClientObjectRegistry.SpanAndAttributeKey;
3130
import java.io.InputStream;
3231
import java.io.OutputStream;
@@ -99,8 +98,7 @@ public static void exit(@Advice.This HttpEntity thizz, @Advice.Return InputStrea
9998
BoundedBuffersFactory.createStream((int) contentSize, charset),
10099
clientSpan.attributeKey,
101100
charset);
102-
InstrumentationContext.get(InputStream.class, SpanAndBuffer.class)
103-
.put(inputStream, spanAndBuffer);
101+
VirtualField.find(InputStream.class, SpanAndBuffer.class).set(inputStream, spanAndBuffer);
104102
}
105103
}
106104

@@ -128,8 +126,8 @@ public static void enter(
128126
BoundedByteArrayOutputStream byteArrayOutputStream =
129127
BoundedBuffersFactory.createStream((int) contentSize, charset);
130128

131-
InstrumentationContext.get(OutputStream.class, BoundedByteArrayOutputStream.class)
132-
.put(outputStream, byteArrayOutputStream);
129+
VirtualField.find(OutputStream.class, BoundedByteArrayOutputStream.class)
130+
.set(outputStream, byteArrayOutputStream);
133131
}
134132

135133
@Advice.OnMethodExit(suppress = Throwable.class, onThrowable = Throwable.class)
@@ -142,10 +140,10 @@ public static void exit(
142140
return;
143141
}
144142

145-
ContextStore<OutputStream, BoundedByteArrayOutputStream> contextStore =
146-
InstrumentationContext.get(OutputStream.class, BoundedByteArrayOutputStream.class);
143+
VirtualField<OutputStream, BoundedByteArrayOutputStream> contextStore =
144+
VirtualField.find(OutputStream.class, BoundedByteArrayOutputStream.class);
147145
BoundedByteArrayOutputStream bufferedOutStream = contextStore.get(outputStream);
148-
contextStore.put(outputStream, null);
146+
contextStore.set(outputStream, null);
149147
try {
150148
String requestBody = bufferedOutStream.toStringWithSuppliedCharset();
151149
spanAndAttributeKey.span.setAttribute(spanAndAttributeKey.attributeKey, requestBody);

instrumentation/grpc-1.6/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ muzzle {
2323
afterEvaluate{
2424
io.opentelemetry.instrumentation.gradle.bytebuddy.ByteBuddyPluginConfigurator(project,
2525
sourceSets.main.get(),
26-
io.opentelemetry.javaagent.muzzle.generation.MuzzleCodeGenerationPlugin::class.java.name,
26+
io.opentelemetry.javaagent.tooling.muzzle.generation.MuzzleCodeGenerationPlugin::class.java.name,
2727
project(":javaagent-tooling").configurations["instrumentationMuzzle"] + configurations.runtimeClasspath
2828
).configure()
2929
}

instrumentation/grpc-shaded-netty-1.9/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ muzzle {
1717
afterEvaluate{
1818
io.opentelemetry.instrumentation.gradle.bytebuddy.ByteBuddyPluginConfigurator(project,
1919
sourceSets.main.get(),
20-
io.opentelemetry.javaagent.muzzle.generation.MuzzleCodeGenerationPlugin::class.java.name,
20+
io.opentelemetry.javaagent.tooling.muzzle.generation.MuzzleCodeGenerationPlugin::class.java.name,
2121
project(":javaagent-tooling").configurations["instrumentationMuzzle"] + configurations.runtimeClasspath
2222
).configure()
2323
}

instrumentation/java-streams/build.gradle.kts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,14 @@ muzzle {
1414
afterEvaluate{
1515
io.opentelemetry.instrumentation.gradle.bytebuddy.ByteBuddyPluginConfigurator(project,
1616
sourceSets.main.get(),
17-
io.opentelemetry.javaagent.muzzle.generation.MuzzleCodeGenerationPlugin::class.java.name,
17+
io.opentelemetry.javaagent.tooling.muzzle.generation.MuzzleCodeGenerationPlugin::class.java.name,
1818
project(":javaagent-tooling").configurations["instrumentationMuzzle"] + configurations.runtimeClasspath
1919
).configure()
2020
}
2121

22+
val versions: Map<String, String> by extra
23+
2224
dependencies {
23-
testImplementation(testFixtures(project(":testing-common")))
25+
testImplementation(testFixtures(project(":testing-common")))
26+
testImplementation("io.opentelemetry.javaagent:opentelemetry-muzzle:${versions["opentelemetry_java_agent"]}")
2427
}

0 commit comments

Comments
 (0)