From 7791be24e0464935d74d009bd20671d3fc239da4 Mon Sep 17 00:00:00 2001 From: Mateusz Rzeszutek Date: Tue, 5 Oct 2021 19:25:45 +0200 Subject: [PATCH] Remove implementations of host() and userAgent() in HTTP extractors (#4299) * Remove implementations of host() and userAgent() in HTTP extractors * fix broken headers copying --- .../benchmark/InstrumenterBenchmark.java | 8 +++---- .../http/HttpCommonAttributesExtractor.java | 3 +-- .../http/HttpServerAttributesExtractor.java | 3 +-- ...acheHttpClientHttpAttributesExtractor.java | 7 ------ ...acheHttpClientHttpAttributesExtractor.java | 7 ------ .../ArmeriaHttpClientAttributesExtractor.java | 7 ------ .../ArmeriaHttpServerAttributesExtractor.java | 13 ----------- ...ogleHttpClientHttpAttributesExtractor.java | 5 ----- .../HttpUrlHttpAttributesExtractor.java | 5 ----- .../JdkHttpAttributesExtractor.java | 5 ----- .../JaxRsClientHttpAttributesExtractor.java | 9 +------- .../JaxRsClientHttpAttributesExtractor.java | 5 ----- ...ResteasyClientHttpAttributesExtractor.java | 8 +------ .../JettyClientHttpAttributesExtractor.java | 7 ------ .../KubernetesHttpAttributesExtractor.java | 5 ----- .../internal/channel/HttpDispatcherLink.java | 4 ---- ...ertyDispatcherHttpAttributesExtractor.java | 10 --------- .../liberty/dispatcher/LibertyRequest.java | 7 +----- .../v2_2/OkHttp2HttpAttributesExtractor.java | 6 ----- .../v3_0/OkHttpAttributesExtractor.java | 6 ----- .../PlayWsClientHttpAttributesExtractor.java | 6 ----- .../RatpackHttpAttributesExtractor.java | 22 ------------------- .../v1_0/RestletHttpAttributesExtractor.java | 14 +----------- .../ServletHttpAttributesExtractor.java | 11 ---------- .../web/SpringWebHttpAttributesExtractor.java | 6 ----- .../SpringWebMvcHttpAttributesExtractor.java | 10 --------- .../common/TomcatHttpAttributesExtractor.java | 10 --------- .../UndertowHttpAttributesExtractor.java | 10 --------- .../test/base/HttpServerTest.groovy | 2 +- 29 files changed, 10 insertions(+), 211 deletions(-) diff --git a/benchmark/src/jmh/java/io/opentelemetry/benchmark/InstrumenterBenchmark.java b/benchmark/src/jmh/java/io/opentelemetry/benchmark/InstrumenterBenchmark.java index 44ee49a226..0e924d92bd 100644 --- a/benchmark/src/jmh/java/io/opentelemetry/benchmark/InstrumenterBenchmark.java +++ b/benchmark/src/jmh/java/io/opentelemetry/benchmark/InstrumenterBenchmark.java @@ -75,13 +75,11 @@ public class InstrumenterBenchmark { return "https://opentelemetry.io/benchmark"; } - @Override - protected @Nullable String userAgent(Void unused) { - return "OpenTelemetryBot"; - } - @Override protected List requestHeader(Void unused, String name) { + if (name.equalsIgnoreCase("user-agent")) { + return Collections.singletonList("OpenTelemetryBot"); + } return Collections.emptyList(); } diff --git a/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/http/HttpCommonAttributesExtractor.java b/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/http/HttpCommonAttributesExtractor.java index 64dbc9f102..589b0e7744 100644 --- a/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/http/HttpCommonAttributesExtractor.java +++ b/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/http/HttpCommonAttributesExtractor.java @@ -87,9 +87,8 @@ public abstract class HttpCommonAttributesExtractor @Nullable protected abstract String method(REQUEST request); - // TODO: remove implementations? @Nullable - protected String userAgent(REQUEST request) { + private String userAgent(REQUEST request) { List values = requestHeader(request, "user-agent"); return values.isEmpty() ? null : values.get(0); } diff --git a/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/http/HttpServerAttributesExtractor.java b/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/http/HttpServerAttributesExtractor.java index 9fde41edef..104d01baac 100644 --- a/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/http/HttpServerAttributesExtractor.java +++ b/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/http/HttpServerAttributesExtractor.java @@ -64,9 +64,8 @@ public abstract class HttpServerAttributesExtractor @Nullable protected abstract String target(REQUEST request); - // TODO: remove implementations? @Nullable - protected String host(REQUEST request) { + private String host(REQUEST request) { List values = requestHeader(request, "host"); return values.isEmpty() ? null : values.get(0); } diff --git a/instrumentation/apache-httpclient/apache-httpclient-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachehttpclient/v2_0/ApacheHttpClientHttpAttributesExtractor.java b/instrumentation/apache-httpclient/apache-httpclient-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachehttpclient/v2_0/ApacheHttpClientHttpAttributesExtractor.java index 4cda8ad453..5974773d78 100644 --- a/instrumentation/apache-httpclient/apache-httpclient-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachehttpclient/v2_0/ApacheHttpClientHttpAttributesExtractor.java +++ b/instrumentation/apache-httpclient/apache-httpclient-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachehttpclient/v2_0/ApacheHttpClientHttpAttributesExtractor.java @@ -36,13 +36,6 @@ final class ApacheHttpClientHttpAttributesExtractor return getUrl(request); } - @Override - @Nullable - protected String userAgent(HttpMethod request) { - Header header = request.getRequestHeader("User-Agent"); - return header != null ? header.getValue() : null; - } - @Override protected List requestHeader(HttpMethod request, String name) { Header header = request.getRequestHeader(name); diff --git a/instrumentation/apache-httpclient/apache-httpclient-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachehttpclient/v5_0/ApacheHttpClientHttpAttributesExtractor.java b/instrumentation/apache-httpclient/apache-httpclient-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachehttpclient/v5_0/ApacheHttpClientHttpAttributesExtractor.java index d92866717a..76691012c8 100644 --- a/instrumentation/apache-httpclient/apache-httpclient-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachehttpclient/v5_0/ApacheHttpClientHttpAttributesExtractor.java +++ b/instrumentation/apache-httpclient/apache-httpclient-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachehttpclient/v5_0/ApacheHttpClientHttpAttributesExtractor.java @@ -68,13 +68,6 @@ final class ApacheHttpClientHttpAttributesExtractor return url.toString(); } - @Override - @Nullable - protected String userAgent(ClassicHttpRequest request) { - Header header = request.getFirstHeader("User-Agent"); - return header != null ? header.getValue() : null; - } - @Override protected List requestHeader(ClassicHttpRequest request, String name) { return headersToList(request.getHeaders(name)); diff --git a/instrumentation/armeria-1.3/library/src/main/java/io/opentelemetry/instrumentation/armeria/v1_3/ArmeriaHttpClientAttributesExtractor.java b/instrumentation/armeria-1.3/library/src/main/java/io/opentelemetry/instrumentation/armeria/v1_3/ArmeriaHttpClientAttributesExtractor.java index 71ff43188f..bf2cc0f6ce 100644 --- a/instrumentation/armeria-1.3/library/src/main/java/io/opentelemetry/instrumentation/armeria/v1_3/ArmeriaHttpClientAttributesExtractor.java +++ b/instrumentation/armeria-1.3/library/src/main/java/io/opentelemetry/instrumentation/armeria/v1_3/ArmeriaHttpClientAttributesExtractor.java @@ -5,7 +5,6 @@ package io.opentelemetry.instrumentation.armeria.v1_3; -import com.linecorp.armeria.common.HttpHeaderNames; import com.linecorp.armeria.common.HttpRequest; import com.linecorp.armeria.common.HttpStatus; import com.linecorp.armeria.common.RequestContext; @@ -35,12 +34,6 @@ final class ArmeriaHttpClientAttributesExtractor return request(ctx).uri().toString(); } - @Override - @Nullable - protected String userAgent(RequestContext ctx) { - return request(ctx).headers().get(HttpHeaderNames.USER_AGENT); - } - @Override protected List requestHeader(RequestContext ctx, String name) { return request(ctx).headers().getAll(name); diff --git a/instrumentation/armeria-1.3/library/src/main/java/io/opentelemetry/instrumentation/armeria/v1_3/ArmeriaHttpServerAttributesExtractor.java b/instrumentation/armeria-1.3/library/src/main/java/io/opentelemetry/instrumentation/armeria/v1_3/ArmeriaHttpServerAttributesExtractor.java index 19efb73ea9..8810b3d416 100644 --- a/instrumentation/armeria-1.3/library/src/main/java/io/opentelemetry/instrumentation/armeria/v1_3/ArmeriaHttpServerAttributesExtractor.java +++ b/instrumentation/armeria-1.3/library/src/main/java/io/opentelemetry/instrumentation/armeria/v1_3/ArmeriaHttpServerAttributesExtractor.java @@ -5,7 +5,6 @@ package io.opentelemetry.instrumentation.armeria.v1_3; -import com.linecorp.armeria.common.HttpHeaderNames; import com.linecorp.armeria.common.HttpRequest; import com.linecorp.armeria.common.HttpStatus; import com.linecorp.armeria.common.RequestContext; @@ -36,24 +35,12 @@ final class ArmeriaHttpServerAttributesExtractor return request(ctx).path(); } - @Override - @Nullable - protected String host(RequestContext ctx) { - return request(ctx).authority(); - } - @Override @Nullable protected String scheme(RequestContext ctx) { return request(ctx).scheme(); } - @Override - @Nullable - protected String userAgent(RequestContext ctx) { - return request(ctx).headers().get(HttpHeaderNames.USER_AGENT); - } - @Override protected List requestHeader(RequestContext ctx, String name) { return request(ctx).headers().getAll(name); diff --git a/instrumentation/google-http-client-1.19/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/googlehttpclient/GoogleHttpClientHttpAttributesExtractor.java b/instrumentation/google-http-client-1.19/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/googlehttpclient/GoogleHttpClientHttpAttributesExtractor.java index cc0a139d23..dc91cecae4 100644 --- a/instrumentation/google-http-client-1.19/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/googlehttpclient/GoogleHttpClientHttpAttributesExtractor.java +++ b/instrumentation/google-http-client-1.19/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/googlehttpclient/GoogleHttpClientHttpAttributesExtractor.java @@ -30,11 +30,6 @@ final class GoogleHttpClientHttpAttributesExtractor return httpRequest.getUrl().build(); } - @Override - protected @Nullable String userAgent(HttpRequest httpRequest) { - return httpRequest.getHeaders().getUserAgent(); - } - @Override protected List requestHeader(HttpRequest httpRequest, String name) { return httpRequest.getHeaders().getHeaderStringValues(name); diff --git a/instrumentation/http-url-connection/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/httpurlconnection/HttpUrlHttpAttributesExtractor.java b/instrumentation/http-url-connection/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/httpurlconnection/HttpUrlHttpAttributesExtractor.java index b82f6a2fe2..372c6df787 100644 --- a/instrumentation/http-url-connection/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/httpurlconnection/HttpUrlHttpAttributesExtractor.java +++ b/instrumentation/http-url-connection/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/httpurlconnection/HttpUrlHttpAttributesExtractor.java @@ -32,11 +32,6 @@ class HttpUrlHttpAttributesExtractor return connection.getURL().toExternalForm(); } - @Override - protected @Nullable String userAgent(HttpURLConnection connection) { - return connection.getRequestProperty("User-Agent"); - } - @Override protected List requestHeader(HttpURLConnection connection, String name) { String value = connection.getRequestProperty(name); diff --git a/instrumentation/java-http-client/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/httpclient/JdkHttpAttributesExtractor.java b/instrumentation/java-http-client/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/httpclient/JdkHttpAttributesExtractor.java index 3576098234..c54a7fb584 100644 --- a/instrumentation/java-http-client/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/httpclient/JdkHttpAttributesExtractor.java +++ b/instrumentation/java-http-client/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/httpclient/JdkHttpAttributesExtractor.java @@ -31,11 +31,6 @@ class JdkHttpAttributesExtractor return httpRequest.uri().toString(); } - @Override - protected @Nullable String userAgent(HttpRequest httpRequest) { - return httpRequest.headers().firstValue("User-Agent").orElse(null); - } - @Override protected List requestHeader(HttpRequest httpRequest, String name) { return httpRequest.headers().allValues(name); diff --git a/instrumentation/jaxrs-client/jaxrs-client-1.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jaxrsclient/v1_1/JaxRsClientHttpAttributesExtractor.java b/instrumentation/jaxrs-client/jaxrs-client-1.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jaxrsclient/v1_1/JaxRsClientHttpAttributesExtractor.java index f6042c553a..68c96c08e7 100644 --- a/instrumentation/jaxrs-client/jaxrs-client-1.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jaxrsclient/v1_1/JaxRsClientHttpAttributesExtractor.java +++ b/instrumentation/jaxrs-client/jaxrs-client-1.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jaxrsclient/v1_1/JaxRsClientHttpAttributesExtractor.java @@ -33,12 +33,6 @@ final class JaxRsClientHttpAttributesExtractor return httpRequest.getURI().toString(); } - @Override - protected @Nullable String userAgent(ClientRequest httpRequest) { - Object header = httpRequest.getHeaders().getFirst("User-Agent"); - return header != null ? header.toString() : null; - } - @Override protected List requestHeader(ClientRequest httpRequest, String name) { List rawHeaders = httpRequest.getHeaders().getOrDefault(name, emptyList()); @@ -46,9 +40,8 @@ final class JaxRsClientHttpAttributesExtractor return emptyList(); } List stringHeaders = new ArrayList<>(rawHeaders.size()); - int i = 0; for (Object headerValue : rawHeaders) { - stringHeaders.set(i++, String.valueOf(headerValue)); + stringHeaders.add(String.valueOf(headerValue)); } return stringHeaders; } diff --git a/instrumentation/jaxrs-client/jaxrs-client-2.0/jaxrs-client-2.0-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jaxrsclient/v2_0/JaxRsClientHttpAttributesExtractor.java b/instrumentation/jaxrs-client/jaxrs-client-2.0/jaxrs-client-2.0-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jaxrsclient/v2_0/JaxRsClientHttpAttributesExtractor.java index 7c6ac1e19b..a9c4a2b394 100644 --- a/instrumentation/jaxrs-client/jaxrs-client-2.0/jaxrs-client-2.0-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jaxrsclient/v2_0/JaxRsClientHttpAttributesExtractor.java +++ b/instrumentation/jaxrs-client/jaxrs-client-2.0/jaxrs-client-2.0-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jaxrsclient/v2_0/JaxRsClientHttpAttributesExtractor.java @@ -32,11 +32,6 @@ final class JaxRsClientHttpAttributesExtractor return httpRequest.getUri().toString(); } - @Override - protected @Nullable String userAgent(ClientRequestContext httpRequest) { - return httpRequest.getHeaderString("User-Agent"); - } - @Override protected List requestHeader(ClientRequestContext httpRequest, String name) { return httpRequest.getStringHeaders().getOrDefault(name, emptyList()); diff --git a/instrumentation/jaxrs-client/jaxrs-client-2.0/jaxrs-client-2.0-resteasy-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jaxrsclient/v2_0/ResteasyClientHttpAttributesExtractor.java b/instrumentation/jaxrs-client/jaxrs-client-2.0/jaxrs-client-2.0-resteasy-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jaxrsclient/v2_0/ResteasyClientHttpAttributesExtractor.java index 50d65ee5ee..5c81d3bd77 100644 --- a/instrumentation/jaxrs-client/jaxrs-client-2.0/jaxrs-client-2.0-resteasy-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jaxrsclient/v2_0/ResteasyClientHttpAttributesExtractor.java +++ b/instrumentation/jaxrs-client/jaxrs-client-2.0/jaxrs-client-2.0-resteasy-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jaxrsclient/v2_0/ResteasyClientHttpAttributesExtractor.java @@ -33,11 +33,6 @@ final class ResteasyClientHttpAttributesExtractor return httpRequest.getUri().toString(); } - @Override - protected @Nullable String userAgent(ClientInvocation httpRequest) { - return httpRequest.getHeaders().getHeader("User-Agent"); - } - @Override protected List requestHeader(ClientInvocation httpRequest, String name) { List rawHeaders = httpRequest.getHeaders().getHeaders().getOrDefault(name, emptyList()); @@ -45,9 +40,8 @@ final class ResteasyClientHttpAttributesExtractor return emptyList(); } List stringHeaders = new ArrayList<>(rawHeaders.size()); - int i = 0; for (Object headerValue : rawHeaders) { - stringHeaders.set(i++, String.valueOf(headerValue)); + stringHeaders.add(String.valueOf(headerValue)); } return stringHeaders; } diff --git a/instrumentation/jetty-httpclient/jetty-httpclient-9.2/library/src/main/java/io/opentelemetry/instrumentation/jetty/httpclient/v9_2/internal/JettyClientHttpAttributesExtractor.java b/instrumentation/jetty-httpclient/jetty-httpclient-9.2/library/src/main/java/io/opentelemetry/instrumentation/jetty/httpclient/v9_2/internal/JettyClientHttpAttributesExtractor.java index 8a373b3ebf..ba4c0789b2 100644 --- a/instrumentation/jetty-httpclient/jetty-httpclient-9.2/library/src/main/java/io/opentelemetry/instrumentation/jetty/httpclient/v9_2/internal/JettyClientHttpAttributesExtractor.java +++ b/instrumentation/jetty-httpclient/jetty-httpclient-9.2/library/src/main/java/io/opentelemetry/instrumentation/jetty/httpclient/v9_2/internal/JettyClientHttpAttributesExtractor.java @@ -43,13 +43,6 @@ final class JettyClientHttpAttributesExtractor return request.getURI().toString(); } - @Override - @Nullable - protected String userAgent(Request request) { - HttpField agentField = request.getHeaders().getField(HttpHeader.USER_AGENT); - return agentField != null ? agentField.getValue() : null; - } - @Override protected List requestHeader(Request request, String name) { return request.getHeaders().getValuesList(name); diff --git a/instrumentation/kubernetes-client-7.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/kubernetesclient/KubernetesHttpAttributesExtractor.java b/instrumentation/kubernetes-client-7.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/kubernetesclient/KubernetesHttpAttributesExtractor.java index 28939f8d38..596e4cf51c 100644 --- a/instrumentation/kubernetes-client-7.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/kubernetesclient/KubernetesHttpAttributesExtractor.java +++ b/instrumentation/kubernetes-client-7.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/kubernetesclient/KubernetesHttpAttributesExtractor.java @@ -32,11 +32,6 @@ class KubernetesHttpAttributesExtractor return request.url().toString(); } - @Override - protected @Nullable String userAgent(Request request) { - return request.header("user-agent"); - } - @Override protected List requestHeader(Request request, String name) { return request.headers(name); diff --git a/instrumentation/liberty/compile-stub/src/main/java/com/ibm/ws/http/dispatcher/internal/channel/HttpDispatcherLink.java b/instrumentation/liberty/compile-stub/src/main/java/com/ibm/ws/http/dispatcher/internal/channel/HttpDispatcherLink.java index 4728d77e7b..bb1578ceff 100644 --- a/instrumentation/liberty/compile-stub/src/main/java/com/ibm/ws/http/dispatcher/internal/channel/HttpDispatcherLink.java +++ b/instrumentation/liberty/compile-stub/src/main/java/com/ibm/ws/http/dispatcher/internal/channel/HttpDispatcherLink.java @@ -22,10 +22,6 @@ public class HttpDispatcherLink { throw new UnsupportedOperationException(); } - public String getRequestedHost() { - throw new UnsupportedOperationException(); - } - public int getRequestedPort() { throw new UnsupportedOperationException(); } diff --git a/instrumentation/liberty/liberty-dispatcher/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/liberty/dispatcher/LibertyDispatcherHttpAttributesExtractor.java b/instrumentation/liberty/liberty-dispatcher/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/liberty/dispatcher/LibertyDispatcherHttpAttributesExtractor.java index d03f28501a..c58077c28b 100644 --- a/instrumentation/liberty/liberty-dispatcher/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/liberty/dispatcher/LibertyDispatcherHttpAttributesExtractor.java +++ b/instrumentation/liberty/liberty-dispatcher/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/liberty/dispatcher/LibertyDispatcherHttpAttributesExtractor.java @@ -22,11 +22,6 @@ public class LibertyDispatcherHttpAttributesExtractor return libertyRequest.getMethod(); } - @Override - protected @Nullable String userAgent(LibertyRequest libertyRequest) { - return libertyRequest.getHeaderValue("User-Agent"); - } - @Override protected List requestHeader(LibertyRequest libertyRequest, String name) { return libertyRequest.getHeaderValues(name); @@ -90,11 +85,6 @@ public class LibertyDispatcherHttpAttributesExtractor return requestUri; } - @Override - protected String host(LibertyRequest libertyRequest) { - return libertyRequest.getServerName() + ":" + libertyRequest.getServerPort(); - } - @Override protected @Nullable String scheme(LibertyRequest libertyRequest) { return libertyRequest.getScheme(); diff --git a/instrumentation/liberty/liberty-dispatcher/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/liberty/dispatcher/LibertyRequest.java b/instrumentation/liberty/liberty-dispatcher/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/liberty/dispatcher/LibertyRequest.java index 4a58524ebb..08200c1d49 100644 --- a/instrumentation/liberty/liberty-dispatcher/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/liberty/dispatcher/LibertyRequest.java +++ b/instrumentation/liberty/liberty-dispatcher/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/liberty/dispatcher/LibertyRequest.java @@ -39,10 +39,6 @@ public class LibertyRequest { return httpRequestMessage.getQueryString(); } - public String getServerName() { - return httpDispatcherLink.getRequestedHost(); - } - public int getServerPort() { return httpDispatcherLink.getRequestedPort(); } @@ -62,9 +58,8 @@ public class LibertyRequest { return Collections.emptyList(); } List stringHeaders = new ArrayList<>(headers.size()); - int i = 0; for (HeaderField header : headers) { - stringHeaders.set(i++, header.asString()); + stringHeaders.add(header.asString()); } return stringHeaders; } diff --git a/instrumentation/okhttp/okhttp-2.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/okhttp/v2_2/OkHttp2HttpAttributesExtractor.java b/instrumentation/okhttp/okhttp-2.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/okhttp/v2_2/OkHttp2HttpAttributesExtractor.java index 8ffb45b25a..4f482b3224 100644 --- a/instrumentation/okhttp/okhttp-2.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/okhttp/v2_2/OkHttp2HttpAttributesExtractor.java +++ b/instrumentation/okhttp/okhttp-2.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/okhttp/v2_2/OkHttp2HttpAttributesExtractor.java @@ -30,12 +30,6 @@ final class OkHttp2HttpAttributesExtractor return request.urlString(); } - @Override - @Nullable - protected String userAgent(Request request) { - return request.header("User-Agent"); - } - @Override protected List requestHeader(Request request, String name) { return request.headers(name); diff --git a/instrumentation/okhttp/okhttp-3.0/library/src/main/java/io/opentelemetry/instrumentation/okhttp/v3_0/OkHttpAttributesExtractor.java b/instrumentation/okhttp/okhttp-3.0/library/src/main/java/io/opentelemetry/instrumentation/okhttp/v3_0/OkHttpAttributesExtractor.java index b53fd6c78a..fa4f35ecfd 100644 --- a/instrumentation/okhttp/okhttp-3.0/library/src/main/java/io/opentelemetry/instrumentation/okhttp/v3_0/OkHttpAttributesExtractor.java +++ b/instrumentation/okhttp/okhttp-3.0/library/src/main/java/io/opentelemetry/instrumentation/okhttp/v3_0/OkHttpAttributesExtractor.java @@ -30,12 +30,6 @@ final class OkHttpAttributesExtractor extends HttpClientAttributesExtractor requestHeader(Request request, String name) { return request.headers(name); diff --git a/instrumentation/play-ws/play-ws-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/playws/PlayWsClientHttpAttributesExtractor.java b/instrumentation/play-ws/play-ws-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/playws/PlayWsClientHttpAttributesExtractor.java index c8a8b07ff4..a04e3eb78a 100644 --- a/instrumentation/play-ws/play-ws-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/playws/PlayWsClientHttpAttributesExtractor.java +++ b/instrumentation/play-ws/play-ws-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/playws/PlayWsClientHttpAttributesExtractor.java @@ -30,12 +30,6 @@ final class PlayWsClientHttpAttributesExtractor return request.getUri().toUrl(); } - @Override - @Nullable - protected String userAgent(Request request) { - return null; - } - @Override protected List requestHeader(Request request, String name) { return request.getHeaders().getAll(name); diff --git a/instrumentation/ratpack-1.4/library/src/main/java/io/opentelemetry/instrumentation/ratpack/RatpackHttpAttributesExtractor.java b/instrumentation/ratpack-1.4/library/src/main/java/io/opentelemetry/instrumentation/ratpack/RatpackHttpAttributesExtractor.java index a8d306cc26..f0f15b9153 100644 --- a/instrumentation/ratpack-1.4/library/src/main/java/io/opentelemetry/instrumentation/ratpack/RatpackHttpAttributesExtractor.java +++ b/instrumentation/ratpack-1.4/library/src/main/java/io/opentelemetry/instrumentation/ratpack/RatpackHttpAttributesExtractor.java @@ -8,7 +8,6 @@ package io.opentelemetry.instrumentation.ratpack; import io.opentelemetry.instrumentation.api.instrumenter.http.CapturedHttpHeaders; import io.opentelemetry.instrumentation.api.instrumenter.http.HttpServerAttributesExtractor; import io.opentelemetry.semconv.trace.attributes.SemanticAttributes; -import java.net.URI; import java.util.List; import org.checkerframework.checker.nullness.qual.Nullable; import ratpack.handling.Context; @@ -35,21 +34,6 @@ final class RatpackHttpAttributesExtractor return request.getUri(); } - @Override - @Nullable - protected String host(Request request) { - Context ratpackContext = request.get(Context.class); - if (ratpackContext == null) { - return null; - } - PublicAddress publicAddress = ratpackContext.get(PublicAddress.class); - if (publicAddress == null) { - return null; - } - URI uri = publicAddress.get(); - return uri.getHost() + ":" + uri.getPort(); - } - @Override @Nullable protected String route(Request request) { @@ -71,12 +55,6 @@ final class RatpackHttpAttributesExtractor return publicAddress.get().getScheme(); } - @Override - @Nullable - protected String userAgent(Request request) { - return request.getHeaders().get("user-agent"); - } - @Override protected List requestHeader(Request request, String name) { return request.getHeaders().getAll(name); diff --git a/instrumentation/restlet/restlet-1.0/library/src/main/java/io/opentelemetry/instrumentation/restlet/v1_0/RestletHttpAttributesExtractor.java b/instrumentation/restlet/restlet-1.0/library/src/main/java/io/opentelemetry/instrumentation/restlet/v1_0/RestletHttpAttributesExtractor.java index 304107bd1c..55b9b7ad75 100644 --- a/instrumentation/restlet/restlet-1.0/library/src/main/java/io/opentelemetry/instrumentation/restlet/v1_0/RestletHttpAttributesExtractor.java +++ b/instrumentation/restlet/restlet-1.0/library/src/main/java/io/opentelemetry/instrumentation/restlet/v1_0/RestletHttpAttributesExtractor.java @@ -40,12 +40,6 @@ final class RestletHttpAttributesExtractor return ref.hasQuery() ? path + "?" + ref.getQuery() : path; } - @Override - protected String host(Request request) { - Reference originalRef = request.getOriginalRef(); - return originalRef.getHostDomain() + ":" + originalRef.getHostPort(); - } - @Override protected @Nullable String route(Request request) { return null; @@ -56,11 +50,6 @@ final class RestletHttpAttributesExtractor return request.getOriginalRef().getScheme(); } - @Override - protected @Nullable String userAgent(Request request) { - return request.getClientInfo().getAgent(); - } - @Override protected List requestHeader(Request request, String name) { return parametersToList(getHeaders(request).subList(name, /* ignoreCase = */ true)); @@ -124,9 +113,8 @@ final class RestletHttpAttributesExtractor return Collections.emptyList(); } List stringHeaders = new ArrayList<>(headers.size()); - int i = 0; for (Parameter header : headers) { - stringHeaders.set(i++, header.getValue()); + stringHeaders.add(header.getValue()); } return stringHeaders; } diff --git a/instrumentation/servlet/servlet-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/ServletHttpAttributesExtractor.java b/instrumentation/servlet/servlet-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/ServletHttpAttributesExtractor.java index c43498b303..e764844d0d 100644 --- a/instrumentation/servlet/servlet-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/ServletHttpAttributesExtractor.java +++ b/instrumentation/servlet/servlet-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/ServletHttpAttributesExtractor.java @@ -37,22 +37,11 @@ public class ServletHttpAttributesExtractor return target; } - @Override - protected @Nullable String host(ServletRequestContext requestContext) { - REQUEST request = requestContext.request(); - return accessor.getRequestServerName(request) + ":" + accessor.getRequestServerPort(request); - } - @Override protected @Nullable String scheme(ServletRequestContext requestContext) { return accessor.getRequestScheme(requestContext.request()); } - @Override - protected @Nullable String userAgent(ServletRequestContext requestContext) { - return accessor.getRequestHeader(requestContext.request(), "User-Agent"); - } - @Override protected List requestHeader(ServletRequestContext requestContext, String name) { return accessor.getRequestHeaderValues(requestContext.request(), name); diff --git a/instrumentation/spring/spring-web-3.1/library/src/main/java/io/opentelemetry/instrumentation/spring/web/SpringWebHttpAttributesExtractor.java b/instrumentation/spring/spring-web-3.1/library/src/main/java/io/opentelemetry/instrumentation/spring/web/SpringWebHttpAttributesExtractor.java index d6b5f2474b..fa00732f5d 100644 --- a/instrumentation/spring/spring-web-3.1/library/src/main/java/io/opentelemetry/instrumentation/spring/web/SpringWebHttpAttributesExtractor.java +++ b/instrumentation/spring/spring-web-3.1/library/src/main/java/io/opentelemetry/instrumentation/spring/web/SpringWebHttpAttributesExtractor.java @@ -34,12 +34,6 @@ final class SpringWebHttpAttributesExtractor return httpRequest.getURI().toString(); } - @Override - protected @Nullable String userAgent(HttpRequest httpRequest) { - // using lowercase header name intentionally to ensure extraction is not case-sensitive - return httpRequest.getHeaders().getFirst("user-agent"); - } - @Override protected List requestHeader(HttpRequest httpRequest, String name) { return httpRequest.getHeaders().getOrDefault(name, emptyList()); diff --git a/instrumentation/spring/spring-webmvc-3.1/library/src/main/java/io/opentelemetry/instrumentation/spring/webmvc/SpringWebMvcHttpAttributesExtractor.java b/instrumentation/spring/spring-webmvc-3.1/library/src/main/java/io/opentelemetry/instrumentation/spring/webmvc/SpringWebMvcHttpAttributesExtractor.java index 44cd00fee0..d2b104ccb2 100644 --- a/instrumentation/spring/spring-webmvc-3.1/library/src/main/java/io/opentelemetry/instrumentation/spring/webmvc/SpringWebMvcHttpAttributesExtractor.java +++ b/instrumentation/spring/spring-webmvc-3.1/library/src/main/java/io/opentelemetry/instrumentation/spring/webmvc/SpringWebMvcHttpAttributesExtractor.java @@ -29,11 +29,6 @@ final class SpringWebMvcHttpAttributesExtractor return request.getMethod(); } - @Override - protected @Nullable String userAgent(HttpServletRequest request) { - return request.getHeader("user-agent"); - } - @Override protected List requestHeader(HttpServletRequest request, String name) { Enumeration headers = request.getHeaders(name); @@ -98,11 +93,6 @@ final class SpringWebMvcHttpAttributesExtractor return target; } - @Override - protected @Nullable String host(HttpServletRequest request) { - return request.getHeader("host"); - } - @Override protected @Nullable String route(HttpServletRequest request) { return null; diff --git a/instrumentation/tomcat/tomcat-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/tomcat/common/TomcatHttpAttributesExtractor.java b/instrumentation/tomcat/tomcat-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/tomcat/common/TomcatHttpAttributesExtractor.java index 5b8896e450..12db8edcf4 100644 --- a/instrumentation/tomcat/tomcat-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/tomcat/common/TomcatHttpAttributesExtractor.java +++ b/instrumentation/tomcat/tomcat-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/tomcat/common/TomcatHttpAttributesExtractor.java @@ -36,22 +36,12 @@ public class TomcatHttpAttributesExtractor return target; } - @Override - protected @Nullable String host(Request request) { - return request.serverName().toString() + ":" + request.getServerPort(); - } - @Override protected @Nullable String scheme(Request request) { MessageBytes schemeMessageBytes = request.scheme(); return schemeMessageBytes.isNull() ? "http" : schemeMessageBytes.toString(); } - @Override - protected @Nullable String userAgent(Request request) { - return request.getHeader("User-Agent"); - } - @Override protected List requestHeader(Request request, String name) { return Collections.list(request.getMimeHeaders().values(name)); diff --git a/instrumentation/undertow-1.4/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/undertow/UndertowHttpAttributesExtractor.java b/instrumentation/undertow-1.4/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/undertow/UndertowHttpAttributesExtractor.java index 902139027d..0913e7b327 100644 --- a/instrumentation/undertow-1.4/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/undertow/UndertowHttpAttributesExtractor.java +++ b/instrumentation/undertow-1.4/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/undertow/UndertowHttpAttributesExtractor.java @@ -25,11 +25,6 @@ public class UndertowHttpAttributesExtractor return exchange.getRequestMethod().toString(); } - @Override - protected @Nullable String userAgent(HttpServerExchange exchange) { - return exchange.getRequestHeaders().getFirst("User-Agent"); - } - @Override protected List requestHeader(HttpServerExchange exchange, String name) { HeaderValues values = exchange.getRequestHeaders().get(name); @@ -94,11 +89,6 @@ public class UndertowHttpAttributesExtractor return requestPath; } - @Override - protected @Nullable String host(HttpServerExchange exchange) { - return exchange.getHostAndPort(); - } - @Override protected @Nullable String scheme(HttpServerExchange exchange) { return exchange.getRequestScheme(); diff --git a/testing-common/src/main/groovy/io/opentelemetry/instrumentation/test/base/HttpServerTest.groovy b/testing-common/src/main/groovy/io/opentelemetry/instrumentation/test/base/HttpServerTest.groovy index 9adf280343..f3d12247e1 100644 --- a/testing-common/src/main/groovy/io/opentelemetry/instrumentation/test/base/HttpServerTest.groovy +++ b/testing-common/src/main/groovy/io/opentelemetry/instrumentation/test/base/HttpServerTest.groovy @@ -578,8 +578,8 @@ abstract class HttpServerTest extends InstrumentationSpecification imple // netty instrumentation uses this "${SemanticAttributes.HTTP_URL.key}" { it == "${endpoint.resolve(address)}" || it == "${endpoint.resolveWithoutFragment(address)}" } } else { - "${SemanticAttributes.HTTP_HOST}" "localhost:${port}" "${SemanticAttributes.HTTP_SCHEME}" "http" + "${SemanticAttributes.HTTP_HOST}" { it == "localhost" || it == "localhost:${port}" } "${SemanticAttributes.HTTP_TARGET}" endpoint.resolvePath(address).getPath() + "${endpoint == QUERY_PARAM ? "?${endpoint.body}" : ""}" }