From f5a0cd2fc3e301f4d15a0e9bb5dc7535237c91a1 Mon Sep 17 00:00:00 2001
From: Pavol Loffay
Date: Mon, 18 Jan 2021 15:32:06 +0100
Subject: [PATCH] Bump OTEL to 0.14.0
Signed-off-by: Pavol Loffay
---
build.gradle.kts | 4 +-
.../DelegatingRequestAccessor.java | 31 ------------
...pacheAsyncClientInstrumentationModule.java | 5 +-
...eAsyncClientInstrumentationModuleTest.java | 31 +-----------
...putStreamReadAllInstrumentationModule.java | 2 +-
.../server/GrpcServerBodyInstrumentation.java | 2 +-
.../InputStreamInstrumentationModuleTest.java | 32 ++-----------
...OutputStreamInstrumentationModuleTest.java | 28 ++---------
.../JaxrsClientBodyInstrumentationModule.java | 2 +-
.../hypertrace/netty/v4_0/AttributeKeys.java | 48 +++----------------
.../NettyChannelPipelineInstrumentation.java | 2 +-
.../HttpClientResponseTracingHandler.java | 2 +-
.../HttpServerResponseTracingHandler.java | 2 +-
.../NettyChannelPipelineInstrumentation.java | 2 +-
.../HttpClientResponseTracingHandler.java | 2 +-
.../HttpServerResponseTracingHandler.java | 2 +-
.../Servlet2BodyInstrumentationModule.java | 4 +-
.../Servlet30BodyInstrumentationModule.java | 4 +-
.../v3_0/Servlet30InstrumentationTest.java | 4 +-
.../Servlet31BodyInstrumentationModule.java | 4 +-
.../v3_1/Servlet31InstrumentationTest.java | 4 +-
.../SparkJavaBodyInstrumentationModule.java | 2 +-
otel-extensions/build.gradle.kts | 1 +
.../HypertraceGlobalIgnoreMatcher.java | 43 +++++++++++++++++
testing-common/build.gradle.kts | 2 +
.../testing/AbstractInstrumenterTest.java | 6 +--
.../testing/TestOpenTelemetryInstaller.java | 20 ++------
27 files changed, 91 insertions(+), 200 deletions(-)
delete mode 100644 instrumentation/apache-httpasyncclient-4.1/src/main/java/io/opentelemetry/javaagent/instrumentation/apachehttpasyncclient/DelegatingRequestAccessor.java
create mode 100644 otel-extensions/src/main/java/org/hypertrace/agent/otel/extensions/HypertraceGlobalIgnoreMatcher.java
diff --git a/build.gradle.kts b/build.gradle.kts
index b7fb73ebb..4063cab8b 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -28,8 +28,8 @@ subprojects {
description = "Hypertrace OpenTelemetry Javaagent"
extra.set("versions", mapOf(
- "opentelemetry" to "0.13.1",
- "opentelemetry_java_agent" to "0.13.0",
+ "opentelemetry" to "0.14.1",
+ "opentelemetry_java_agent" to "0.14.0",
"byte_buddy" to "1.10.18"
))
diff --git a/instrumentation/apache-httpasyncclient-4.1/src/main/java/io/opentelemetry/javaagent/instrumentation/apachehttpasyncclient/DelegatingRequestAccessor.java b/instrumentation/apache-httpasyncclient-4.1/src/main/java/io/opentelemetry/javaagent/instrumentation/apachehttpasyncclient/DelegatingRequestAccessor.java
deleted file mode 100644
index 02d3259a5..000000000
--- a/instrumentation/apache-httpasyncclient-4.1/src/main/java/io/opentelemetry/javaagent/instrumentation/apachehttpasyncclient/DelegatingRequestAccessor.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright The Hypertrace Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.opentelemetry.javaagent.instrumentation.apachehttpasyncclient;
-
-import io.opentelemetry.context.Context;
-import io.opentelemetry.javaagent.instrumentation.apachehttpasyncclient.ApacheHttpAsyncClientInstrumentation.DelegatingRequestProducer;
-
-/**
- * TODO remove once https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/1951
- * is merged
- */
-public class DelegatingRequestAccessor {
-
- public static Context get(DelegatingRequestProducer delegatingRequestProducer) {
- return delegatingRequestProducer.context;
- }
-}
diff --git a/instrumentation/apache-httpasyncclient-4.1/src/main/java/io/opentelemetry/javaagent/instrumentation/hypertrace/apachehttpasyncclient/ApacheAsyncClientInstrumentationModule.java b/instrumentation/apache-httpasyncclient-4.1/src/main/java/io/opentelemetry/javaagent/instrumentation/hypertrace/apachehttpasyncclient/ApacheAsyncClientInstrumentationModule.java
index a5f05a02d..142f8da3c 100644
--- a/instrumentation/apache-httpasyncclient-4.1/src/main/java/io/opentelemetry/javaagent/instrumentation/hypertrace/apachehttpasyncclient/ApacheAsyncClientInstrumentationModule.java
+++ b/instrumentation/apache-httpasyncclient-4.1/src/main/java/io/opentelemetry/javaagent/instrumentation/hypertrace/apachehttpasyncclient/ApacheAsyncClientInstrumentationModule.java
@@ -16,8 +16,8 @@
package io.opentelemetry.javaagent.instrumentation.hypertrace.apachehttpasyncclient;
-import static io.opentelemetry.javaagent.tooling.ClassLoaderMatcher.hasClassesNamed;
import static io.opentelemetry.javaagent.tooling.bytebuddy.matcher.AgentElementMatchers.implementsInterface;
+import static io.opentelemetry.javaagent.tooling.bytebuddy.matcher.ClassLoaderMatcher.hasClassesNamed;
import static java.util.Collections.singletonMap;
import static net.bytebuddy.matcher.ElementMatchers.isMethod;
import static net.bytebuddy.matcher.ElementMatchers.named;
@@ -28,7 +28,6 @@
import io.opentelemetry.api.trace.Span;
import io.opentelemetry.context.Context;
import io.opentelemetry.javaagent.instrumentation.apachehttpasyncclient.ApacheHttpAsyncClientInstrumentation.DelegatingRequestProducer;
-import io.opentelemetry.javaagent.instrumentation.apachehttpasyncclient.DelegatingRequestAccessor;
import io.opentelemetry.javaagent.instrumentation.hypertrace.apachehttpclient.v4_0.ApacheHttpClientUtils;
import io.opentelemetry.javaagent.tooling.InstrumentationModule;
import io.opentelemetry.javaagent.tooling.TypeInstrumentation;
@@ -104,7 +103,7 @@ public static void enter(
if (requestProducer instanceof DelegatingRequestProducer) {
DelegatingRequestProducer delegatingRequestProducer =
(DelegatingRequestProducer) requestProducer;
- Context context = DelegatingRequestAccessor.get(delegatingRequestProducer);
+ Context context = delegatingRequestProducer.getContext();
requestProducer = new DelegatingCaptureBodyRequestProducer(context, requestProducer);
futureCallback = new BodyCaptureDelegatingCallback(context, httpContext, futureCallback);
}
diff --git a/instrumentation/apache-httpasyncclient-4.1/src/test/java/io/opentelemetry/instrumentation/hypertrace/apachehttpasyncclient/ApacheAsyncClientInstrumentationModuleTest.java b/instrumentation/apache-httpasyncclient-4.1/src/test/java/io/opentelemetry/instrumentation/hypertrace/apachehttpasyncclient/ApacheAsyncClientInstrumentationModuleTest.java
index fac7540e8..fbc92cbb1 100644
--- a/instrumentation/apache-httpasyncclient-4.1/src/test/java/io/opentelemetry/instrumentation/hypertrace/apachehttpasyncclient/ApacheAsyncClientInstrumentationModuleTest.java
+++ b/instrumentation/apache-httpasyncclient-4.1/src/test/java/io/opentelemetry/instrumentation/hypertrace/apachehttpasyncclient/ApacheAsyncClientInstrumentationModuleTest.java
@@ -45,7 +45,6 @@
import org.hypertrace.agent.testing.AbstractInstrumenterTest;
import org.hypertrace.agent.testing.TestHttpServer;
import org.hypertrace.agent.testing.TestHttpServer.GetJsonHandler;
-import org.jetbrains.annotations.NotNull;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeAll;
@@ -183,35 +182,7 @@ public boolean isRepeatable() {
@Override
public InputStream getContent() {
- return new TestInputStream(this.content);
- }
- }
-
- // TODO remove once https://github.com/hypertrace/javaagent/issues/189 is fixed
- static class TestInputStream extends ByteArrayInputStream {
-
- public TestInputStream(byte[] buf) {
- super(buf);
- }
-
- @Override
- public synchronized int read() {
- return super.read();
- }
-
- @Override
- public int read(@NotNull byte[] b) throws IOException {
- return super.read(b);
- }
-
- @Override
- public synchronized int read(byte[] b, int off, int len) {
- return super.read(b, off, len);
- }
-
- @Override
- public synchronized int available() {
- return super.available();
+ return new ByteArrayInputStream(this.content);
}
}
diff --git a/instrumentation/apache-httpclient-4.0/src/main/java/io/opentelemetry/javaagent/instrumentation/hypertrace/apachehttpclient/v4_0/readall/InputStreamReadAllInstrumentationModule.java b/instrumentation/apache-httpclient-4.0/src/main/java/io/opentelemetry/javaagent/instrumentation/hypertrace/apachehttpclient/v4_0/readall/InputStreamReadAllInstrumentationModule.java
index b3f96a094..e226edb7b 100644
--- a/instrumentation/apache-httpclient-4.0/src/main/java/io/opentelemetry/javaagent/instrumentation/hypertrace/apachehttpclient/v4_0/readall/InputStreamReadAllInstrumentationModule.java
+++ b/instrumentation/apache-httpclient-4.0/src/main/java/io/opentelemetry/javaagent/instrumentation/hypertrace/apachehttpclient/v4_0/readall/InputStreamReadAllInstrumentationModule.java
@@ -17,7 +17,7 @@
package io.opentelemetry.javaagent.instrumentation.hypertrace.apachehttpclient.v4_0.readall;
import static io.opentelemetry.javaagent.tooling.bytebuddy.matcher.AgentElementMatchers.safeHasSuperType;
-import static io.opentelemetry.javaagent.tooling.matcher.NameMatchers.namedOneOf;
+import static io.opentelemetry.javaagent.tooling.bytebuddy.matcher.NameMatchers.namedOneOf;
import static net.bytebuddy.matcher.ElementMatchers.is;
import static net.bytebuddy.matcher.ElementMatchers.isPublic;
import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
diff --git a/instrumentation/grpc-1.5/src/main/java/io/opentelemetry/javaagent/instrumentation/hypertrace/grpc/v1_5/server/GrpcServerBodyInstrumentation.java b/instrumentation/grpc-1.5/src/main/java/io/opentelemetry/javaagent/instrumentation/hypertrace/grpc/v1_5/server/GrpcServerBodyInstrumentation.java
index 9f21876e7..0b659bdae 100644
--- a/instrumentation/grpc-1.5/src/main/java/io/opentelemetry/javaagent/instrumentation/hypertrace/grpc/v1_5/server/GrpcServerBodyInstrumentation.java
+++ b/instrumentation/grpc-1.5/src/main/java/io/opentelemetry/javaagent/instrumentation/hypertrace/grpc/v1_5/server/GrpcServerBodyInstrumentation.java
@@ -16,8 +16,8 @@
package io.opentelemetry.javaagent.instrumentation.hypertrace.grpc.v1_5.server;
-import static io.opentelemetry.javaagent.tooling.ClassLoaderMatcher.hasClassesNamed;
import static io.opentelemetry.javaagent.tooling.bytebuddy.matcher.AgentElementMatchers.safeHasSuperType;
+import static io.opentelemetry.javaagent.tooling.bytebuddy.matcher.ClassLoaderMatcher.hasClassesNamed;
import static java.util.Collections.singletonMap;
import static net.bytebuddy.matcher.ElementMatchers.isMethod;
import static net.bytebuddy.matcher.ElementMatchers.isPublic;
diff --git a/instrumentation/java-streams/src/test/java/io/opentelemetry/javaagent/instrumentation/hypertrace/java/inputstream/InputStreamInstrumentationModuleTest.java b/instrumentation/java-streams/src/test/java/io/opentelemetry/javaagent/instrumentation/hypertrace/java/inputstream/InputStreamInstrumentationModuleTest.java
index 8adec3e5f..a7863a404 100644
--- a/instrumentation/java-streams/src/test/java/io/opentelemetry/javaagent/instrumentation/hypertrace/java/inputstream/InputStreamInstrumentationModuleTest.java
+++ b/instrumentation/java-streams/src/test/java/io/opentelemetry/javaagent/instrumentation/hypertrace/java/inputstream/InputStreamInstrumentationModuleTest.java
@@ -39,7 +39,7 @@ public class InputStreamInstrumentationModuleTest extends AbstractInstrumenterTe
@Test
public void read() {
- InputStream inputStream = new TestByteArrayInputStream(STR.getBytes());
+ InputStream inputStream = new ByteArrayInputStream(STR.getBytes());
read(
inputStream,
() -> {
@@ -57,7 +57,7 @@ public void read() {
@Test
public void readBytes() {
- InputStream inputStream = new TestByteArrayInputStream(STR.getBytes());
+ InputStream inputStream = new ByteArrayInputStream(STR.getBytes());
read(
inputStream,
() -> {
@@ -75,7 +75,7 @@ public void readBytes() {
@Test
public void readBytesOffset() {
- InputStream inputStream = new TestByteArrayInputStream(STR.getBytes());
+ InputStream inputStream = new ByteArrayInputStream(STR.getBytes());
read(
inputStream,
() -> {
@@ -109,30 +109,4 @@ private void read(InputStream inputStream, Runnable read, String expected) {
SpanData spanData = trace.get(0);
Assertions.assertEquals(expected, spanData.getAttributes().get(ATTRIBUTE_KEY));
}
-
- /**
- * Each method has to be overridden because OTEL agent ignores classes from java.
- * https://github.com/open-telemetry/opentelemetry-java-instrumentation/blob/8baa897e8bf09359da848aaaa98d2b4eb7fbf4c1/javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/matcher/GlobalIgnoresMatcher.java#L105
- */
- static class TestByteArrayInputStream extends ByteArrayInputStream {
-
- public TestByteArrayInputStream(byte[] buf) {
- super(buf);
- }
-
- @Override
- public synchronized int read() {
- return super.read();
- }
-
- @Override
- public int read(byte[] b) throws IOException {
- return super.read(b);
- }
-
- @Override
- public synchronized int read(byte[] b, int off, int len) {
- return super.read(b, off, len);
- }
- }
}
diff --git a/instrumentation/java-streams/src/test/java/io/opentelemetry/javaagent/instrumentation/hypertrace/java/outputstream/OutputStreamInstrumentationModuleTest.java b/instrumentation/java-streams/src/test/java/io/opentelemetry/javaagent/instrumentation/hypertrace/java/outputstream/OutputStreamInstrumentationModuleTest.java
index fb1c4f155..62c575f7a 100644
--- a/instrumentation/java-streams/src/test/java/io/opentelemetry/javaagent/instrumentation/hypertrace/java/outputstream/OutputStreamInstrumentationModuleTest.java
+++ b/instrumentation/java-streams/src/test/java/io/opentelemetry/javaagent/instrumentation/hypertrace/java/outputstream/OutputStreamInstrumentationModuleTest.java
@@ -37,7 +37,7 @@ class OutputStreamInstrumentationModuleTest extends AbstractInstrumenterTest {
@Test
public void write() {
- OutputStream outputStream = new TestByteArrayOutputStream();
+ OutputStream outputStream = new ByteArrayOutputStream();
write(
outputStream,
() -> {
@@ -54,7 +54,7 @@ public void write() {
@Test
public void writeBytes() {
- OutputStream outputStream = new TestByteArrayOutputStream();
+ OutputStream outputStream = new ByteArrayOutputStream();
write(
outputStream,
() -> {
@@ -70,7 +70,7 @@ public void writeBytes() {
@Test
public void writeBytesOffset() {
- OutputStream outputStream = new TestByteArrayOutputStream();
+ OutputStream outputStream = new ByteArrayOutputStream();
write(
outputStream,
() -> {
@@ -92,26 +92,4 @@ private void write(OutputStream outputStream, Runnable read, String expected) {
read.run();
Assertions.assertEquals(expected, buffer.toString());
}
-
- /**
- * Each method has to be overridden because OTEL agent ignores classes from java.
- * https://github.com/open-telemetry/opentelemetry-java-instrumentation/blob/8baa897e8bf09359da848aaaa98d2b4eb7fbf4c1/javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/matcher/GlobalIgnoresMatcher.java#L105
- */
- static class TestByteArrayOutputStream extends ByteArrayOutputStream {
-
- @Override
- public synchronized void write(int b) {
- super.write(b);
- }
-
- @Override
- public void write(byte[] b) throws IOException {
- super.write(b);
- }
-
- @Override
- public synchronized void write(byte[] b, int off, int len) {
- super.write(b, off, len);
- }
- }
}
diff --git a/instrumentation/jaxrs-client-2.0/src/main/java/io/opentelemetry/javaagent/instrumentation/hypertrace/jaxrs/v2_0/JaxrsClientBodyInstrumentationModule.java b/instrumentation/jaxrs-client-2.0/src/main/java/io/opentelemetry/javaagent/instrumentation/hypertrace/jaxrs/v2_0/JaxrsClientBodyInstrumentationModule.java
index 6e8bdc73d..ae9885875 100644
--- a/instrumentation/jaxrs-client-2.0/src/main/java/io/opentelemetry/javaagent/instrumentation/hypertrace/jaxrs/v2_0/JaxrsClientBodyInstrumentationModule.java
+++ b/instrumentation/jaxrs-client-2.0/src/main/java/io/opentelemetry/javaagent/instrumentation/hypertrace/jaxrs/v2_0/JaxrsClientBodyInstrumentationModule.java
@@ -16,9 +16,9 @@
package io.opentelemetry.javaagent.instrumentation.hypertrace.jaxrs.v2_0;
-import static io.opentelemetry.javaagent.tooling.ClassLoaderMatcher.hasClassesNamed;
import static io.opentelemetry.javaagent.tooling.bytebuddy.matcher.AgentElementMatchers.extendsClass;
import static io.opentelemetry.javaagent.tooling.bytebuddy.matcher.AgentElementMatchers.hasInterface;
+import static io.opentelemetry.javaagent.tooling.bytebuddy.matcher.ClassLoaderMatcher.hasClassesNamed;
import static java.util.Collections.singletonMap;
import static net.bytebuddy.matcher.ElementMatchers.named;
import static net.bytebuddy.matcher.ElementMatchers.returns;
diff --git a/instrumentation/netty/netty-4.0/src/main/java/io/opentelemetry/javaagent/instrumentation/hypertrace/netty/v4_0/AttributeKeys.java b/instrumentation/netty/netty-4.0/src/main/java/io/opentelemetry/javaagent/instrumentation/hypertrace/netty/v4_0/AttributeKeys.java
index ffbabaad4..6f9750edd 100644
--- a/instrumentation/netty/netty-4.0/src/main/java/io/opentelemetry/javaagent/instrumentation/hypertrace/netty/v4_0/AttributeKeys.java
+++ b/instrumentation/netty/netty-4.0/src/main/java/io/opentelemetry/javaagent/instrumentation/hypertrace/netty/v4_0/AttributeKeys.java
@@ -17,56 +17,20 @@
package io.opentelemetry.javaagent.instrumentation.hypertrace.netty.v4_0;
import io.netty.util.AttributeKey;
-import io.opentelemetry.javaagent.instrumentation.api.WeakMap;
import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ConcurrentMap;
import org.hypertrace.agent.core.instrumentation.HypertraceSemanticAttributes;
import org.hypertrace.agent.core.instrumentation.buffer.BoundedByteArrayOutputStream;
-/**
- * Copied from
- * https://github.com/open-telemetry/opentelemetry-java-instrumentation/blob/deda1af9c0e420b882164e5f8240b51678cd646f/instrumentation/netty/netty-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/netty/v4_0/AttributeKeys.java#L14
- */
public class AttributeKeys {
- private static final WeakMap>> map =
- WeakMap.Implementation.DEFAULT.get();
- private static final WeakMap.ValueSupplier>>
- mapSupplier =
- new WeakMap.ValueSupplier>>() {
- @Override
- public ConcurrentMap> get(ClassLoader ignore) {
- return new ConcurrentHashMap<>();
- }
- };
-
public static final AttributeKey RESPONSE_BODY_BUFFER =
- attributeKey(HypertraceSemanticAttributes.HTTP_RESPONSE_BODY.getKey());
+ io.opentelemetry.javaagent.instrumentation.netty.v4_0.AttributeKeys.attributeKey(
+ HypertraceSemanticAttributes.HTTP_RESPONSE_BODY.getKey());
public static final AttributeKey REQUEST_BODY_BUFFER =
- attributeKey(HypertraceSemanticAttributes.HTTP_REQUEST_BODY.getKey());
+ io.opentelemetry.javaagent.instrumentation.netty.v4_0.AttributeKeys.attributeKey(
+ HypertraceSemanticAttributes.HTTP_REQUEST_BODY.getKey());
public static final AttributeKey