From 77035fc88c081acce78acb263025d785357ae144 Mon Sep 17 00:00:00 2001 From: Mateusz Rzeszutek Date: Tue, 11 Oct 2022 01:00:19 +0200 Subject: [PATCH] Extract `net.peer.{name,port}` on start for CLIENT spans (#6828) The [HTTP spec](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/trace/semantic_conventions/http.md#http-client) says these two attributes must be provided at span creation time - I think it makes sense to extend it over to all `net`-related instrumentations, cause these are supposed to be the logical peer name/port, which are supposed to be known before the connection is started/exchange is made. --- .../net/NetClientAttributesExtractor.java | 21 +++++---- .../net/NetClientAttributesGetter.java | 32 ++++++++++++-- .../net/PeerServiceAttributesExtractor.java | 2 +- ...tAddressNetClientAttributesGetterTest.java | 4 +- .../net/NetClientAttributesExtractorTest.java | 43 +++++++++---------- .../PeerServiceAttributesExtractorTest.java | 4 +- .../client/AkkaHttpNetAttributesGetter.java | 4 +- .../DubboNetClientAttributesGetter.java | 4 +- ...cheHttpAsyncClientNetAttributesGetter.java | 4 +- .../ApacheHttpClientNetAttributesGetter.java | 4 +- .../ApacheHttpClientNetAttributesGetter.java | 4 +- .../ApacheHttpClientNetAttributesGetter.java | 4 +- .../ApacheHttpClientNetAttributesGetter.java | 4 +- .../ArmeriaNetClientAttributesGetter.java | 4 +- .../AsyncHttpClientNetAttributesGetter.java | 4 +- .../AsyncHttpClientNetAttributesGetter.java | 4 +- .../v1_11/AwsSdkNetAttributesGetter.java | 4 +- .../v2_2/AwsSdkNetAttributesGetter.java | 4 +- .../v3_0/CassandraNetAttributesGetter.java | 4 +- .../v4_0/CassandraNetAttributesGetter.java | 4 +- .../v2_0/CouchbaseNetAttributesGetter.java | 4 +- .../test/groovy/ElasticsearchRest5Test.groovy | 4 -- .../test/groovy/ElasticsearchRest6Test.groovy | 4 -- .../test/groovy/ElasticsearchRest7Test.groovy | 4 -- ...searchRestNetResponseAttributesGetter.java | 28 +++++------- ...icsearch6TransportNetAttributesGetter.java | 4 +- ...cTransportNetResponseAttributesGetter.java | 4 +- .../GoogleHttpClientNetAttributesGetter.java | 4 +- .../GrpcNetClientAttributesGetter.java | 4 +- .../HttpUrlNetAttributesGetter.java | 4 +- .../JdkHttpNetAttributesGetter.java | 4 +- .../v1_1/JaxRsClientNetAttributesGetter.java | 4 +- .../internal/JdbcNetAttributesGetter.java | 4 +- .../jedis/v1_4/JedisNetAttributesGetter.java | 4 +- .../jedis/v3_0/JedisNetAttributesGetter.java | 4 +- .../jedis/v4_0/JedisNetAttributesGetter.java | 4 +- .../JettyHttpClientNetAttributesGetter.java | 4 +- .../KubernetesNetAttributesGetter.java | 4 +- .../LettuceConnectNetAttributesGetter.java | 4 +- .../LettuceConnectNetAttributesGetter.java | 4 +- .../v5_1/LettuceNetAttributesGetter.java | 4 +- .../mongo/v3_1/MongoNetAttributesGetter.java | 4 +- .../NettyConnectNetAttributesGetter.java | 4 +- .../NettyNetClientAttributesGetter.java | 6 +-- .../NettyConnectNetAttributesGetter.java | 4 +- .../NettyNetClientAttributesGetter.java | 6 +-- .../client/NettySslNetAttributesGetter.java | 4 +- .../v2_2/OkHttp2NetAttributesGetter.java | 4 +- .../internal/OkHttpNetAttributesGetter.java | 4 +- .../PlayWsClientNetAttributesGetter.java | 4 +- .../RabbitChannelNetAttributesGetter.java | 4 +- .../RabbitReceiveNetAttributesGetter.java | 4 +- .../RatpackHttpNetAttributesGetter.java | 4 +- ...ReactorNettyNetClientAttributesGetter.java | 4 +- .../redisson/RedissonNetAttributesGetter.java | 4 +- .../web/SpringWebNetAttributesGetter.java | 4 +- .../SpringWebfluxNetAttributesGetter.java | 4 +- .../client/Vertx4NetAttributesGetter.java | 4 +- 58 files changed, 174 insertions(+), 168 deletions(-) diff --git a/instrumentation-api-semconv/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/net/NetClientAttributesExtractor.java b/instrumentation-api-semconv/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/net/NetClientAttributesExtractor.java index 9d4f6a0dc7..f5f2e4fc28 100644 --- a/instrumentation-api-semconv/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/net/NetClientAttributesExtractor.java +++ b/instrumentation-api-semconv/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/net/NetClientAttributesExtractor.java @@ -37,7 +37,16 @@ public final class NetClientAttributesExtractor } @Override - public void onStart(AttributesBuilder attributes, Context parentContext, REQUEST request) {} + public void onStart(AttributesBuilder attributes, Context parentContext, REQUEST request) { + String peerName = getter.peerName(request); + Integer peerPort = getter.peerPort(request); + if (peerName != null) { + internalSet(attributes, SemanticAttributes.NET_PEER_NAME, peerName); + if (peerPort != null && peerPort > 0) { + internalSet(attributes, SemanticAttributes.NET_PEER_PORT, (long) peerPort); + } + } + } @Override public void onEnd( @@ -49,14 +58,8 @@ public final class NetClientAttributesExtractor internalSet(attributes, SemanticAttributes.NET_TRANSPORT, getter.transport(request, response)); - String peerName = getter.peerName(request, response); - Integer peerPort = getter.peerPort(request, response); - if (peerName != null) { - internalSet(attributes, SemanticAttributes.NET_PEER_NAME, peerName); - if (peerPort != null && peerPort > 0) { - internalSet(attributes, SemanticAttributes.NET_PEER_PORT, (long) peerPort); - } - } + String peerName = getter.peerName(request); + Integer peerPort = getter.peerPort(request); String sockPeerAddr = getter.sockPeerAddr(request, response); if (sockPeerAddr != null && !sockPeerAddr.equals(peerName)) { diff --git a/instrumentation-api-semconv/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/net/NetClientAttributesGetter.java b/instrumentation-api-semconv/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/net/NetClientAttributesGetter.java index b2af0ebb27..873d756695 100644 --- a/instrumentation-api-semconv/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/net/NetClientAttributesGetter.java +++ b/instrumentation-api-semconv/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/net/NetClientAttributesGetter.java @@ -20,13 +20,39 @@ public interface NetClientAttributesGetter { @Nullable String transport(REQUEST request, @Nullable RESPONSE response); - // TODO: peerName and peerPort should be extracted onStart + /** + * Logical remote hostname. + * + * @deprecated This method is deprecated and will be removed in the next release. + */ + @Deprecated + @Nullable + default String peerName(REQUEST request, @Nullable RESPONSE response) { + throw new UnsupportedOperationException( + "This method is deprecated and will be removed in the next release"); + } @Nullable - String peerName(REQUEST request, @Nullable RESPONSE response); + default String peerName(REQUEST request) { + return peerName(request, null); + } + + /** + * Logical remote port number. + * + * @deprecated This method is deprecated and will be removed in the next release. + */ + @Deprecated + @Nullable + default Integer peerPort(REQUEST request, @Nullable RESPONSE response) { + throw new UnsupportedOperationException( + "This method is deprecated and will be removed in the next release"); + } @Nullable - Integer peerPort(REQUEST request, @Nullable RESPONSE response); + default Integer peerPort(REQUEST request) { + return peerPort(request, null); + } @Nullable default String sockFamily(REQUEST request, @Nullable RESPONSE response) { diff --git a/instrumentation-api-semconv/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/net/PeerServiceAttributesExtractor.java b/instrumentation-api-semconv/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/net/PeerServiceAttributesExtractor.java index edcd27f264..8b7cd2d7fc 100644 --- a/instrumentation-api-semconv/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/net/PeerServiceAttributesExtractor.java +++ b/instrumentation-api-semconv/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/net/PeerServiceAttributesExtractor.java @@ -57,7 +57,7 @@ public final class PeerServiceAttributesExtractor return; } - String peerName = attributesGetter.peerName(request, response); + String peerName = attributesGetter.peerName(request); String peerService = mapToPeerService(peerName); if (peerService != null) { attributes.put(SemanticAttributes.PEER_SERVICE, peerService); diff --git a/instrumentation-api-semconv/src/test/java/io/opentelemetry/instrumentation/api/instrumenter/net/InetSocketAddressNetClientAttributesGetterTest.java b/instrumentation-api-semconv/src/test/java/io/opentelemetry/instrumentation/api/instrumenter/net/InetSocketAddressNetClientAttributesGetterTest.java index abd6b7b424..013285e779 100644 --- a/instrumentation-api-semconv/src/test/java/io/opentelemetry/instrumentation/api/instrumenter/net/InetSocketAddressNetClientAttributesGetterTest.java +++ b/instrumentation-api-semconv/src/test/java/io/opentelemetry/instrumentation/api/instrumenter/net/InetSocketAddressNetClientAttributesGetterTest.java @@ -30,13 +30,13 @@ class InetSocketAddressNetClientAttributesGetterTest { } @Override - public String peerName(InetSocketAddress request, InetSocketAddress response) { + public String peerName(InetSocketAddress request) { // net.peer.name and net.peer.port are tested in NetClientAttributesExtractorTest return null; } @Override - public Integer peerPort(InetSocketAddress request, InetSocketAddress response) { + public Integer peerPort(InetSocketAddress request) { // net.peer.name and net.peer.port are tested in NetClientAttributesExtractorTest return null; } diff --git a/instrumentation-api-semconv/src/test/java/io/opentelemetry/instrumentation/api/instrumenter/net/NetClientAttributesExtractorTest.java b/instrumentation-api-semconv/src/test/java/io/opentelemetry/instrumentation/api/instrumenter/net/NetClientAttributesExtractorTest.java index 178ad068a3..80db57bc1d 100644 --- a/instrumentation-api-semconv/src/test/java/io/opentelemetry/instrumentation/api/instrumenter/net/NetClientAttributesExtractorTest.java +++ b/instrumentation-api-semconv/src/test/java/io/opentelemetry/instrumentation/api/instrumenter/net/NetClientAttributesExtractorTest.java @@ -31,13 +31,13 @@ class NetClientAttributesExtractorTest { } @Override - public String peerName(Map request, Map response) { - return response.get("peerName"); + public String peerName(Map request) { + return request.get("peerName"); } @Override - public Integer peerPort(Map request, Map response) { - String peerPort = response.get("peerPort"); + public Integer peerPort(Map request) { + String peerPort = request.get("peerPort"); return peerPort == null ? null : Integer.valueOf(peerPort); } @@ -88,13 +88,14 @@ class NetClientAttributesExtractorTest { extractor.onEnd(endAttributes, context, map, map, null); // then - assertThat(startAttributes.build()).isEmpty(); + assertThat(startAttributes.build()) + .containsOnly( + entry(SemanticAttributes.NET_PEER_NAME, "opentelemetry.io"), + entry(SemanticAttributes.NET_PEER_PORT, 42L)); assertThat(endAttributes.build()) .containsOnly( entry(SemanticAttributes.NET_TRANSPORT, IP_TCP), - entry(SemanticAttributes.NET_PEER_NAME, "opentelemetry.io"), - entry(SemanticAttributes.NET_PEER_PORT, 42L), entry(NetAttributes.NET_SOCK_FAMILY, "inet6"), entry(NetAttributes.NET_SOCK_PEER_ADDR, "1:2:3:4::"), entry(NetAttributes.NET_SOCK_PEER_NAME, "proxy.opentelemetry.io"), @@ -141,13 +142,12 @@ class NetClientAttributesExtractorTest { extractor.onEnd(endAttributes, context, map, map, null); // then - assertThat(startAttributes.build()).isEmpty(); - - assertThat(endAttributes.build()) + assertThat(startAttributes.build()) .containsOnly( - entry(SemanticAttributes.NET_TRANSPORT, IP_TCP), entry(SemanticAttributes.NET_PEER_NAME, "1:2:3:4::"), entry(SemanticAttributes.NET_PEER_PORT, 42L)); + + assertThat(endAttributes.build()).containsOnly(entry(SemanticAttributes.NET_TRANSPORT, IP_TCP)); } @Test @@ -174,13 +174,14 @@ class NetClientAttributesExtractorTest { extractor.onEnd(endAttributes, context, map, map, null); // then - assertThat(startAttributes.build()).isEmpty(); + assertThat(startAttributes.build()) + .containsOnly( + entry(SemanticAttributes.NET_PEER_NAME, "opentelemetry.io"), + entry(SemanticAttributes.NET_PEER_PORT, 42L)); assertThat(endAttributes.build()) .containsOnly( entry(SemanticAttributes.NET_TRANSPORT, IP_TCP), - entry(SemanticAttributes.NET_PEER_NAME, "opentelemetry.io"), - entry(SemanticAttributes.NET_PEER_PORT, 42L), entry(NetAttributes.NET_SOCK_FAMILY, "inet6"), entry(NetAttributes.NET_SOCK_PEER_ADDR, "1:2:3:4::")); } @@ -204,12 +205,11 @@ class NetClientAttributesExtractorTest { extractor.onEnd(endAttributes, context, map, map, null); // then - assertThat(startAttributes.build()).isEmpty(); + assertThat(startAttributes.build()) + .containsOnly(entry(SemanticAttributes.NET_PEER_NAME, "opentelemetry.io")); assertThat(endAttributes.build()) - .containsOnly( - entry(SemanticAttributes.NET_PEER_NAME, "opentelemetry.io"), - entry(NetAttributes.NET_SOCK_PEER_ADDR, "1:2:3:4::")); + .containsOnly(entry(NetAttributes.NET_SOCK_PEER_ADDR, "1:2:3:4::")); } @Test @@ -230,11 +230,10 @@ class NetClientAttributesExtractorTest { extractor.onEnd(endAttributes, context, map, map, null); // then - assertThat(startAttributes.build()).isEmpty(); + assertThat(startAttributes.build()) + .containsOnly(entry(SemanticAttributes.NET_PEER_NAME, "opentelemetry.io")); assertThat(endAttributes.build()) - .containsOnly( - entry(SemanticAttributes.NET_PEER_NAME, "opentelemetry.io"), - entry(NetAttributes.NET_SOCK_PEER_ADDR, "1.2.3.4")); + .containsOnly(entry(NetAttributes.NET_SOCK_PEER_ADDR, "1.2.3.4")); } } diff --git a/instrumentation-api-semconv/src/test/java/io/opentelemetry/instrumentation/api/instrumenter/net/PeerServiceAttributesExtractorTest.java b/instrumentation-api-semconv/src/test/java/io/opentelemetry/instrumentation/api/instrumenter/net/PeerServiceAttributesExtractorTest.java index 72e8a41ab6..773d1b67ca 100644 --- a/instrumentation-api-semconv/src/test/java/io/opentelemetry/instrumentation/api/instrumenter/net/PeerServiceAttributesExtractorTest.java +++ b/instrumentation-api-semconv/src/test/java/io/opentelemetry/instrumentation/api/instrumenter/net/PeerServiceAttributesExtractorTest.java @@ -54,7 +54,7 @@ class PeerServiceAttributesExtractorTest { PeerServiceAttributesExtractor underTest = new PeerServiceAttributesExtractor<>(netAttributesExtractor, peerServiceMapping); - when(netAttributesExtractor.peerName(any(), any())).thenReturn("example2.com"); + when(netAttributesExtractor.peerName(any())).thenReturn("example2.com"); Context context = Context.root(); @@ -79,7 +79,7 @@ class PeerServiceAttributesExtractorTest { PeerServiceAttributesExtractor underTest = new PeerServiceAttributesExtractor<>(netAttributesExtractor, peerServiceMapping); - when(netAttributesExtractor.peerName(any(), any())).thenReturn("example.com"); + when(netAttributesExtractor.peerName(any())).thenReturn("example.com"); Context context = Context.root(); diff --git a/instrumentation/akka/akka-http-10.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/akkahttp/client/AkkaHttpNetAttributesGetter.java b/instrumentation/akka/akka-http-10.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/akkahttp/client/AkkaHttpNetAttributesGetter.java index f786b281ea..25b143a8b7 100644 --- a/instrumentation/akka/akka-http-10.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/akkahttp/client/AkkaHttpNetAttributesGetter.java +++ b/instrumentation/akka/akka-http-10.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/akkahttp/client/AkkaHttpNetAttributesGetter.java @@ -19,12 +19,12 @@ class AkkaHttpNetAttributesGetter implements NetClientAttributesGetter, @Override @Nullable - public String peerName(Request request, @Nullable Response response) { + public String peerName(Request request) { return request.getEndpoint().getHost(); } @Override - public Integer peerPort(Request request, @Nullable Response response) { + public Integer peerPort(Request request) { return request.getEndpoint().getPort(); } } diff --git a/instrumentation/aws-sdk/aws-sdk-2.2/library/src/main/java/io/opentelemetry/instrumentation/awssdk/v2_2/AwsSdkNetAttributesGetter.java b/instrumentation/aws-sdk/aws-sdk-2.2/library/src/main/java/io/opentelemetry/instrumentation/awssdk/v2_2/AwsSdkNetAttributesGetter.java index 5d597d01d5..b48e19d40f 100644 --- a/instrumentation/aws-sdk/aws-sdk-2.2/library/src/main/java/io/opentelemetry/instrumentation/awssdk/v2_2/AwsSdkNetAttributesGetter.java +++ b/instrumentation/aws-sdk/aws-sdk-2.2/library/src/main/java/io/opentelemetry/instrumentation/awssdk/v2_2/AwsSdkNetAttributesGetter.java @@ -22,14 +22,14 @@ class AwsSdkNetAttributesGetter @Override @Nullable - public String peerName(ExecutionAttributes request, @Nullable SdkHttpResponse response) { + public String peerName(ExecutionAttributes request) { SdkHttpRequest httpRequest = request.getAttribute(TracingExecutionInterceptor.SDK_HTTP_REQUEST_ATTRIBUTE); return httpRequest.host(); } @Override - public Integer peerPort(ExecutionAttributes request, @Nullable SdkHttpResponse response) { + public Integer peerPort(ExecutionAttributes request) { SdkHttpRequest httpRequest = request.getAttribute(TracingExecutionInterceptor.SDK_HTTP_REQUEST_ATTRIBUTE); return httpRequest.port(); diff --git a/instrumentation/cassandra/cassandra-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/cassandra/v3_0/CassandraNetAttributesGetter.java b/instrumentation/cassandra/cassandra-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/cassandra/v3_0/CassandraNetAttributesGetter.java index bce740dc9e..dfc357bd81 100644 --- a/instrumentation/cassandra/cassandra-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/cassandra/v3_0/CassandraNetAttributesGetter.java +++ b/instrumentation/cassandra/cassandra-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/cassandra/v3_0/CassandraNetAttributesGetter.java @@ -21,13 +21,13 @@ final class CassandraNetAttributesGetter @Nullable @Override - public String peerName(CassandraRequest request, @Nullable ExecutionInfo executionInfo) { + public String peerName(CassandraRequest request) { return null; } @Nullable @Override - public Integer peerPort(CassandraRequest request, @Nullable ExecutionInfo executionInfo) { + public Integer peerPort(CassandraRequest request) { return null; } diff --git a/instrumentation/cassandra/cassandra-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/cassandra/v4_0/CassandraNetAttributesGetter.java b/instrumentation/cassandra/cassandra-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/cassandra/v4_0/CassandraNetAttributesGetter.java index c4bb411ea0..373c2da738 100644 --- a/instrumentation/cassandra/cassandra-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/cassandra/v4_0/CassandraNetAttributesGetter.java +++ b/instrumentation/cassandra/cassandra-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/cassandra/v4_0/CassandraNetAttributesGetter.java @@ -23,13 +23,13 @@ final class CassandraNetAttributesGetter @Nullable @Override - public String peerName(CassandraRequest request, @Nullable ExecutionInfo executionInfo) { + public String peerName(CassandraRequest request) { return null; } @Nullable @Override - public Integer peerPort(CassandraRequest request, @Nullable ExecutionInfo executionInfo) { + public Integer peerPort(CassandraRequest request) { return null; } diff --git a/instrumentation/couchbase/couchbase-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/couchbase/v2_0/CouchbaseNetAttributesGetter.java b/instrumentation/couchbase/couchbase-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/couchbase/v2_0/CouchbaseNetAttributesGetter.java index 756ffb2c54..f50729e593 100644 --- a/instrumentation/couchbase/couchbase-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/couchbase/v2_0/CouchbaseNetAttributesGetter.java +++ b/instrumentation/couchbase/couchbase-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/couchbase/v2_0/CouchbaseNetAttributesGetter.java @@ -23,13 +23,13 @@ public class CouchbaseNetAttributesGetter @Nullable @Override - public String peerName(CouchbaseRequestInfo couchbaseRequest, @Nullable Void unused) { + public String peerName(CouchbaseRequestInfo couchbaseRequest) { return null; } @Nullable @Override - public Integer peerPort(CouchbaseRequestInfo couchbaseRequest, @Nullable Void unused) { + public Integer peerPort(CouchbaseRequestInfo couchbaseRequest) { return null; } diff --git a/instrumentation/elasticsearch/elasticsearch-rest-5.0/javaagent/src/test/groovy/ElasticsearchRest5Test.groovy b/instrumentation/elasticsearch/elasticsearch-rest-5.0/javaagent/src/test/groovy/ElasticsearchRest5Test.groovy index 9d7bcf1fc6..b983000504 100644 --- a/instrumentation/elasticsearch/elasticsearch-rest-5.0/javaagent/src/test/groovy/ElasticsearchRest5Test.groovy +++ b/instrumentation/elasticsearch/elasticsearch-rest-5.0/javaagent/src/test/groovy/ElasticsearchRest5Test.groovy @@ -80,8 +80,6 @@ class ElasticsearchRest5Test extends AgentInstrumentationSpecification { "$SemanticAttributes.DB_OPERATION" "GET" "$SemanticAttributes.DB_STATEMENT" "GET _cluster/health" "$SemanticAttributes.NET_TRANSPORT" SemanticAttributes.NetTransportValues.IP_TCP - "$SemanticAttributes.NET_PEER_NAME" httpHost.hostName - "$SemanticAttributes.NET_PEER_PORT" httpHost.port } } span(1) { @@ -155,8 +153,6 @@ class ElasticsearchRest5Test extends AgentInstrumentationSpecification { "$SemanticAttributes.DB_OPERATION" "GET" "$SemanticAttributes.DB_STATEMENT" "GET _cluster/health" "$SemanticAttributes.NET_TRANSPORT" SemanticAttributes.NetTransportValues.IP_TCP - "$SemanticAttributes.NET_PEER_NAME" httpHost.hostName - "$SemanticAttributes.NET_PEER_PORT" httpHost.port } } span(2) { diff --git a/instrumentation/elasticsearch/elasticsearch-rest-6.4/javaagent/src/test/groovy/ElasticsearchRest6Test.groovy b/instrumentation/elasticsearch/elasticsearch-rest-6.4/javaagent/src/test/groovy/ElasticsearchRest6Test.groovy index fe8a5663f3..522d8ba421 100644 --- a/instrumentation/elasticsearch/elasticsearch-rest-6.4/javaagent/src/test/groovy/ElasticsearchRest6Test.groovy +++ b/instrumentation/elasticsearch/elasticsearch-rest-6.4/javaagent/src/test/groovy/ElasticsearchRest6Test.groovy @@ -74,8 +74,6 @@ class ElasticsearchRest6Test extends AgentInstrumentationSpecification { "$SemanticAttributes.DB_OPERATION" "GET" "$SemanticAttributes.DB_STATEMENT" "GET _cluster/health" "$SemanticAttributes.NET_TRANSPORT" SemanticAttributes.NetTransportValues.IP_TCP - "$SemanticAttributes.NET_PEER_NAME" httpHost.hostName - "$SemanticAttributes.NET_PEER_PORT" httpHost.port } } span(1) { @@ -148,8 +146,6 @@ class ElasticsearchRest6Test extends AgentInstrumentationSpecification { "$SemanticAttributes.DB_OPERATION" "GET" "$SemanticAttributes.DB_STATEMENT" "GET _cluster/health" "$SemanticAttributes.NET_TRANSPORT" SemanticAttributes.NetTransportValues.IP_TCP - "$SemanticAttributes.NET_PEER_NAME" httpHost.hostName - "$SemanticAttributes.NET_PEER_PORT" httpHost.port } } span(2) { diff --git a/instrumentation/elasticsearch/elasticsearch-rest-7.0/javaagent/src/test/groovy/ElasticsearchRest7Test.groovy b/instrumentation/elasticsearch/elasticsearch-rest-7.0/javaagent/src/test/groovy/ElasticsearchRest7Test.groovy index 404c45a390..ac32b39275 100644 --- a/instrumentation/elasticsearch/elasticsearch-rest-7.0/javaagent/src/test/groovy/ElasticsearchRest7Test.groovy +++ b/instrumentation/elasticsearch/elasticsearch-rest-7.0/javaagent/src/test/groovy/ElasticsearchRest7Test.groovy @@ -73,8 +73,6 @@ class ElasticsearchRest7Test extends AgentInstrumentationSpecification { "$SemanticAttributes.DB_OPERATION" "GET" "$SemanticAttributes.DB_STATEMENT" "GET _cluster/health" "$SemanticAttributes.NET_TRANSPORT" SemanticAttributes.NetTransportValues.IP_TCP - "$SemanticAttributes.NET_PEER_NAME" httpHost.hostName - "$SemanticAttributes.NET_PEER_PORT" httpHost.port } } span(1) { @@ -147,8 +145,6 @@ class ElasticsearchRest7Test extends AgentInstrumentationSpecification { "$SemanticAttributes.DB_OPERATION" "GET" "$SemanticAttributes.DB_STATEMENT" "GET _cluster/health" "$SemanticAttributes.NET_TRANSPORT" SemanticAttributes.NetTransportValues.IP_TCP - "$SemanticAttributes.NET_PEER_NAME" httpHost.hostName - "$SemanticAttributes.NET_PEER_PORT" httpHost.port } } span(2) { diff --git a/instrumentation/elasticsearch/elasticsearch-rest-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/elasticsearch/rest/ElasticsearchRestNetResponseAttributesGetter.java b/instrumentation/elasticsearch/elasticsearch-rest-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/elasticsearch/rest/ElasticsearchRestNetResponseAttributesGetter.java index 7d3db6ec4e..675e8b201e 100644 --- a/instrumentation/elasticsearch/elasticsearch-rest-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/elasticsearch/rest/ElasticsearchRestNetResponseAttributesGetter.java +++ b/instrumentation/elasticsearch/elasticsearch-rest-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/elasticsearch/rest/ElasticsearchRestNetResponseAttributesGetter.java @@ -21,28 +21,13 @@ final class ElasticsearchRestNetResponseAttributesGetter @Override @Nullable - public String peerName(ElasticsearchRestRequest request, @Nullable Response response) { - if (response != null) { - return response.getHost().getHostName(); - } + public String peerName(ElasticsearchRestRequest request) { return null; } @Override @Nullable - public Integer peerPort(ElasticsearchRestRequest request, @Nullable Response response) { - if (response != null) { - return response.getHost().getPort(); - } - return null; - } - - @Override - @Nullable - public String sockPeerAddr(ElasticsearchRestRequest request, @Nullable Response response) { - if (response != null && response.getHost().getAddress() != null) { - return response.getHost().getAddress().getHostAddress(); - } + public Integer peerPort(ElasticsearchRestRequest request) { return null; } @@ -55,4 +40,13 @@ final class ElasticsearchRestNetResponseAttributesGetter } return null; } + + @Override + @Nullable + public String sockPeerAddr(ElasticsearchRestRequest request, @Nullable Response response) { + if (response != null && response.getHost().getAddress() != null) { + return response.getHost().getAddress().getHostAddress(); + } + return null; + } } diff --git a/instrumentation/elasticsearch/elasticsearch-transport-6.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/elasticsearch/transport/v6_0/Elasticsearch6TransportNetAttributesGetter.java b/instrumentation/elasticsearch/elasticsearch-transport-6.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/elasticsearch/transport/v6_0/Elasticsearch6TransportNetAttributesGetter.java index 00f971d61b..3cdac789a3 100644 --- a/instrumentation/elasticsearch/elasticsearch-transport-6.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/elasticsearch/transport/v6_0/Elasticsearch6TransportNetAttributesGetter.java +++ b/instrumentation/elasticsearch/elasticsearch-transport-6.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/elasticsearch/transport/v6_0/Elasticsearch6TransportNetAttributesGetter.java @@ -21,13 +21,13 @@ public class Elasticsearch6TransportNetAttributesGetter @Nullable @Override - public String peerName(ElasticTransportRequest request, @Nullable ActionResponse response) { + public String peerName(ElasticTransportRequest request) { return null; } @Nullable @Override - public Integer peerPort(ElasticTransportRequest request, @Nullable ActionResponse response) { + public Integer peerPort(ElasticTransportRequest request) { return null; } diff --git a/instrumentation/elasticsearch/elasticsearch-transport-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/elasticsearch/transport/ElasticTransportNetResponseAttributesGetter.java b/instrumentation/elasticsearch/elasticsearch-transport-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/elasticsearch/transport/ElasticTransportNetResponseAttributesGetter.java index bd4b7fe13f..0cdbeb22d0 100644 --- a/instrumentation/elasticsearch/elasticsearch-transport-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/elasticsearch/transport/ElasticTransportNetResponseAttributesGetter.java +++ b/instrumentation/elasticsearch/elasticsearch-transport-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/elasticsearch/transport/ElasticTransportNetResponseAttributesGetter.java @@ -20,13 +20,13 @@ public class ElasticTransportNetResponseAttributesGetter @Override @Nullable - public String peerName(ElasticTransportRequest request, @Nullable ActionResponse response) { + public String peerName(ElasticTransportRequest request) { return null; } @Override @Nullable - public Integer peerPort(ElasticTransportRequest request, @Nullable ActionResponse response) { + public Integer peerPort(ElasticTransportRequest request) { return null; } diff --git a/instrumentation/google-http-client-1.19/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/googlehttpclient/GoogleHttpClientNetAttributesGetter.java b/instrumentation/google-http-client-1.19/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/googlehttpclient/GoogleHttpClientNetAttributesGetter.java index 701b6db144..113685ef5f 100644 --- a/instrumentation/google-http-client-1.19/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/googlehttpclient/GoogleHttpClientNetAttributesGetter.java +++ b/instrumentation/google-http-client-1.19/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/googlehttpclient/GoogleHttpClientNetAttributesGetter.java @@ -21,12 +21,12 @@ final class GoogleHttpClientNetAttributesGetter @Override @Nullable - public String peerName(HttpRequest request, @Nullable HttpResponse response) { + public String peerName(HttpRequest request) { return request.getUrl().getHost(); } @Override - public Integer peerPort(HttpRequest request, @Nullable HttpResponse response) { + public Integer peerPort(HttpRequest request) { return request.getUrl().getPort(); } } diff --git a/instrumentation/grpc-1.6/library/src/main/java/io/opentelemetry/instrumentation/grpc/v1_6/internal/GrpcNetClientAttributesGetter.java b/instrumentation/grpc-1.6/library/src/main/java/io/opentelemetry/instrumentation/grpc/v1_6/internal/GrpcNetClientAttributesGetter.java index 0e54e7b52f..48a00c59b7 100644 --- a/instrumentation/grpc-1.6/library/src/main/java/io/opentelemetry/instrumentation/grpc/v1_6/internal/GrpcNetClientAttributesGetter.java +++ b/instrumentation/grpc-1.6/library/src/main/java/io/opentelemetry/instrumentation/grpc/v1_6/internal/GrpcNetClientAttributesGetter.java @@ -27,12 +27,12 @@ public final class GrpcNetClientAttributesGetter @Nullable @Override - public String peerName(GrpcRequest grpcRequest, @Nullable Status status) { + public String peerName(GrpcRequest grpcRequest) { return grpcRequest.getLogicalHost(); } @Override - public Integer peerPort(GrpcRequest grpcRequest, @Nullable Status status) { + public Integer peerPort(GrpcRequest grpcRequest) { return grpcRequest.getLogicalPort(); } diff --git a/instrumentation/http-url-connection/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/httpurlconnection/HttpUrlNetAttributesGetter.java b/instrumentation/http-url-connection/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/httpurlconnection/HttpUrlNetAttributesGetter.java index f03e2f5cf8..aec4624a8f 100644 --- a/instrumentation/http-url-connection/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/httpurlconnection/HttpUrlNetAttributesGetter.java +++ b/instrumentation/http-url-connection/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/httpurlconnection/HttpUrlNetAttributesGetter.java @@ -19,12 +19,12 @@ class HttpUrlNetAttributesGetter implements NetClientAttributesGetter response) { + public String peerName(HttpRequest httpRequest) { return httpRequest.uri().getHost(); } @Override @Nullable - public Integer peerPort(HttpRequest httpRequest, @Nullable HttpResponse response) { + public Integer peerPort(HttpRequest httpRequest) { int port = httpRequest.uri().getPort(); if (port != -1) { return port; diff --git a/instrumentation/jaxrs-client/jaxrs-client-1.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jaxrsclient/v1_1/JaxRsClientNetAttributesGetter.java b/instrumentation/jaxrs-client/jaxrs-client-1.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jaxrsclient/v1_1/JaxRsClientNetAttributesGetter.java index d822db3085..513260cad1 100644 --- a/instrumentation/jaxrs-client/jaxrs-client-1.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jaxrsclient/v1_1/JaxRsClientNetAttributesGetter.java +++ b/instrumentation/jaxrs-client/jaxrs-client-1.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jaxrsclient/v1_1/JaxRsClientNetAttributesGetter.java @@ -21,12 +21,12 @@ final class JaxRsClientNetAttributesGetter @Override @Nullable - public String peerName(ClientRequest request, @Nullable ClientResponse response) { + public String peerName(ClientRequest request) { return request.getURI().getHost(); } @Override - public Integer peerPort(ClientRequest request, @Nullable ClientResponse response) { + public Integer peerPort(ClientRequest request) { return request.getURI().getPort(); } } diff --git a/instrumentation/jdbc/library/src/main/java/io/opentelemetry/instrumentation/jdbc/internal/JdbcNetAttributesGetter.java b/instrumentation/jdbc/library/src/main/java/io/opentelemetry/instrumentation/jdbc/internal/JdbcNetAttributesGetter.java index 4cf0850520..f7057ad5dd 100644 --- a/instrumentation/jdbc/library/src/main/java/io/opentelemetry/instrumentation/jdbc/internal/JdbcNetAttributesGetter.java +++ b/instrumentation/jdbc/library/src/main/java/io/opentelemetry/instrumentation/jdbc/internal/JdbcNetAttributesGetter.java @@ -22,13 +22,13 @@ public final class JdbcNetAttributesGetter implements NetClientAttributesGetter< @Nullable @Override - public String peerName(DbRequest request, @Nullable Void unused) { + public String peerName(DbRequest request) { return request.getDbInfo().getHost(); } @Nullable @Override - public Integer peerPort(DbRequest request, @Nullable Void unused) { + public Integer peerPort(DbRequest request) { return request.getDbInfo().getPort(); } } diff --git a/instrumentation/jedis/jedis-1.4/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jedis/v1_4/JedisNetAttributesGetter.java b/instrumentation/jedis/jedis-1.4/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jedis/v1_4/JedisNetAttributesGetter.java index ab1973760b..6d0481a4a0 100644 --- a/instrumentation/jedis/jedis-1.4/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jedis/v1_4/JedisNetAttributesGetter.java +++ b/instrumentation/jedis/jedis-1.4/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jedis/v1_4/JedisNetAttributesGetter.java @@ -17,12 +17,12 @@ final class JedisNetAttributesGetter implements NetClientAttributesGetter response) { + public String peerName(Request request) { return request.url().host(); } @Override - public Integer peerPort(Request request, @Nullable ApiResponse response) { + public Integer peerPort(Request request) { return request.url().port(); } } diff --git a/instrumentation/lettuce/lettuce-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/lettuce/v4_0/LettuceConnectNetAttributesGetter.java b/instrumentation/lettuce/lettuce-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/lettuce/v4_0/LettuceConnectNetAttributesGetter.java index 5592d4aec6..c4b8a7280a 100644 --- a/instrumentation/lettuce/lettuce-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/lettuce/v4_0/LettuceConnectNetAttributesGetter.java +++ b/instrumentation/lettuce/lettuce-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/lettuce/v4_0/LettuceConnectNetAttributesGetter.java @@ -18,12 +18,12 @@ final class LettuceConnectNetAttributesGetter implements NetClientAttributesGett } @Override - public String peerName(RedisURI redisUri, @Nullable Void unused) { + public String peerName(RedisURI redisUri) { return redisUri.getHost(); } @Override - public Integer peerPort(RedisURI redisUri, @Nullable Void unused) { + public Integer peerPort(RedisURI redisUri) { return redisUri.getPort(); } } diff --git a/instrumentation/lettuce/lettuce-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/lettuce/v5_0/LettuceConnectNetAttributesGetter.java b/instrumentation/lettuce/lettuce-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/lettuce/v5_0/LettuceConnectNetAttributesGetter.java index 28a33c9b1d..fdfcc2e37d 100644 --- a/instrumentation/lettuce/lettuce-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/lettuce/v5_0/LettuceConnectNetAttributesGetter.java +++ b/instrumentation/lettuce/lettuce-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/lettuce/v5_0/LettuceConnectNetAttributesGetter.java @@ -18,12 +18,12 @@ final class LettuceConnectNetAttributesGetter implements NetClientAttributesGett } @Override - public String peerName(RedisURI redisUri, @Nullable Void unused) { + public String peerName(RedisURI redisUri) { return redisUri.getHost(); } @Override - public Integer peerPort(RedisURI redisUri, @Nullable Void unused) { + public Integer peerPort(RedisURI redisUri) { return redisUri.getPort(); } } diff --git a/instrumentation/lettuce/lettuce-5.1/library/src/main/java/io/opentelemetry/instrumentation/lettuce/v5_1/LettuceNetAttributesGetter.java b/instrumentation/lettuce/lettuce-5.1/library/src/main/java/io/opentelemetry/instrumentation/lettuce/v5_1/LettuceNetAttributesGetter.java index 76e6202069..af8b387e30 100644 --- a/instrumentation/lettuce/lettuce-5.1/library/src/main/java/io/opentelemetry/instrumentation/lettuce/v5_1/LettuceNetAttributesGetter.java +++ b/instrumentation/lettuce/lettuce-5.1/library/src/main/java/io/opentelemetry/instrumentation/lettuce/v5_1/LettuceNetAttributesGetter.java @@ -22,13 +22,13 @@ final class LettuceNetAttributesGetter @Nullable @Override - public String peerName(OpenTelemetryEndpoint openTelemetryEndpoint, @Nullable Void unused) { + public String peerName(OpenTelemetryEndpoint openTelemetryEndpoint) { return null; } @Nullable @Override - public Integer peerPort(OpenTelemetryEndpoint openTelemetryEndpoint, @Nullable Void unused) { + public Integer peerPort(OpenTelemetryEndpoint openTelemetryEndpoint) { return null; } diff --git a/instrumentation/mongo/mongo-3.1/library/src/main/java/io/opentelemetry/instrumentation/mongo/v3_1/MongoNetAttributesGetter.java b/instrumentation/mongo/mongo-3.1/library/src/main/java/io/opentelemetry/instrumentation/mongo/v3_1/MongoNetAttributesGetter.java index 70cd421ae7..feb83336ea 100644 --- a/instrumentation/mongo/mongo-3.1/library/src/main/java/io/opentelemetry/instrumentation/mongo/v3_1/MongoNetAttributesGetter.java +++ b/instrumentation/mongo/mongo-3.1/library/src/main/java/io/opentelemetry/instrumentation/mongo/v3_1/MongoNetAttributesGetter.java @@ -19,7 +19,7 @@ class MongoNetAttributesGetter implements NetClientAttributesGetter