Delete HttpClientDecorator
DELETE
instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/decorator/HttpClientDecorator.java
-/*
- * Copyright The OpenTelemetry 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.instrumentation.api.decorator;
-
-import io.opentelemetry.instrumentation.api.MoreAttributes;
-import io.opentelemetry.instrumentation.api.config.Config;
-import io.opentelemetry.trace.Span;
-import io.opentelemetry.trace.Tracer;
-import io.opentelemetry.trace.attributes.SemanticAttributes;
-import java.net.URI;
-import java.net.URISyntaxException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-@Deprecated
-public abstract class HttpClientDecorator<REQUEST, RESPONSE> extends ClientDecorator {
-
- private static final Logger log = LoggerFactory.getLogger(HttpClientDecorator.class);
-
- public static final String DEFAULT_SPAN_NAME = "HTTP request";
-
- protected static final String USER_AGENT = "User-Agent";
-
- protected abstract String method(REQUEST request);
-
- protected abstract URI url(REQUEST request) throws URISyntaxException;
-
- protected abstract Integer status(RESPONSE response);
-
- protected abstract String requestHeader(REQUEST request, String name);
-
- protected abstract String responseHeader(RESPONSE response, String name);
-
- public Span getOrCreateSpan(REQUEST request, Tracer tracer) {
- return getOrCreateSpan(spanNameForRequest(request), tracer);
- }
-
- public String spanNameForRequest(final REQUEST request) {
- if (request == null) {
- return DEFAULT_SPAN_NAME;
- }
- String method = method(request);
- return method != null ? "HTTP " + method : DEFAULT_SPAN_NAME;
- }
-
- public Span onRequest(final Span span, final REQUEST request) {
- assert span != null;
- if (request != null) {
- span.setAttribute(SemanticAttributes.HTTP_METHOD.key(), method(request));
-
- String userAgent = requestHeader(request, USER_AGENT);
- if (userAgent != null) {
- SemanticAttributes.HTTP_USER_AGENT.set(span, userAgent);
- }
-
- // Copy of HttpServerDecorator url handling
- try {
- URI url = url(request);
- if (url != null) {
- StringBuilder urlBuilder = new StringBuilder();
- if (url.getScheme() != null) {
- urlBuilder.append(url.getScheme());
- urlBuilder.append("://");
- }
- if (url.getHost() != null) {
- urlBuilder.append(url.getHost());
- setPeer(span, url.getHost(), null);
- if (url.getPort() > 0) {
- span.setAttribute(SemanticAttributes.NET_PEER_PORT.key(), url.getPort());
- if (url.getPort() != 80 && url.getPort() != 443) {
- urlBuilder.append(":");
- urlBuilder.append(url.getPort());
- }
- }
- }
- String path = url.getPath();
- if (path.isEmpty()) {
- urlBuilder.append("/");
- } else {
- urlBuilder.append(path);
- }
- String query = url.getQuery();
- if (query != null) {
- urlBuilder.append("?").append(query);
- }
- String fragment = url.getFragment();
- if (fragment != null) {
- urlBuilder.append("#").append(fragment);
- }
-
- span.setAttribute(SemanticAttributes.HTTP_URL.key(), urlBuilder.toString());
-
- if (Config.get().isHttpClientTagQueryString()) {
- span.setAttribute(MoreAttributes.HTTP_QUERY, query);
- span.setAttribute(MoreAttributes.HTTP_FRAGMENT, fragment);
- }
- }
- } catch (final Exception e) {
- log.debug("Error tagging url", e);
- }
- }
- return span;
- }
-
- public Span onResponse(final Span span, final RESPONSE response) {
- assert span != null;
- if (response != null) {
- Integer status = status(response);
- if (status != null) {
- span.setAttribute(SemanticAttributes.HTTP_STATUS_CODE.key(), status);
- span.setStatus(HttpStatusConverter.statusFromHttpStatus(status));
- }
- }
- return span;
- }
-}

MODIFY
instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/decorator/HttpServerTracer.java
instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/decorator/HttpServerTracer.java
@@ -174,7 +174,7 @@ public abstract class HttpServerTracer<REQUEST, RESPONSE, CONNECTION, STORAGE> e
if (userAgent != null) {
SemanticAttributes.HTTP_USER_AGENT.set(span, userAgent);
}
- // Copy of HttpClientDecorator url handling
+ // Copy of HttpClientTracer url handling
try {
URI url = url(request);
if (url != null) {

ADD
instrumentation-api/src/test/groovy/io/opentelemetry/instrumentation/api/tracer/BaseTracerTest.groovy
+/*
+ * Copyright The OpenTelemetry 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.instrumentation.api.tracer
+
+import io.opentelemetry.auto.test.utils.ConfigUtils
+import io.opentelemetry.auto.util.test.AgentSpecification
+import io.opentelemetry.instrumentation.api.decorator.BaseTracer
+import io.opentelemetry.trace.Span
+import io.opentelemetry.trace.attributes.SemanticAttributes
+import spock.lang.Shared
+
+class BaseTracerTest extends AgentSpecification {
+
+ @Shared
+ def tracer = newTracer()
+
+ @Shared
+ def resolvedAddress = new InetSocketAddress("github.com", 999)
+
+ def span = Mock(Span)
+
+ def "test onPeerConnection"() {
+ when:
+ tracer.onPeerConnection(span, connection)
+
+ then:
+ if (expectedPeerName) {
+ 1 * span.setAttribute(SemanticAttributes.NET_PEER_NAME.key(), expectedPeerName)
+ }
+ if (expectedPeerIp) {
+ 1 * span.setAttribute(SemanticAttributes.NET_PEER_IP.key(), expectedPeerIp)
+ }
+ 1 * span.setAttribute(SemanticAttributes.NET_PEER_PORT.key(), connection.port)
+ 0 * _
+
+ where:
+ connection | expectedPeerName | expectedPeerIp
+ new InetSocketAddress("localhost", 888) | "localhost" | "127.0.0.1"
+ new InetSocketAddress("1.2.3.4", 888) | null | "1.2.3.4"
+ resolvedAddress | "github.com" | resolvedAddress.address.hostAddress
+ new InetSocketAddress("bad.address.local", 999) | "bad.address.local" | null
+ }
+
+ def "test onPeerConnection with mapped peer"() {
+ when:
+ ConfigUtils.withConfigOverride(
+ "endpoint.peer.service.mapping",
+ "1.2.3.4=catservice,dogs.com=dogsservice,opentelemetry.io=specservice") {
+ tracer.onPeerConnection(span, connection)
+ }
+
+ then:
+ if (expectedPeerService) {
+ 1 * span.setAttribute("peer.service", expectedPeerService)
+ } else {
+ 0 * span.setAttribute("peer.service", _)
+ }
+
+ where:
+ connection | expectedPeerService
+ new InetSocketAddress("1.2.3.4", 888) | "catservice"
+ new InetSocketAddress("2.3.4.5", 888) | null
+ new InetSocketAddress("dogs.com", 999) | "dogsservice"
+ new InetSocketAddress("github.com", 999) | null
+ }
+
+ def newTracer() {
+ return new BaseTracer() {
+ @Override
+ protected String getInstrumentationName() {
+ return "BaseTracerTest"
+ }
+ }
+ }
+
+ class SomeInnerClass implements Runnable {
+ void run() {
+ }
+ }
+
+ static class SomeNestedClass implements Runnable {
+ void run() {
+ }
+ }
+}
+
\ No newline at end of file

RENAME
instrumentation-api/src/test/groovy/io/opentelemetry/instrumentation/api/decorator/HttpClientDecoratorTest.groovy
instrumentation-api/src/test/groovy/io/opentelemetry/instrumentation/api/tracer/HttpClientTracerTest.groovy
* limitations under the License.
*/
-package io.opentelemetry.instrumentation.api.decorator
-
+package io.opentelemetry.instrumentation.api.tracer
+import io.opentelemetry.context.propagation.HttpTextFormat
+import io.opentelemetry.instrumentation.api.decorator.HttpClientTracer
+import io.opentelemetry.instrumentation.api.decorator.HttpStatusConverter
import io.opentelemetry.trace.Span
import io.opentelemetry.trace.attributes.SemanticAttributes
import spock.lang.Shared
import static io.opentelemetry.auto.test.utils.ConfigUtils.withConfigOverride
-class HttpClientDecoratorTest extends ClientDecoratorTest {
+class HttpClientTracerTest extends BaseTracerTest {
@Shared
def testUrl = new URI("http://myhost:123/somepath")
@@ -33,10 +35,10 @@ class HttpClientDecoratorTest extends ClientDecoratorTest {
def "test onRequest"() {
setup:
- def decorator = newDecorator()
+ def tracer = newTracer()
when:
- decorator.onRequest(span, req)
+ tracer.onRequest(span, req)
then:
if (req) {
@@ -57,14 +59,14 @@ class HttpClientDecoratorTest extends ClientDecoratorTest {
def "test onRequest with mapped peer"() {
setup:
- def decorator = newDecorator()
+ def tracer = newTracer()
def req = [method: "test-method", url: testUrl, "User-Agent": testUserAgent]
when:
withConfigOverride(
"endpoint.peer.service.mapping",
"myhost=reservation-service") {
- decorator.onRequest(span, req)
+ tracer.onRequest(span, req)
}
then:
@@ -81,11 +83,11 @@ class HttpClientDecoratorTest extends ClientDecoratorTest {
def "test url handling for #url"() {
setup:
- def decorator = newDecorator()
+ def tracer = newTracer()
when:
withConfigOverride(io.opentelemetry.instrumentation.api.config.Config.HTTP_CLIENT_TAG_QUERY_STRING, "$tagQueryString") {
- decorator.onRequest(span, req)
+ tracer.onRequest(span, req)
}
then:
@@ -125,10 +127,10 @@ class HttpClientDecoratorTest extends ClientDecoratorTest {
def "test onResponse"() {
setup:
- def decorator = newDecorator()
+ def tracer = newTracer()
when:
- decorator.onResponse(span, resp)
+ tracer.onResponse(span, resp)
then:
if (status) {
@@ -152,24 +154,24 @@ class HttpClientDecoratorTest extends ClientDecoratorTest {
def "test assert null span"() {
setup:
- def decorator = newDecorator()
+ def tracer = newTracer()
when:
- decorator.onRequest((Span) null, null)
+ tracer.onRequest((Span) null, null)
then:
thrown(AssertionError)
when:
- decorator.onResponse((Span) null, null)
+ tracer.onResponse((Span) null, null)
then:
thrown(AssertionError)
}
@Override
- def newDecorator() {
- return new HttpClientDecorator<Map, Map>() {
+ def newTracer() {
+ return new HttpClientTracer<Map, Map>() {
@Override
protected String method(Map m) {
@@ -195,6 +197,16 @@ class HttpClientDecoratorTest extends ClientDecoratorTest {
protected String responseHeader(Map m, String name) {
return m[name]
}
+
+ @Override
+ protected HttpTextFormat.Setter<Map> getSetter() {
+ return null
+ }
+
+ @Override
+ protected String getInstrumentationName() {
+ return "HttpClientTracerTest"
+ }
}
}

MODIFY
instrumentation/akka-http-10.0/src/test/groovy/AkkaHttpClientInstrumentationTest.groovy
instrumentation/akka-http-10.0/src/test/groovy/AkkaHttpClientInstrumentationTest.groovy
@@ -21,7 +21,7 @@ import akka.http.javadsl.model.HttpRequest
import akka.http.javadsl.model.headers.RawHeader
import akka.stream.ActorMaterializer
import io.opentelemetry.auto.test.base.HttpClientTest
-import io.opentelemetry.instrumentation.api.decorator.HttpClientDecorator
+import io.opentelemetry.instrumentation.api.decorator.HttpClientTracer
import spock.lang.Shared
import spock.lang.Timeout
@@ -75,7 +75,7 @@ class AkkaHttpClientInstrumentationTest extends HttpClientTest {
trace(0, 1) {
span(0) {
parent()
- operationName HttpClientDecorator.DEFAULT_SPAN_NAME
+ operationName HttpClientTracer.DEFAULT_SPAN_NAME
spanKind CLIENT
errored true
errorEvent(NullPointerException)

MODIFY
instrumentation/apache-httpasyncclient-4.0/src/main/java/io/opentelemetry/instrumentation/auto/apachehttpasyncclient/ApacheHttpAsyncClientInstrumentation.java
instrumentation/apache-httpasyncclient-4.0/src/main/java/io/opentelemetry/instrumentation/auto/apachehttpasyncclient/ApacheHttpAsyncClientInstrumentation.java
@@ -18,7 +18,7 @@ package io.opentelemetry.instrumentation.auto.apachehttpasyncclient;
import static io.opentelemetry.auto.tooling.ClassLoaderMatcher.hasClassesNamed;
import static io.opentelemetry.auto.tooling.bytebuddy.matcher.AgentElementMatchers.implementsInterface;
-import static io.opentelemetry.instrumentation.api.decorator.HttpClientDecorator.DEFAULT_SPAN_NAME;
+import static io.opentelemetry.instrumentation.api.decorator.HttpClientTracer.DEFAULT_SPAN_NAME;
import static io.opentelemetry.instrumentation.auto.apachehttpasyncclient.ApacheHttpAsyncClientTracer.TRACER;
import static io.opentelemetry.instrumentation.auto.apachehttpasyncclient.HttpHeadersInjectAdapter.SETTER;
import static io.opentelemetry.trace.TracingContextUtils.currentContextWith;

MODIFY
instrumentation/aws-sdk/aws-sdk-1.11/src/test/groovy/AWS1ClientTest.groovy
instrumentation/aws-sdk/aws-sdk-1.11/src/test/groovy/AWS1ClientTest.groovy
@@ -45,7 +45,7 @@ import com.amazonaws.services.sqs.AmazonSQSClientBuilder
import com.amazonaws.services.sqs.model.CreateQueueRequest
import com.amazonaws.services.sqs.model.SendMessageRequest
import io.opentelemetry.auto.test.AgentTestRunner
-import io.opentelemetry.instrumentation.api.decorator.HttpClientDecorator
+import io.opentelemetry.instrumentation.api.decorator.HttpClientTracer
import io.opentelemetry.trace.attributes.SemanticAttributes
import spock.lang.AutoCleanup
import spock.lang.Shared
@@ -340,6 +340,6 @@ class AWS1ClientTest extends AgentTestRunner {
}
String expectedOperationName(String method) {
- return method != null ? "HTTP $method" : HttpClientDecorator.DEFAULT_SPAN_NAME
+ return method != null ? "HTTP $method" : HttpClientTracer.DEFAULT_SPAN_NAME
}
}

MODIFY
instrumentation/aws-sdk/aws-sdk-1.11/src/test_before_1_11_106/groovy/AWS0ClientTest.groovy
instrumentation/aws-sdk/aws-sdk-1.11/src/test_before_1_11_106/groovy/AWS0ClientTest.groovy
@@ -32,7 +32,7 @@ import com.amazonaws.services.rds.model.DeleteOptionGroupRequest
import com.amazonaws.services.s3.AmazonS3Client
import com.amazonaws.services.s3.S3ClientOptions
import io.opentelemetry.auto.test.AgentTestRunner
-import io.opentelemetry.instrumentation.api.decorator.HttpClientDecorator
+import io.opentelemetry.instrumentation.api.decorator.HttpClientTracer
import io.opentelemetry.trace.attributes.SemanticAttributes
import spock.lang.AutoCleanup
import spock.lang.Shared
@@ -282,6 +282,6 @@ class AWS0ClientTest extends AgentTestRunner {
}
String expectedOperationName(String method) {
- return method != null ? "HTTP $method" : HttpClientDecorator.DEFAULT_SPAN_NAME
+ return method != null ? "HTTP $method" : HttpClientTracer.DEFAULT_SPAN_NAME
}
}

MODIFY
instrumentation/aws-sdk/aws-sdk-2.2/testing/src/main/groovy/io/opentelemetry/instrumentation/awssdk/v2_2/AbstractAws2ClientTest.groovy
instrumentation/aws-sdk/aws-sdk-2.2/testing/src/main/groovy/io/opentelemetry/instrumentation/awssdk/v2_2/AbstractAws2ClientTest.groovy
@@ -309,7 +309,7 @@ abstract class AbstractAws2ClientTest extends InstrumentationSpecification {
}
String expectedOperationName(String method) {
- return method != null ? "HTTP $method" : HttpClientDecorator.DEFAULT_SPAN_NAME
+ return method != null ? "HTTP $method" : HttpClientTracer.DEFAULT_SPAN_NAME
}
}

MODIFY
instrumentation/elasticsearch/elasticsearch-rest-5.0/src/latestDepTest/groovy/Elasticsearch6RestClientTest.groovy
instrumentation/elasticsearch/elasticsearch-rest-5.0/src/latestDepTest/groovy/Elasticsearch6RestClientTest.groovy
import groovy.json.JsonSlurper
import io.opentelemetry.auto.test.AgentTestRunner
-import io.opentelemetry.instrumentation.api.decorator.HttpClientDecorator
+import io.opentelemetry.instrumentation.api.decorator.HttpClientTracer
import io.opentelemetry.trace.attributes.SemanticAttributes
import org.apache.http.HttpHost
import org.apache.http.client.config.RequestConfig
@@ -121,6 +121,6 @@ class Elasticsearch6RestClientTest extends AgentTestRunner {
}
String expectedOperationName(String method) {
- return method != null ? "HTTP $method" : HttpClientDecorator.DEFAULT_SPAN_NAME
+ return method != null ? "HTTP $method" : HttpClientTracer.DEFAULT_SPAN_NAME
}
}

MODIFY
instrumentation/elasticsearch/elasticsearch-rest-5.0/src/test/groovy/Elasticsearch5RestClientTest.groovy
instrumentation/elasticsearch/elasticsearch-rest-5.0/src/test/groovy/Elasticsearch5RestClientTest.groovy
import groovy.json.JsonSlurper
import io.opentelemetry.auto.test.AgentTestRunner
-import io.opentelemetry.instrumentation.api.decorator.HttpClientDecorator
+import io.opentelemetry.instrumentation.api.decorator.HttpClientTracer
import io.opentelemetry.trace.attributes.SemanticAttributes
import org.apache.http.HttpHost
import org.apache.http.client.config.RequestConfig
@@ -125,6 +125,6 @@ class Elasticsearch5RestClientTest extends AgentTestRunner {
}
String expectedOperationName(String method) {
- return method != null ? "HTTP $method" : HttpClientDecorator.DEFAULT_SPAN_NAME
+ return method != null ? "HTTP $method" : HttpClientTracer.DEFAULT_SPAN_NAME
}
}

MODIFY
instrumentation/elasticsearch/elasticsearch-rest-6.4/src/latestDepTest/groovy/Elasticsearch6RestClientTest.groovy
instrumentation/elasticsearch/elasticsearch-rest-6.4/src/latestDepTest/groovy/Elasticsearch6RestClientTest.groovy
import groovy.json.JsonSlurper
import io.opentelemetry.auto.test.AgentTestRunner
-import io.opentelemetry.instrumentation.api.decorator.HttpClientDecorator
+import io.opentelemetry.instrumentation.api.decorator.HttpClientTracer
import io.opentelemetry.trace.attributes.SemanticAttributes
import org.apache.http.HttpHost
import org.apache.http.client.config.RequestConfig
@@ -135,6 +135,6 @@ class Elasticsearch6RestClientTest extends AgentTestRunner {
}
String expectedOperationName(String method) {
- return method != null ? "HTTP $method" : HttpClientDecorator.DEFAULT_SPAN_NAME
+ return method != null ? "HTTP $method" : HttpClientTracer.DEFAULT_SPAN_NAME
}
}

MODIFY
instrumentation/elasticsearch/elasticsearch-rest-6.4/src/test/groovy/Elasticsearch6RestClientTest.groovy
instrumentation/elasticsearch/elasticsearch-rest-6.4/src/test/groovy/Elasticsearch6RestClientTest.groovy
import groovy.json.JsonSlurper
import io.opentelemetry.auto.test.AgentTestRunner
-import io.opentelemetry.instrumentation.api.decorator.HttpClientDecorator
+import io.opentelemetry.instrumentation.api.decorator.HttpClientTracer
import io.opentelemetry.trace.attributes.SemanticAttributes
import org.apache.http.HttpHost
import org.apache.http.client.config.RequestConfig
@@ -121,6 +121,6 @@ class Elasticsearch6RestClientTest extends AgentTestRunner {
}
String expectedOperationName(String method) {
- return method != null ? "HTTP $method" : HttpClientDecorator.DEFAULT_SPAN_NAME
+ return method != null ? "HTTP $method" : HttpClientTracer.DEFAULT_SPAN_NAME
}
}

MODIFY
instrumentation/http-url-connection/src/test/groovy/UrlConnectionTest.groovy
instrumentation/http-url-connection/src/test/groovy/UrlConnectionTest.groovy
*/
import io.opentelemetry.auto.test.AgentTestRunner
+import io.opentelemetry.instrumentation.api.decorator.HttpClientTracer
import io.opentelemetry.instrumentation.auto.api.AgentClassLoader
-import io.opentelemetry.instrumentation.api.decorator.HttpClientDecorator
import io.opentelemetry.trace.attributes.SemanticAttributes
import static io.opentelemetry.auto.test.utils.PortUtils.UNUSABLE_PORT
@@ -133,6 +133,6 @@ class UrlConnectionTest extends AgentTestRunner {
}
String expectedOperationName(String method) {
- return method != null ? "HTTP $method" : HttpClientDecorator.DEFAULT_SPAN_NAME
+ return method != null ? "HTTP $method" : HttpClientTracer.DEFAULT_SPAN_NAME
}
}

MODIFY
instrumentation/twilio-6.6/src/test/groovy/test/TwilioClientTest.groovy
instrumentation/twilio-6.6/src/test/groovy/test/TwilioClientTest.groovy
@@ -27,7 +27,7 @@ import com.twilio.rest.api.v2010.account.Call
import com.twilio.rest.api.v2010.account.Message
import com.twilio.type.PhoneNumber
import io.opentelemetry.auto.test.AgentTestRunner
-import io.opentelemetry.instrumentation.api.decorator.HttpClientDecorator
+import io.opentelemetry.instrumentation.api.decorator.HttpClientTracer
import io.opentelemetry.trace.attributes.SemanticAttributes
import org.apache.http.HttpEntity
import org.apache.http.HttpStatus
@@ -716,6 +716,6 @@ class TwilioClientTest extends AgentTestRunner {
}
String expectedOperationName(String method) {
- return method != null ? "HTTP $method" : HttpClientDecorator.DEFAULT_SPAN_NAME
+ return method != null ? "HTTP $method" : HttpClientTracer.DEFAULT_SPAN_NAME
}
}

MODIFY
testing-common/src/main/groovy/io/opentelemetry/auto/test/base/HttpClientTest.groovy
testing-common/src/main/groovy/io/opentelemetry/auto/test/base/HttpClientTest.groovy
@@ -20,7 +20,7 @@ import io.opentelemetry.auto.test.AgentTestRunner
import io.opentelemetry.auto.test.asserts.TraceAssert
import io.opentelemetry.instrumentation.api.MoreAttributes
import io.opentelemetry.instrumentation.api.config.Config
-import io.opentelemetry.instrumentation.api.decorator.HttpClientDecorator
+import io.opentelemetry.instrumentation.api.decorator.HttpClientTracer
import io.opentelemetry.sdk.trace.data.SpanData
import io.opentelemetry.trace.attributes.SemanticAttributes
import spock.lang.AutoCleanup
@@ -466,7 +466,7 @@ abstract class HttpClientTest extends AgentTestRunner {
}
String expectedOperationName(String method) {
- return method != null ? "HTTP $method" : HttpClientDecorator.DEFAULT_SPAN_NAME
+ return method != null ? "HTTP $method" : HttpClientTracer.DEFAULT_SPAN_NAME
}
int extraClientSpans() {

Delete HttpClientDecorator (#967)