diff --git a/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/tracer/HttpClientTracer.java b/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/tracer/HttpClientTracer.java index 9256135908b1..ac18029122b5 100644 --- a/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/tracer/HttpClientTracer.java +++ b/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/tracer/HttpClientTracer.java @@ -183,7 +183,21 @@ private void setUrl(AttributeSetter setter, REQUEST request) { URI url = url(request); if (url != null) { netPeerAttributes.setNetPeer(setter, url.getHost(), null, url.getPort()); - setter.setAttribute(SemanticAttributes.HTTP_URL, url.toString()); + final URI sanitized; + if (url.getUserInfo() != null) { + sanitized = + new URI( + url.getScheme(), + null, + url.getHost(), + url.getPort(), + url.getPath(), + url.getQuery(), + url.getFragment()); + } else { + sanitized = url; + } + setter.setAttribute(SemanticAttributes.HTTP_URL, sanitized.toString()); } } catch (Exception e) { log.debug("Error tagging url", e); diff --git a/instrumentation-api/src/test/groovy/io/opentelemetry/instrumentation/api/tracer/HttpClientTracerTest.groovy b/instrumentation-api/src/test/groovy/io/opentelemetry/instrumentation/api/tracer/HttpClientTracerTest.groovy index fe3916eed43c..852db73e0b0a 100644 --- a/instrumentation-api/src/test/groovy/io/opentelemetry/instrumentation/api/tracer/HttpClientTracerTest.groovy +++ b/instrumentation-api/src/test/groovy/io/opentelemetry/instrumentation/api/tracer/HttpClientTracerTest.groovy @@ -101,6 +101,7 @@ class HttpClientTracerTest extends BaseTracerTest { false | "https://host:0" | "https://host:0" | "" | null | "host" | null false | "https://host/path" | "https://host/path" | "" | null | "host" | null false | "http://host:99/path?query#fragment" | "http://host:99/path?query#fragment" | "" | null | "host" | 99 + false | "https://usr:pswd@host/path" | "https://host/path" | "" | null | "host" | null req = [url: url == null ? null : new URI(url)] }