Explorar o código

Implement new stable server semantic conventions (#8663)

Mateusz Rzeszutek hai 1 ano
pai
achega
cde2e70148
Modificáronse 100 ficheiros con 1111 adicións e 403 borrados
  1. 16 6
      instrumentation-api-semconv/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/http/HttpClientAttributesExtractor.java
  2. 16 5
      instrumentation-api-semconv/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/http/HttpServerAttributesExtractor.java
  3. 13 5
      instrumentation-api-semconv/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/net/NetClientAttributesExtractor.java
  4. 86 7
      instrumentation-api-semconv/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/net/NetClientAttributesGetter.java
  5. 13 4
      instrumentation-api-semconv/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/net/NetServerAttributesExtractor.java
  6. 76 8
      instrumentation-api-semconv/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/net/NetServerAttributesGetter.java
  7. 5 5
      instrumentation-api-semconv/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/net/PeerServiceAttributesExtractor.java
  8. 11 7
      instrumentation-api-semconv/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/net/internal/InetSocketAddressUtil.java
  9. 4 45
      instrumentation-api-semconv/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/net/internal/InternalNetClientAttributesExtractor.java
  10. 2 31
      instrumentation-api-semconv/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/net/internal/InternalNetServerAttributesExtractor.java
  11. 61 0
      instrumentation-api-semconv/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/network/ServerAttributesExtractor.java
  12. 98 0
      instrumentation-api-semconv/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/network/ServerAttributesGetter.java
  13. 163 0
      instrumentation-api-semconv/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/network/internal/InternalServerAttributesExtractor.java
  14. 12 0
      instrumentation-api-semconv/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/network/internal/NetworkAttributes.java
  15. 2 2
      instrumentation-api-semconv/src/test/java/io/opentelemetry/instrumentation/api/instrumenter/http/HttpClientAttributesExtractorTest.java
  16. 2 2
      instrumentation-api-semconv/src/test/java/io/opentelemetry/instrumentation/api/instrumenter/http/HttpServerAttributesExtractorTest.java
  17. 3 3
      instrumentation-api-semconv/src/test/java/io/opentelemetry/instrumentation/api/instrumenter/net/InetSocketAddressNetClientAttributesGetterTest.java
  18. 9 6
      instrumentation-api-semconv/src/test/java/io/opentelemetry/instrumentation/api/instrumenter/net/InetSocketAddressNetServerAttributesGetterTest.java
  19. 8 7
      instrumentation-api-semconv/src/test/java/io/opentelemetry/instrumentation/api/instrumenter/net/NetClientAttributesExtractorTest.java
  20. 14 14
      instrumentation-api-semconv/src/test/java/io/opentelemetry/instrumentation/api/instrumenter/net/NetServerAttributesExtractorTest.java
  21. 4 4
      instrumentation-api-semconv/src/test/java/io/opentelemetry/instrumentation/api/instrumenter/net/PeerServiceAttributesExtractorTest.java
  22. 81 0
      instrumentation-api-semconv/src/test/java/io/opentelemetry/instrumentation/api/instrumenter/network/ServerAttributesExtractorInetSocketAddressTest.java
  23. 126 0
      instrumentation-api-semconv/src/test/java/io/opentelemetry/instrumentation/api/instrumenter/network/ServerAttributesExtractorTest.java
  24. 5 3
      instrumentation-api-semconv/src/testBothHttpSemconv/java/io/opentelemetry/instrumentation/api/instrumenter/http/HttpClientAttributesExtractorBothSemconvTest.java
  25. 3 2
      instrumentation-api-semconv/src/testBothHttpSemconv/java/io/opentelemetry/instrumentation/api/instrumenter/http/HttpServerAttributesExtractorBothSemconvTest.java
  26. 15 9
      instrumentation-api-semconv/src/testBothHttpSemconv/java/io/opentelemetry/instrumentation/api/instrumenter/net/NetClientAttributesExtractorBothSemconvTest.java
  27. 11 7
      instrumentation-api-semconv/src/testBothHttpSemconv/java/io/opentelemetry/instrumentation/api/instrumenter/net/NetServerAttributesExtractorBothSemconvTest.java
  28. 4 4
      instrumentation-api-semconv/src/testStableHttpSemconv/java/io/opentelemetry/instrumentation/api/instrumenter/http/HttpClientAttributesExtractorStableSemconvTest.java
  29. 3 3
      instrumentation-api-semconv/src/testStableHttpSemconv/java/io/opentelemetry/instrumentation/api/instrumenter/http/HttpServerAttributesExtractorStableSemconvTest.java
  30. 13 13
      instrumentation-api-semconv/src/testStableHttpSemconv/java/io/opentelemetry/instrumentation/api/instrumenter/net/NetClientAttributesExtractorStableSemconvTest.java
  31. 10 10
      instrumentation-api-semconv/src/testStableHttpSemconv/java/io/opentelemetry/instrumentation/api/instrumenter/net/NetServerAttributesExtractorStableSemconvTest.java
  32. 3 3
      instrumentation-api/src/jmh/java/io/opentelemetry/instrumentation/api/instrumenter/InstrumenterBenchmark.java
  33. 2 2
      instrumentation/akka/akka-http-10.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/akkahttp/client/AkkaHttpNetAttributesGetter.java
  34. 2 2
      instrumentation/akka/akka-http-10.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/akkahttp/server/AkkaNetServerAttributesGetter.java
  35. 4 3
      instrumentation/apache-dubbo-2.7/library-autoconfigure/src/main/java/io/opentelemetry/instrumentation/apachedubbo/v2_7/internal/DubboNetClientAttributesGetter.java
  36. 4 3
      instrumentation/apache-dubbo-2.7/library-autoconfigure/src/main/java/io/opentelemetry/instrumentation/apachedubbo/v2_7/internal/DubboNetServerAttributesGetter.java
  37. 6 6
      instrumentation/apache-httpasyncclient-4.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachehttpasyncclient/ApacheHttpAsyncClientNetAttributesGetter.java
  38. 3 3
      instrumentation/apache-httpasyncclient-4.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachehttpasyncclient/ApacheHttpClientRequest.java
  39. 2 2
      instrumentation/apache-httpclient/apache-httpclient-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachehttpclient/v2_0/ApacheHttpClientNetAttributesGetter.java
  40. 4 4
      instrumentation/apache-httpclient/apache-httpclient-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachehttpclient/v4_0/ApacheHttpClientNetAttributesGetter.java
  41. 2 2
      instrumentation/apache-httpclient/apache-httpclient-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachehttpclient/v4_0/ApacheHttpClientRequest.java
  42. 6 6
      instrumentation/apache-httpclient/apache-httpclient-4.3/library/src/main/java/io/opentelemetry/instrumentation/apachehttpclient/v4_3/ApacheHttpClientNetAttributesGetter.java
  43. 3 3
      instrumentation/apache-httpclient/apache-httpclient-4.3/library/src/main/java/io/opentelemetry/instrumentation/apachehttpclient/v4_3/ApacheHttpClientRequest.java
  44. 2 2
      instrumentation/apache-httpclient/apache-httpclient-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachehttpclient/v5_0/ApacheHttpClientNetAttributesGetter.java
  45. 4 3
      instrumentation/armeria-1.3/library/src/main/java/io/opentelemetry/instrumentation/armeria/v1_3/ArmeriaNetServerAttributesGetter.java
  46. 3 3
      instrumentation/armeria-1.3/library/src/main/java/io/opentelemetry/instrumentation/armeria/v1_3/internal/ArmeriaNetClientAttributesGetter.java
  47. 2 2
      instrumentation/async-http-client/async-http-client-1.9/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/asynchttpclient/v1_9/AsyncHttpClientNetAttributesGetter.java
  48. 3 3
      instrumentation/async-http-client/async-http-client-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/asynchttpclient/v2_0/AsyncHttpClientNetAttributesGetter.java
  49. 2 2
      instrumentation/aws-sdk/aws-sdk-1.11/library/src/main/java/io/opentelemetry/instrumentation/awssdk/v1_11/AwsSdkNetAttributesGetter.java
  50. 2 2
      instrumentation/aws-sdk/aws-sdk-2.2/library/src/main/java/io/opentelemetry/instrumentation/awssdk/v2_2/AwsSdkNetAttributesGetter.java
  51. 3 3
      instrumentation/cassandra/cassandra-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/cassandra/v3_0/CassandraNetAttributesGetter.java
  52. 3 3
      instrumentation/cassandra/cassandra-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/cassandra/v4_0/CassandraNetAttributesGetter.java
  53. 3 3
      instrumentation/cassandra/cassandra-4.4/library/src/main/java/io/opentelemetry/instrumentation/cassandra/v4_4/CassandraNetAttributesGetter.java
  54. 3 3
      instrumentation/couchbase/couchbase-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/couchbase/v2_0/CouchbaseNetAttributesGetter.java
  55. 4 3
      instrumentation/elasticsearch/elasticsearch-rest-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/elasticsearch/rest/ElasticsearchRestNetResponseAttributesGetter.java
  56. 3 3
      instrumentation/elasticsearch/elasticsearch-transport-6.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/elasticsearch/transport/v6_0/Elasticsearch6TransportNetAttributesGetter.java
  57. 5 5
      instrumentation/elasticsearch/elasticsearch-transport-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/elasticsearch/transport/ElasticTransportNetResponseAttributesGetter.java
  58. 2 2
      instrumentation/google-http-client-1.19/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/googlehttpclient/GoogleHttpClientNetAttributesGetter.java
  59. 4 4
      instrumentation/grizzly-2.3/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/grizzly/GrizzlyNetAttributesGetter.java
  60. 4 3
      instrumentation/grpc-1.6/library/src/main/java/io/opentelemetry/instrumentation/grpc/v1_6/internal/GrpcNetClientAttributesGetter.java
  61. 4 3
      instrumentation/grpc-1.6/library/src/main/java/io/opentelemetry/instrumentation/grpc/v1_6/internal/GrpcNetServerAttributesGetter.java
  62. 2 2
      instrumentation/http-url-connection/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/httpurlconnection/HttpUrlNetAttributesGetter.java
  63. 2 2
      instrumentation/java-http-client/library/src/main/java/io/opentelemetry/instrumentation/httpclient/internal/JavaHttpClientNetAttributesGetter.java
  64. 2 2
      instrumentation/jaxrs-client/jaxrs-client-1.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jaxrsclient/v1_1/JaxRsClientNetAttributesGetter.java
  65. 2 2
      instrumentation/jdbc/library/src/main/java/io/opentelemetry/instrumentation/jdbc/internal/JdbcNetAttributesGetter.java
  66. 2 2
      instrumentation/jedis/jedis-1.4/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jedis/v1_4/JedisNetAttributesGetter.java
  67. 4 3
      instrumentation/jedis/jedis-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jedis/v3_0/JedisNetAttributesGetter.java
  68. 4 3
      instrumentation/jedis/jedis-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jedis/v4_0/JedisNetAttributesGetter.java
  69. 2 2
      instrumentation/jetty-httpclient/jetty-httpclient-9.2/library/src/main/java/io/opentelemetry/instrumentation/jetty/httpclient/v9_2/internal/JettyHttpClientNetAttributesGetter.java
  70. 2 2
      instrumentation/jodd-http-4.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/joddhttp/v4_2/JoddHttpNetAttributesGetter.java
  71. 2 2
      instrumentation/ktor/ktor-1.0/library/src/main/kotlin/io/opentelemetry/instrumentation/ktor/v1_0/KtorNetServerAttributesGetter.kt
  72. 2 2
      instrumentation/ktor/ktor-2.0/library/src/main/kotlin/io/opentelemetry/instrumentation/ktor/v2_0/client/KtorNetClientAttributesGetter.kt
  73. 2 2
      instrumentation/ktor/ktor-2.0/library/src/main/kotlin/io/opentelemetry/instrumentation/ktor/v2_0/server/KtorNetServerAttributesGetter.kt
  74. 2 2
      instrumentation/kubernetes-client-7.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/kubernetesclient/KubernetesNetAttributesGetter.java
  75. 2 2
      instrumentation/lettuce/lettuce-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/lettuce/v4_0/LettuceConnectNetAttributesGetter.java
  76. 2 2
      instrumentation/lettuce/lettuce-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/lettuce/v5_0/LettuceConnectNetAttributesGetter.java
  77. 3 3
      instrumentation/lettuce/lettuce-5.1/library/src/main/java/io/opentelemetry/instrumentation/lettuce/v5_1/LettuceNetAttributesGetter.java
  78. 9 0
      instrumentation/liberty/compile-stub/src/main/java/com/ibm/ws/http/channel/internal/inbound/HttpInboundServiceContextImpl.java
  79. 0 8
      instrumentation/liberty/compile-stub/src/main/java/com/ibm/ws/http/dispatcher/internal/channel/HttpDispatcherLink.java
  80. 3 1
      instrumentation/liberty/liberty-dispatcher-20.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/liberty/dispatcher/LibertyDispatcherLinkInstrumentation.java
  81. 6 6
      instrumentation/liberty/liberty-dispatcher-20.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/liberty/dispatcher/LibertyDispatcherNetAttributesGetter.java
  82. 17 1
      instrumentation/liberty/liberty-dispatcher-20.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/liberty/dispatcher/LibertyRequest.java
  83. 2 2
      instrumentation/mongo/mongo-3.1/library/src/main/java/io/opentelemetry/instrumentation/mongo/v3_1/MongoNetAttributesGetter.java
  84. 3 3
      instrumentation/netty/netty-3.8/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/netty/v3_8/client/NettyConnectNetAttributesGetter.java
  85. 3 3
      instrumentation/netty/netty-3.8/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/netty/v3_8/client/NettyNetClientAttributesGetter.java
  86. 4 3
      instrumentation/netty/netty-3.8/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/netty/v3_8/server/NettyNetServerAttributesGetter.java
  87. 3 3
      instrumentation/netty/netty-4-common/library/src/main/java/io/opentelemetry/instrumentation/netty/v4/common/internal/client/NettyConnectNetAttributesGetter.java
  88. 3 3
      instrumentation/netty/netty-4-common/library/src/main/java/io/opentelemetry/instrumentation/netty/v4/common/internal/client/NettyNetClientAttributesGetter.java
  89. 4 3
      instrumentation/netty/netty-4-common/library/src/main/java/io/opentelemetry/instrumentation/netty/v4/common/internal/client/NettySslNetAttributesGetter.java
  90. 4 3
      instrumentation/netty/netty-4-common/library/src/main/java/io/opentelemetry/instrumentation/netty/v4/common/internal/server/NettyNetServerAttributesGetter.java
  91. 2 2
      instrumentation/okhttp/okhttp-2.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/okhttp/v2_2/OkHttp2NetAttributesGetter.java
  92. 2 2
      instrumentation/okhttp/okhttp-3.0/library/src/main/java/io/opentelemetry/instrumentation/okhttp/v3_0/internal/OkHttpNetAttributesGetter.java
  93. 3 3
      instrumentation/opensearch/opensearch-rest-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opensearch/rest/OpenSearchRestNetResponseAttributesGetter.java
  94. 2 2
      instrumentation/opentelemetry-instrumentation-api/testing/src/main/java/io/opentelemetry/javaagent/instrumentation/testing/MockNetServerAttributesGetter.java
  95. 4 3
      instrumentation/play/play-ws/play-ws-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/playws/PlayWsClientNetAttributesGetter.java
  96. 2 2
      instrumentation/pulsar/pulsar-2.8/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/pulsar/v2_8/telemetry/PulsarNetClientAttributesGetter.java
  97. 2 2
      instrumentation/r2dbc-1.0/library/src/main/java/io/opentelemetry/instrumentation/r2dbc/v1_0/internal/R2dbcNetAttributesGetter.java
  98. 4 4
      instrumentation/rabbitmq-2.7/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/rabbitmq/RabbitChannelNetAttributesGetter.java
  99. 4 4
      instrumentation/rabbitmq-2.7/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/rabbitmq/RabbitReceiveNetAttributesGetter.java
  100. 2 2
      instrumentation/ratpack/ratpack-1.7/library/src/main/java/io/opentelemetry/instrumentation/ratpack/v1_7/internal/RatpackNetClientAttributesGetter.java

+ 16 - 6
instrumentation-api-semconv/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/http/HttpClientAttributesExtractor.java

@@ -13,6 +13,7 @@ import io.opentelemetry.instrumentation.api.instrumenter.AttributesExtractor;
 import io.opentelemetry.instrumentation.api.instrumenter.net.NetClientAttributesGetter;
 import io.opentelemetry.instrumentation.api.instrumenter.net.internal.InternalNetClientAttributesExtractor;
 import io.opentelemetry.instrumentation.api.instrumenter.network.internal.InternalNetworkAttributesExtractor;
+import io.opentelemetry.instrumentation.api.instrumenter.network.internal.InternalServerAttributesExtractor;
 import io.opentelemetry.instrumentation.api.instrumenter.url.internal.UrlAttributes;
 import io.opentelemetry.instrumentation.api.internal.SemconvStability;
 import io.opentelemetry.instrumentation.api.internal.SpanKey;
@@ -55,6 +56,7 @@ public final class HttpClientAttributesExtractor<REQUEST, RESPONSE>
 
   private final InternalNetClientAttributesExtractor<REQUEST, RESPONSE> internalNetExtractor;
   private final InternalNetworkAttributesExtractor<REQUEST, RESPONSE> internalNetworkExtractor;
+  private final InternalServerAttributesExtractor<REQUEST, RESPONSE> internalServerExtractor;
   private final ToIntFunction<Context> resendCountIncrementer;
 
   HttpClientAttributesExtractor(
@@ -78,18 +80,25 @@ public final class HttpClientAttributesExtractor<REQUEST, RESPONSE>
       List<String> capturedResponseHeaders,
       ToIntFunction<Context> resendCountIncrementer) {
     super(httpAttributesGetter, capturedRequestHeaders, capturedResponseHeaders);
+    HttpNetNamePortGetter<REQUEST> namePortGetter =
+        new HttpNetNamePortGetter<>(httpAttributesGetter);
     internalNetExtractor =
         new InternalNetClientAttributesExtractor<>(
-            netAttributesGetter,
-            this::shouldCapturePeerPort,
-            new HttpNetNamePortGetter<>(httpAttributesGetter),
-            SemconvStability.emitOldHttpSemconv());
+            netAttributesGetter, namePortGetter, SemconvStability.emitOldHttpSemconv());
     internalNetworkExtractor =
         new InternalNetworkAttributesExtractor<>(
             netAttributesGetter,
             HttpNetworkTransportFilter.INSTANCE,
             SemconvStability.emitStableHttpSemconv(),
             SemconvStability.emitOldHttpSemconv());
+    internalServerExtractor =
+        new InternalServerAttributesExtractor<>(
+            netAttributesGetter,
+            this::shouldCaptureServerPort,
+            namePortGetter,
+            SemconvStability.emitStableHttpSemconv(),
+            SemconvStability.emitOldHttpSemconv(),
+            InternalServerAttributesExtractor.Mode.PEER);
     this.resendCountIncrementer = resendCountIncrementer;
   }
 
@@ -97,7 +106,7 @@ public final class HttpClientAttributesExtractor<REQUEST, RESPONSE>
   public void onStart(AttributesBuilder attributes, Context parentContext, REQUEST request) {
     super.onStart(attributes, parentContext, request);
 
-    internalNetExtractor.onStart(attributes, request);
+    internalServerExtractor.onStart(attributes, request);
 
     String fullUrl = stripSensitiveData(getter.getUrlFull(request));
     if (SemconvStability.emitStableHttpSemconv()) {
@@ -108,7 +117,7 @@ public final class HttpClientAttributesExtractor<REQUEST, RESPONSE>
     }
   }
 
-  private boolean shouldCapturePeerPort(int port, REQUEST request) {
+  private boolean shouldCaptureServerPort(int port, REQUEST request) {
     String url = getter.getUrlFull(request);
     if (url == null) {
       return true;
@@ -131,6 +140,7 @@ public final class HttpClientAttributesExtractor<REQUEST, RESPONSE>
 
     internalNetExtractor.onEnd(attributes, request, response);
     internalNetworkExtractor.onEnd(attributes, request, response);
+    internalServerExtractor.onEnd(attributes, request, response);
 
     int resendCount = resendCountIncrementer.applyAsInt(context);
     if (resendCount > 0) {

+ 16 - 5
instrumentation-api-semconv/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/http/HttpServerAttributesExtractor.java

@@ -17,6 +17,7 @@ import io.opentelemetry.instrumentation.api.instrumenter.AttributesExtractor;
 import io.opentelemetry.instrumentation.api.instrumenter.net.NetServerAttributesGetter;
 import io.opentelemetry.instrumentation.api.instrumenter.net.internal.InternalNetServerAttributesExtractor;
 import io.opentelemetry.instrumentation.api.instrumenter.network.internal.InternalNetworkAttributesExtractor;
+import io.opentelemetry.instrumentation.api.instrumenter.network.internal.InternalServerAttributesExtractor;
 import io.opentelemetry.instrumentation.api.instrumenter.url.internal.InternalUrlAttributesExtractor;
 import io.opentelemetry.instrumentation.api.internal.ConfigPropertiesUtil;
 import io.opentelemetry.instrumentation.api.internal.SemconvStability;
@@ -67,6 +68,7 @@ public final class HttpServerAttributesExtractor<REQUEST, RESPONSE>
   private final InternalUrlAttributesExtractor<REQUEST> internalUrlExtractor;
   private final InternalNetServerAttributesExtractor<REQUEST, RESPONSE> internalNetExtractor;
   private final InternalNetworkAttributesExtractor<REQUEST, RESPONSE> internalNetworkExtractor;
+  private final InternalServerAttributesExtractor<REQUEST, RESPONSE> internalServerExtractor;
   private final Function<Context, String> httpRouteHolderGetter;
 
   HttpServerAttributesExtractor(
@@ -90,6 +92,8 @@ public final class HttpServerAttributesExtractor<REQUEST, RESPONSE>
       List<String> capturedResponseHeaders,
       Function<Context, String> httpRouteHolderGetter) {
     super(httpAttributesGetter, capturedRequestHeaders, capturedResponseHeaders);
+    HttpNetNamePortGetter<REQUEST> namePortGetter =
+        new HttpNetNamePortGetter<>(httpAttributesGetter);
     internalUrlExtractor =
         new InternalUrlAttributesExtractor<>(
             httpAttributesGetter,
@@ -98,16 +102,21 @@ public final class HttpServerAttributesExtractor<REQUEST, RESPONSE>
             SemconvStability.emitOldHttpSemconv());
     internalNetExtractor =
         new InternalNetServerAttributesExtractor<>(
-            netAttributesGetter,
-            this::shouldCaptureHostPort,
-            new HttpNetNamePortGetter<>(httpAttributesGetter),
-            SemconvStability.emitOldHttpSemconv());
+            netAttributesGetter, namePortGetter, SemconvStability.emitOldHttpSemconv());
     internalNetworkExtractor =
         new InternalNetworkAttributesExtractor<>(
             netAttributesGetter,
             HttpNetworkTransportFilter.INSTANCE,
             SemconvStability.emitStableHttpSemconv(),
             SemconvStability.emitOldHttpSemconv());
+    internalServerExtractor =
+        new InternalServerAttributesExtractor<>(
+            netAttributesGetter,
+            this::shouldCaptureServerPort,
+            namePortGetter,
+            SemconvStability.emitStableHttpSemconv(),
+            SemconvStability.emitOldHttpSemconv(),
+            InternalServerAttributesExtractor.Mode.HOST);
     this.httpRouteHolderGetter = httpRouteHolderGetter;
   }
 
@@ -117,12 +126,13 @@ public final class HttpServerAttributesExtractor<REQUEST, RESPONSE>
 
     internalUrlExtractor.onStart(attributes, request);
     internalNetExtractor.onStart(attributes, request);
+    internalServerExtractor.onStart(attributes, request);
 
     internalSet(attributes, SemanticAttributes.HTTP_ROUTE, getter.getHttpRoute(request));
     internalSet(attributes, SemanticAttributes.HTTP_CLIENT_IP, clientIp(request));
   }
 
-  private boolean shouldCaptureHostPort(int port, REQUEST request) {
+  private boolean shouldCaptureServerPort(int port, REQUEST request) {
     String scheme = getter.getUrlScheme(request);
     if (scheme == null) {
       return true;
@@ -145,6 +155,7 @@ public final class HttpServerAttributesExtractor<REQUEST, RESPONSE>
     super.onEnd(attributes, context, request, response, error);
 
     internalNetworkExtractor.onEnd(attributes, request, response);
+    internalServerExtractor.onEnd(attributes, request, response);
 
     internalSet(attributes, SemanticAttributes.HTTP_ROUTE, httpRouteHolderGetter.apply(context));
   }

+ 13 - 5
instrumentation-api-semconv/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/net/NetClientAttributesExtractor.java

@@ -11,6 +11,7 @@ import io.opentelemetry.instrumentation.api.instrumenter.AttributesExtractor;
 import io.opentelemetry.instrumentation.api.instrumenter.net.internal.FallbackNamePortGetter;
 import io.opentelemetry.instrumentation.api.instrumenter.net.internal.InternalNetClientAttributesExtractor;
 import io.opentelemetry.instrumentation.api.instrumenter.network.internal.InternalNetworkAttributesExtractor;
+import io.opentelemetry.instrumentation.api.instrumenter.network.internal.InternalServerAttributesExtractor;
 import io.opentelemetry.instrumentation.api.instrumenter.network.internal.NetworkTransportFilter;
 import io.opentelemetry.instrumentation.api.internal.SemconvStability;
 import javax.annotation.Nullable;
@@ -29,6 +30,7 @@ public final class NetClientAttributesExtractor<REQUEST, RESPONSE>
 
   private final InternalNetClientAttributesExtractor<REQUEST, RESPONSE> internalExtractor;
   private final InternalNetworkAttributesExtractor<REQUEST, RESPONSE> internalNetworkExtractor;
+  private final InternalServerAttributesExtractor<REQUEST, RESPONSE> internalServerExtractor;
 
   public static <REQUEST, RESPONSE> AttributesExtractor<REQUEST, RESPONSE> create(
       NetClientAttributesGetter<REQUEST, RESPONSE> getter) {
@@ -38,21 +40,26 @@ public final class NetClientAttributesExtractor<REQUEST, RESPONSE>
   private NetClientAttributesExtractor(NetClientAttributesGetter<REQUEST, RESPONSE> getter) {
     internalExtractor =
         new InternalNetClientAttributesExtractor<>(
-            getter,
-            (port, request) -> true,
-            FallbackNamePortGetter.noop(),
-            SemconvStability.emitOldHttpSemconv());
+            getter, FallbackNamePortGetter.noop(), SemconvStability.emitOldHttpSemconv());
     internalNetworkExtractor =
         new InternalNetworkAttributesExtractor<>(
             getter,
             NetworkTransportFilter.alwaysTrue(),
             SemconvStability.emitStableHttpSemconv(),
             SemconvStability.emitOldHttpSemconv());
+    internalServerExtractor =
+        new InternalServerAttributesExtractor<>(
+            getter,
+            (port, request) -> true,
+            FallbackNamePortGetter.noop(),
+            SemconvStability.emitStableHttpSemconv(),
+            SemconvStability.emitOldHttpSemconv(),
+            InternalServerAttributesExtractor.Mode.PEER);
   }
 
   @Override
   public void onStart(AttributesBuilder attributes, Context parentContext, REQUEST request) {
-    internalExtractor.onStart(attributes, request);
+    internalServerExtractor.onStart(attributes, request);
   }
 
   @Override
@@ -64,5 +71,6 @@ public final class NetClientAttributesExtractor<REQUEST, RESPONSE>
       @Nullable Throwable error) {
     internalExtractor.onEnd(attributes, request, response);
     internalNetworkExtractor.onEnd(attributes, request, response);
+    internalServerExtractor.onEnd(attributes, request, response);
   }
 }

+ 86 - 7
instrumentation-api-semconv/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/net/NetClientAttributesGetter.java

@@ -5,7 +5,9 @@
 
 package io.opentelemetry.instrumentation.api.instrumenter.net;
 
+import io.opentelemetry.instrumentation.api.instrumenter.net.internal.InetSocketAddressUtil;
 import io.opentelemetry.instrumentation.api.instrumenter.network.NetworkAttributesGetter;
+import io.opentelemetry.instrumentation.api.instrumenter.network.ServerAttributesGetter;
 import java.net.InetSocketAddress;
 import javax.annotation.Nullable;
 
@@ -18,7 +20,7 @@ import javax.annotation.Nullable;
  * network attributes in a type-generic way.
  */
 public interface NetClientAttributesGetter<REQUEST, RESPONSE>
-    extends NetworkAttributesGetter<REQUEST, RESPONSE> {
+    extends NetworkAttributesGetter<REQUEST, RESPONSE>, ServerAttributesGetter<REQUEST, RESPONSE> {
 
   @Nullable
   default String getTransport(REQUEST request, @Nullable RESPONSE response) {
@@ -74,11 +76,43 @@ public interface NetClientAttributesGetter<REQUEST, RESPONSE>
     return getProtocolVersion(request, response);
   }
 
+  /**
+   * Returns the logical peer name.
+   *
+   * @deprecated This method is deprecated and will be removed in the following release. Implement
+   *     {@link #getServerAddress(Object)} instead.
+   */
+  @Deprecated
+  @Nullable
+  default String getPeerName(REQUEST request) {
+    return null;
+  }
+
+  /**
+   * Returns the logical peer port.
+   *
+   * @deprecated This method is deprecated and will be removed in the following release. Implement
+   *     {@link #getServerPort(Object)} instead.
+   */
+  @Deprecated
   @Nullable
-  String getPeerName(REQUEST request);
+  default Integer getPeerPort(REQUEST request) {
+    return null;
+  }
+
+  /** {@inheritDoc} */
+  @Nullable
+  @Override
+  default String getServerAddress(REQUEST request) {
+    return getPeerName(request);
+  }
 
+  /** {@inheritDoc} */
   @Nullable
-  Integer getPeerPort(REQUEST request);
+  @Override
+  default Integer getServerPort(REQUEST request) {
+    return getPeerPort(request);
+  }
 
   /**
    * Returns an {@link InetSocketAddress} object representing the peer socket address.
@@ -86,12 +120,24 @@ public interface NetClientAttributesGetter<REQUEST, RESPONSE>
    * <p>Implementing this method is equivalent to implementing all four of {@link
    * #getSockFamily(Object, Object)}, {@link #getSockPeerAddr(Object, Object)}, {@link
    * #getSockPeerName(Object, Object)} and {@link #getSockPeerPort(Object, Object)}.
+   *
+   * @deprecated This method is deprecated and will be removed in the following release. Implement
+   *     {@link #getServerInetSocketAddress(Object, Object)} instead.
    */
+  @Deprecated
   @Nullable
   default InetSocketAddress getPeerSocketAddress(REQUEST request, @Nullable RESPONSE response) {
     return null;
   }
 
+  /** {@inheritDoc} */
+  @Nullable
+  @Override
+  default InetSocketAddress getServerInetSocketAddress(
+      REQUEST request, @Nullable RESPONSE response) {
+    return getPeerSocketAddress(request, response);
+  }
+
   /**
    * Returns the protocol <a
    * href="https://man7.org/linux/man-pages/man7/address_families.7.html">address family</a> which
@@ -107,7 +153,7 @@ public interface NetClientAttributesGetter<REQUEST, RESPONSE>
    */
   @Nullable
   default String getSockFamily(REQUEST request, @Nullable RESPONSE response) {
-    return InetSocketAddressUtil.getSockFamily(getPeerSocketAddress(request, response), null);
+    return InetSocketAddressUtil.getSockFamily(getServerInetSocketAddress(request, response), null);
   }
 
   /**
@@ -121,10 +167,14 @@ public interface NetClientAttributesGetter<REQUEST, RESPONSE>
    * simply return {@code null}. If the instrumented library does not expose {@link
    * InetSocketAddress} in its API, you might want to implement this method instead of {@link
    * #getPeerSocketAddress(Object, Object)}.
+   *
+   * @deprecated This method is deprecated and will be removed in the following release. Implement
+   *     {@link #getServerSocketAddress(Object, Object)} instead.
    */
+  @Deprecated
   @Nullable
   default String getSockPeerAddr(REQUEST request, @Nullable RESPONSE response) {
-    return InetSocketAddressUtil.getHostAddress(getPeerSocketAddress(request, response));
+    return InetSocketAddressUtil.getIpAddress(getServerInetSocketAddress(request, response));
   }
 
   /**
@@ -137,10 +187,14 @@ public interface NetClientAttributesGetter<REQUEST, RESPONSE>
    * simply return {@code null}. If the instrumented library does not expose {@link
    * InetSocketAddress} in its API, you might want to implement this method instead of {@link
    * #getPeerSocketAddress(Object, Object)}.
+   *
+   * @deprecated This method is deprecated and will be removed in the following release. Implement
+   *     {@link #getServerSocketDomain(Object, Object)} instead.
    */
+  @Deprecated
   @Nullable
   default String getSockPeerName(REQUEST request, @Nullable RESPONSE response) {
-    return InetSocketAddressUtil.getHostName(getPeerSocketAddress(request, response));
+    return InetSocketAddressUtil.getDomainName(getServerInetSocketAddress(request, response));
   }
 
   /**
@@ -153,9 +207,34 @@ public interface NetClientAttributesGetter<REQUEST, RESPONSE>
    * simply return {@code null}. If the instrumented library does not expose {@link
    * InetSocketAddress} in its API, you might want to implement this method instead of {@link
    * #getPeerSocketAddress(Object, Object)}.
+   *
+   * @deprecated This method is deprecated and will be removed in the following release. Implement
+   *     {@link #getServerSocketPort(Object, Object)} instead.
    */
+  @Deprecated
   @Nullable
   default Integer getSockPeerPort(REQUEST request, @Nullable RESPONSE response) {
-    return InetSocketAddressUtil.getPort(getPeerSocketAddress(request, response));
+    return InetSocketAddressUtil.getPort(getServerInetSocketAddress(request, response));
+  }
+
+  /** {@inheritDoc} */
+  @Nullable
+  @Override
+  default String getServerSocketDomain(REQUEST request, @Nullable RESPONSE response) {
+    return getSockPeerName(request, response);
+  }
+
+  /** {@inheritDoc} */
+  @Nullable
+  @Override
+  default String getServerSocketAddress(REQUEST request, @Nullable RESPONSE response) {
+    return getSockPeerAddr(request, response);
+  }
+
+  /** {@inheritDoc} */
+  @Nullable
+  @Override
+  default Integer getServerSocketPort(REQUEST request, @Nullable RESPONSE response) {
+    return getSockPeerPort(request, response);
   }
 }

+ 13 - 4
instrumentation-api-semconv/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/net/NetServerAttributesExtractor.java

@@ -11,6 +11,7 @@ import io.opentelemetry.instrumentation.api.instrumenter.AttributesExtractor;
 import io.opentelemetry.instrumentation.api.instrumenter.net.internal.FallbackNamePortGetter;
 import io.opentelemetry.instrumentation.api.instrumenter.net.internal.InternalNetServerAttributesExtractor;
 import io.opentelemetry.instrumentation.api.instrumenter.network.internal.InternalNetworkAttributesExtractor;
+import io.opentelemetry.instrumentation.api.instrumenter.network.internal.InternalServerAttributesExtractor;
 import io.opentelemetry.instrumentation.api.instrumenter.network.internal.NetworkTransportFilter;
 import io.opentelemetry.instrumentation.api.internal.SemconvStability;
 import javax.annotation.Nullable;
@@ -30,25 +31,32 @@ public final class NetServerAttributesExtractor<REQUEST, RESPONSE>
 
   private final InternalNetServerAttributesExtractor<REQUEST, RESPONSE> internalExtractor;
   private final InternalNetworkAttributesExtractor<REQUEST, RESPONSE> internalNetworkExtractor;
+  private final InternalServerAttributesExtractor<REQUEST, RESPONSE> internalServerExtractor;
 
   private NetServerAttributesExtractor(NetServerAttributesGetter<REQUEST, RESPONSE> getter) {
     internalExtractor =
         new InternalNetServerAttributesExtractor<>(
-            getter,
-            (integer, request) -> true,
-            FallbackNamePortGetter.noop(),
-            SemconvStability.emitOldHttpSemconv());
+            getter, FallbackNamePortGetter.noop(), SemconvStability.emitOldHttpSemconv());
     internalNetworkExtractor =
         new InternalNetworkAttributesExtractor<>(
             getter,
             NetworkTransportFilter.alwaysTrue(),
             SemconvStability.emitStableHttpSemconv(),
             SemconvStability.emitOldHttpSemconv());
+    internalServerExtractor =
+        new InternalServerAttributesExtractor<>(
+            getter,
+            (port, request) -> true,
+            FallbackNamePortGetter.noop(),
+            SemconvStability.emitStableHttpSemconv(),
+            SemconvStability.emitOldHttpSemconv(),
+            InternalServerAttributesExtractor.Mode.HOST);
   }
 
   @Override
   public void onStart(AttributesBuilder attributes, Context parentContext, REQUEST request) {
     internalExtractor.onStart(attributes, request);
+    internalServerExtractor.onStart(attributes, request);
   }
 
   @Override
@@ -59,5 +67,6 @@ public final class NetServerAttributesExtractor<REQUEST, RESPONSE>
       @Nullable RESPONSE response,
       @Nullable Throwable error) {
     internalNetworkExtractor.onEnd(attributes, request, response);
+    internalServerExtractor.onEnd(attributes, request, response);
   }
 }

+ 76 - 8
instrumentation-api-semconv/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/net/NetServerAttributesGetter.java

@@ -5,7 +5,9 @@
 
 package io.opentelemetry.instrumentation.api.instrumenter.net;
 
+import io.opentelemetry.instrumentation.api.instrumenter.net.internal.InetSocketAddressUtil;
 import io.opentelemetry.instrumentation.api.instrumenter.network.NetworkAttributesGetter;
+import io.opentelemetry.instrumentation.api.instrumenter.network.ServerAttributesGetter;
 import java.net.InetSocketAddress;
 import javax.annotation.Nullable;
 
@@ -18,7 +20,7 @@ import javax.annotation.Nullable;
  * the various network attributes in a type-generic way.
  */
 public interface NetServerAttributesGetter<REQUEST, RESPONSE>
-    extends NetworkAttributesGetter<REQUEST, RESPONSE> {
+    extends NetworkAttributesGetter<REQUEST, RESPONSE>, ServerAttributesGetter<REQUEST, RESPONSE> {
 
   @Nullable
   default String getTransport(REQUEST request) {
@@ -58,7 +60,7 @@ public interface NetServerAttributesGetter<REQUEST, RESPONSE>
   @Override
   default String getNetworkType(REQUEST request, @Nullable RESPONSE response) {
     return InetSocketAddressUtil.getNetworkType(
-        getPeerSocketAddress(request), getHostSocketAddress(request));
+        getPeerSocketAddress(request), getServerInetSocketAddress(request, null));
   }
 
   /** {@inheritDoc} */
@@ -75,11 +77,43 @@ public interface NetServerAttributesGetter<REQUEST, RESPONSE>
     return getProtocolVersion(request);
   }
 
+  /**
+   * Returns the logical host name.
+   *
+   * @deprecated This method is deprecated and will be removed in the following release. Implement
+   *     {@link #getServerAddress(Object)} instead.
+   */
+  @Deprecated
+  @Nullable
+  default String getHostName(REQUEST request) {
+    return null;
+  }
+
+  /**
+   * Returns the logical host port.
+   *
+   * @deprecated This method is deprecated and will be removed in the following release. Implement
+   *     {@link #getServerPort(Object)} instead.
+   */
+  @Deprecated
+  @Nullable
+  default Integer getHostPort(REQUEST request) {
+    return null;
+  }
+
+  /** {@inheritDoc} */
   @Nullable
-  String getHostName(REQUEST request);
+  @Override
+  default String getServerAddress(REQUEST request) {
+    return getHostName(request);
+  }
 
+  /** {@inheritDoc} */
   @Nullable
-  Integer getHostPort(REQUEST request);
+  @Override
+  default Integer getServerPort(REQUEST request) {
+    return getHostPort(request);
+  }
 
   /**
    * Returns the protocol <a
@@ -97,7 +131,7 @@ public interface NetServerAttributesGetter<REQUEST, RESPONSE>
   @Nullable
   default String getSockFamily(REQUEST request) {
     return InetSocketAddressUtil.getSockFamily(
-        getPeerSocketAddress(request), getHostSocketAddress(request));
+        getPeerSocketAddress(request), getServerInetSocketAddress(request, null));
   }
 
   /**
@@ -124,7 +158,7 @@ public interface NetServerAttributesGetter<REQUEST, RESPONSE>
    */
   @Nullable
   default String getSockPeerAddr(REQUEST request) {
-    return InetSocketAddressUtil.getHostAddress(getPeerSocketAddress(request));
+    return InetSocketAddressUtil.getIpAddress(getPeerSocketAddress(request));
   }
 
   /**
@@ -147,12 +181,24 @@ public interface NetServerAttributesGetter<REQUEST, RESPONSE>
    *
    * <p>Implementing this method is equivalent to implementing all three of {@link
    * #getSockFamily(Object)}, {@link #getSockHostAddr(Object)} and {@link #getSockHostPort(Object)}.
+   *
+   * @deprecated This method is deprecated and will be removed in the following release. Implement
+   *     {@link #getServerInetSocketAddress(Object, Object)} instead.
    */
+  @Deprecated
   @Nullable
   default InetSocketAddress getHostSocketAddress(REQUEST request) {
     return null;
   }
 
+  /** {@inheritDoc} */
+  @Nullable
+  @Override
+  default InetSocketAddress getServerInetSocketAddress(
+      REQUEST request, @Nullable RESPONSE response) {
+    return getHostSocketAddress(request);
+  }
+
   /**
    * Returns the local socket address. Useful in case of a multi-IP host.
    *
@@ -162,10 +208,14 @@ public interface NetServerAttributesGetter<REQUEST, RESPONSE>
    * #getHostSocketAddress(Object)} method. If this method is not implemented, it will simply return
    * {@code null}. If the instrumented library does not expose {@link InetSocketAddress} in its API,
    * you might want to implement this method instead of {@link #getHostSocketAddress(Object)}.
+   *
+   * @deprecated This method is deprecated and will be removed in the following release. Implement
+   *     {@link #getServerSocketAddress(Object, Object)} instead.
    */
+  @Deprecated
   @Nullable
   default String getSockHostAddr(REQUEST request) {
-    return InetSocketAddressUtil.getHostAddress(getHostSocketAddress(request));
+    return InetSocketAddressUtil.getIpAddress(getServerInetSocketAddress(request, null));
   }
 
   /**
@@ -177,9 +227,27 @@ public interface NetServerAttributesGetter<REQUEST, RESPONSE>
    * #getHostSocketAddress(Object)} method. If this method is not implemented, it will simply return
    * {@code null}. If the instrumented library does not expose {@link InetSocketAddress} in its API,
    * you might want to implement this method instead of {@link #getHostSocketAddress(Object)}.
+   *
+   * @deprecated This method is deprecated and will be removed in the following release. Implement
+   *     {@link #getServerSocketPort(Object, Object)} instead.
    */
+  @Deprecated
   @Nullable
   default Integer getSockHostPort(REQUEST request) {
-    return InetSocketAddressUtil.getPort(getHostSocketAddress(request));
+    return InetSocketAddressUtil.getPort(getServerInetSocketAddress(request, null));
+  }
+
+  /** {@inheritDoc} */
+  @Nullable
+  @Override
+  default String getServerSocketAddress(REQUEST request, @Nullable RESPONSE response) {
+    return getSockHostAddr(request);
+  }
+
+  /** {@inheritDoc} */
+  @Nullable
+  @Override
+  default Integer getServerSocketPort(REQUEST request, @Nullable RESPONSE response) {
+    return getSockHostPort(request);
   }
 }

+ 5 - 5
instrumentation-api-semconv/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/net/PeerServiceAttributesExtractor.java

@@ -57,11 +57,11 @@ public final class PeerServiceAttributesExtractor<REQUEST, RESPONSE>
       return;
     }
 
-    String peerName = attributesGetter.getPeerName(request);
-    String peerService = mapToPeerService(peerName);
+    String serverAddress = attributesGetter.getServerAddress(request);
+    String peerService = mapToPeerService(serverAddress);
     if (peerService == null) {
-      String sockPeerName = attributesGetter.getSockPeerName(request, response);
-      peerService = mapToPeerService(sockPeerName);
+      String serverSocketDomain = attributesGetter.getServerSocketDomain(request, response);
+      peerService = mapToPeerService(serverSocketDomain);
     }
     if (peerService != null) {
       attributes.put(SemanticAttributes.PEER_SERVICE, peerService);
@@ -69,7 +69,7 @@ public final class PeerServiceAttributesExtractor<REQUEST, RESPONSE>
   }
 
   @Nullable
-  private String mapToPeerService(String endpoint) {
+  private String mapToPeerService(@Nullable String endpoint) {
     if (endpoint == null) {
       return null;
     }

+ 11 - 7
instrumentation-api-semconv/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/net/InetSocketAddressUtil.java → instrumentation-api-semconv/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/net/internal/InetSocketAddressUtil.java

@@ -3,17 +3,21 @@
  * SPDX-License-Identifier: Apache-2.0
  */
 
-package io.opentelemetry.instrumentation.api.instrumenter.net;
+package io.opentelemetry.instrumentation.api.instrumenter.net.internal;
 
 import java.net.Inet6Address;
 import java.net.InetAddress;
 import java.net.InetSocketAddress;
 import javax.annotation.Nullable;
 
-final class InetSocketAddressUtil {
+/**
+ * This class is internal and is hence not for public use. Its APIs are unstable and can change at
+ * any time.
+ */
+public final class InetSocketAddressUtil {
 
   @Nullable
-  static String getSockFamily(
+  public static String getSockFamily(
       @Nullable InetSocketAddress address, @Nullable InetSocketAddress otherAddress) {
     if (address == null) {
       address = otherAddress;
@@ -29,7 +33,7 @@ final class InetSocketAddressUtil {
   }
 
   @Nullable
-  static String getNetworkType(
+  public static String getNetworkType(
       @Nullable InetSocketAddress address, @Nullable InetSocketAddress otherAddress) {
     if (address == null) {
       address = otherAddress;
@@ -42,7 +46,7 @@ final class InetSocketAddressUtil {
   }
 
   @Nullable
-  static String getHostName(@Nullable InetSocketAddress address) {
+  public static String getDomainName(@Nullable InetSocketAddress address) {
     if (address == null) {
       return null;
     }
@@ -50,7 +54,7 @@ final class InetSocketAddressUtil {
   }
 
   @Nullable
-  static String getHostAddress(@Nullable InetSocketAddress address) {
+  public static String getIpAddress(@Nullable InetSocketAddress address) {
     if (address == null) {
       return null;
     }
@@ -62,7 +66,7 @@ final class InetSocketAddressUtil {
   }
 
   @Nullable
-  static Integer getPort(@Nullable InetSocketAddress address) {
+  public static Integer getPort(@Nullable InetSocketAddress address) {
     if (address == null) {
       return null;
     }

+ 4 - 45
instrumentation-api-semconv/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/net/internal/InternalNetClientAttributesExtractor.java

@@ -10,7 +10,6 @@ import static io.opentelemetry.instrumentation.api.internal.AttributesExtractorU
 import io.opentelemetry.api.common.AttributesBuilder;
 import io.opentelemetry.instrumentation.api.instrumenter.net.NetClientAttributesGetter;
 import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
-import java.util.function.BiPredicate;
 import javax.annotation.Nullable;
 
 /**
@@ -20,80 +19,40 @@ import javax.annotation.Nullable;
 public final class InternalNetClientAttributesExtractor<REQUEST, RESPONSE> {
 
   private final NetClientAttributesGetter<REQUEST, RESPONSE> getter;
-  private final BiPredicate<Integer, REQUEST> capturePeerPortCondition;
   private final FallbackNamePortGetter<REQUEST> fallbackNamePortGetter;
   private final boolean emitOldHttpAttributes;
 
   public InternalNetClientAttributesExtractor(
       NetClientAttributesGetter<REQUEST, RESPONSE> getter,
-      BiPredicate<Integer, REQUEST> capturePeerPortCondition,
       FallbackNamePortGetter<REQUEST> fallbackNamePortGetter,
       boolean emitOldHttpAttributes) {
     this.getter = getter;
-    this.capturePeerPortCondition = capturePeerPortCondition;
     this.fallbackNamePortGetter = fallbackNamePortGetter;
     this.emitOldHttpAttributes = emitOldHttpAttributes;
   }
 
-  public void onStart(AttributesBuilder attributes, REQUEST request) {
-    String peerName = extractPeerName(request);
-
-    if (peerName != null) {
-      internalSet(attributes, SemanticAttributes.NET_PEER_NAME, peerName);
-
-      Integer peerPort = extractPeerPort(request);
-      if (peerPort != null && peerPort > 0 && capturePeerPortCondition.test(peerPort, request)) {
-        internalSet(attributes, SemanticAttributes.NET_PEER_PORT, (long) peerPort);
-      }
-    }
-  }
-
   public void onEnd(AttributesBuilder attributes, REQUEST request, @Nullable RESPONSE response) {
 
     if (emitOldHttpAttributes) {
       internalSet(
           attributes, SemanticAttributes.NET_TRANSPORT, getter.getTransport(request, response));
-    }
-
-    String peerName = extractPeerName(request);
 
-    String sockPeerAddr = getter.getSockPeerAddr(request, response);
-    if (sockPeerAddr != null && !sockPeerAddr.equals(peerName)) {
-      internalSet(attributes, SemanticAttributes.NET_SOCK_PEER_ADDR, sockPeerAddr);
-
-      Integer peerPort = extractPeerPort(request);
-      Integer sockPeerPort = getter.getSockPeerPort(request, response);
-      if (sockPeerPort != null && sockPeerPort > 0 && !sockPeerPort.equals(peerPort)) {
-        internalSet(attributes, SemanticAttributes.NET_SOCK_PEER_PORT, (long) sockPeerPort);
-      }
-
-      if (emitOldHttpAttributes) {
+      String peerName = extractPeerName(request);
+      String sockPeerAddr = getter.getServerSocketAddress(request, response);
+      if (sockPeerAddr != null && !sockPeerAddr.equals(peerName)) {
         String sockFamily = getter.getSockFamily(request, response);
         if (sockFamily != null && !SemanticAttributes.NetSockFamilyValues.INET.equals(sockFamily)) {
           internalSet(attributes, SemanticAttributes.NET_SOCK_FAMILY, sockFamily);
         }
       }
-
-      String sockPeerName = getter.getSockPeerName(request, response);
-      if (sockPeerName != null && !sockPeerName.equals(peerName)) {
-        internalSet(attributes, SemanticAttributes.NET_SOCK_PEER_NAME, sockPeerName);
-      }
     }
   }
 
   private String extractPeerName(REQUEST request) {
-    String peerName = getter.getPeerName(request);
+    String peerName = getter.getServerAddress(request);
     if (peerName == null) {
       peerName = fallbackNamePortGetter.name(request);
     }
     return peerName;
   }
-
-  private Integer extractPeerPort(REQUEST request) {
-    Integer peerPort = getter.getPeerPort(request);
-    if (peerPort == null) {
-      peerPort = fallbackNamePortGetter.port(request);
-    }
-    return peerPort;
-  }
 }

+ 2 - 31
instrumentation-api-semconv/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/net/internal/InternalNetServerAttributesExtractor.java

@@ -10,7 +10,6 @@ import static io.opentelemetry.instrumentation.api.internal.AttributesExtractorU
 import io.opentelemetry.api.common.AttributesBuilder;
 import io.opentelemetry.instrumentation.api.instrumenter.net.NetServerAttributesGetter;
 import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
-import java.util.function.BiPredicate;
 
 /**
  * This class is internal and is hence not for public use. Its APIs are unstable and can change at
@@ -19,17 +18,14 @@ import java.util.function.BiPredicate;
 public final class InternalNetServerAttributesExtractor<REQUEST, RESPONSE> {
 
   private final NetServerAttributesGetter<REQUEST, RESPONSE> getter;
-  private final BiPredicate<Integer, REQUEST> captureHostPortCondition;
   private final FallbackNamePortGetter<REQUEST> fallbackNamePortGetter;
   private final boolean emitOldHttpAttributes;
 
   public InternalNetServerAttributesExtractor(
       NetServerAttributesGetter<REQUEST, RESPONSE> getter,
-      BiPredicate<Integer, REQUEST> captureHostPortCondition,
       FallbackNamePortGetter<REQUEST> fallbackNamePortGetter,
       boolean emitOldHttpAttributes) {
     this.getter = getter;
-    this.captureHostPortCondition = captureHostPortCondition;
     this.fallbackNamePortGetter = fallbackNamePortGetter;
     this.emitOldHttpAttributes = emitOldHttpAttributes;
   }
@@ -55,26 +51,9 @@ public final class InternalNetServerAttributesExtractor<REQUEST, RESPONSE> {
     }
 
     String hostName = extractHostName(request);
-    Integer hostPort = extractHostPort(request);
-
-    if (hostName != null) {
-      internalSet(attributes, SemanticAttributes.NET_HOST_NAME, hostName);
-
-      if (hostPort != null && hostPort > 0 && captureHostPortCondition.test(hostPort, request)) {
-        internalSet(attributes, SemanticAttributes.NET_HOST_PORT, (long) hostPort);
-      }
-    }
-
-    String sockHostAddr = getter.getSockHostAddr(request);
+    String sockHostAddr = getter.getServerSocketAddress(request, null);
     if (sockHostAddr != null && !sockHostAddr.equals(hostName)) {
       setSockFamily = true;
-
-      internalSet(attributes, SemanticAttributes.NET_SOCK_HOST_ADDR, sockHostAddr);
-
-      Integer sockHostPort = getter.getSockHostPort(request);
-      if (sockHostPort != null && sockHostPort > 0 && !sockHostPort.equals(hostPort)) {
-        internalSet(attributes, SemanticAttributes.NET_SOCK_HOST_PORT, (long) sockHostPort);
-      }
     }
 
     if (emitOldHttpAttributes && setSockFamily) {
@@ -86,18 +65,10 @@ public final class InternalNetServerAttributesExtractor<REQUEST, RESPONSE> {
   }
 
   private String extractHostName(REQUEST request) {
-    String peerName = getter.getHostName(request);
+    String peerName = getter.getServerAddress(request);
     if (peerName == null) {
       peerName = fallbackNamePortGetter.name(request);
     }
     return peerName;
   }
-
-  private Integer extractHostPort(REQUEST request) {
-    Integer peerPort = getter.getHostPort(request);
-    if (peerPort == null) {
-      peerPort = fallbackNamePortGetter.port(request);
-    }
-    return peerPort;
-  }
 }

+ 61 - 0
instrumentation-api-semconv/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/network/ServerAttributesExtractor.java

@@ -0,0 +1,61 @@
+/*
+ * Copyright The OpenTelemetry Authors
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+package io.opentelemetry.instrumentation.api.instrumenter.network;
+
+import io.opentelemetry.api.common.AttributesBuilder;
+import io.opentelemetry.context.Context;
+import io.opentelemetry.instrumentation.api.instrumenter.AttributesExtractor;
+import io.opentelemetry.instrumentation.api.instrumenter.net.internal.FallbackNamePortGetter;
+import io.opentelemetry.instrumentation.api.instrumenter.network.internal.InternalServerAttributesExtractor;
+import javax.annotation.Nullable;
+
+/**
+ * Extractor of <a
+ * href="https://github.com/open-telemetry/semantic-conventions/blob/main/specification/trace/semantic_conventions/span-general.md#server-attributes">server
+ * attributes</a>.
+ */
+public final class ServerAttributesExtractor<REQUEST, RESPONSE>
+    implements AttributesExtractor<REQUEST, RESPONSE> {
+
+  /**
+   * Returns a new {@link ServerAttributesExtractor} that will use the passed {@link
+   * ServerAttributesGetter}.
+   */
+  public static <REQUEST, RESPONSE> ServerAttributesExtractor<REQUEST, RESPONSE> create(
+      ServerAttributesGetter<REQUEST, RESPONSE> getter) {
+    return new ServerAttributesExtractor<>(getter);
+  }
+
+  private final InternalServerAttributesExtractor<REQUEST, RESPONSE> internalExtractor;
+
+  ServerAttributesExtractor(ServerAttributesGetter<REQUEST, RESPONSE> getter) {
+    // the ServerAttributesExtractor will always emit new semconv
+    internalExtractor =
+        new InternalServerAttributesExtractor<>(
+            getter,
+            (port, request) -> true,
+            FallbackNamePortGetter.noop(),
+            /* emitStableUrlAttributes= */ true,
+            /* emitOldHttpAttributes= */ false,
+            // this param does not matter when old semconv is off
+            InternalServerAttributesExtractor.Mode.HOST);
+  }
+
+  @Override
+  public void onStart(AttributesBuilder attributes, Context parentContext, REQUEST request) {
+    internalExtractor.onStart(attributes, request);
+  }
+
+  @Override
+  public void onEnd(
+      AttributesBuilder attributes,
+      Context context,
+      REQUEST request,
+      @Nullable RESPONSE response,
+      @Nullable Throwable error) {
+    internalExtractor.onEnd(attributes, request, response);
+  }
+}

+ 98 - 0
instrumentation-api-semconv/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/network/ServerAttributesGetter.java

@@ -0,0 +1,98 @@
+/*
+ * Copyright The OpenTelemetry Authors
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+package io.opentelemetry.instrumentation.api.instrumenter.network;
+
+import io.opentelemetry.instrumentation.api.instrumenter.net.internal.InetSocketAddressUtil;
+import java.net.InetSocketAddress;
+import javax.annotation.Nullable;
+
+/**
+ * An interface for getting attributes describing a network server.
+ *
+ * <p>Instrumentation authors will create implementations of this interface for their specific
+ * library/framework. It will be used by the {@link ServerAttributesExtractor} (or other convention
+ * specific extractors) to obtain the various server attributes in a type-generic way.
+ */
+public interface ServerAttributesGetter<REQUEST, RESPONSE> {
+
+  /**
+   * Return the logical server hostname that matches server FQDN if available, and IP or socket
+   * address if FQDN is not known.
+   *
+   * <p>Examples: {@code example.com}
+   */
+  @Nullable
+  String getServerAddress(REQUEST request);
+
+  /**
+   * Return the logical server port number.
+   *
+   * <p>Examples: {@code 80}, {@code 8080}, {@code 443}
+   */
+  @Nullable
+  Integer getServerPort(REQUEST request);
+
+  /**
+   * Returns an {@link InetSocketAddress} object representing the server socket address.
+   *
+   * <p>Implementing this method is equivalent to implementing all three of {@link
+   * #getServerSocketDomain(Object, Object)}, {@link #getServerSocketAddress(Object, Object)} and
+   * {@link #getServerSocketPort(Object, Object)}.
+   */
+  @Nullable
+  default InetSocketAddress getServerInetSocketAddress(
+      REQUEST request, @Nullable RESPONSE response) {
+    return null;
+  }
+
+  /**
+   * Return the domain name of an immediate peer.
+   *
+   * <p>Examples: {@code proxy.example.com}
+   *
+   * <p>By default, this method attempts to retrieve the server domain name using the {@link
+   * #getServerInetSocketAddress(Object, Object)} method. If this method is not implemented, it will
+   * simply return {@code null}. If the instrumented library does not expose {@link
+   * InetSocketAddress} in its API, you might want to implement this method instead of {@link
+   * #getServerInetSocketAddress(Object, Object)}.
+   */
+  @Nullable
+  default String getServerSocketDomain(REQUEST request, @Nullable RESPONSE response) {
+    return InetSocketAddressUtil.getDomainName(getServerInetSocketAddress(request, response));
+  }
+
+  /**
+   * Return the physical server IP address or Unix socket address.
+   *
+   * <p>Examples: {@code 10.5.3.2}
+   *
+   * <p>By default, this method attempts to retrieve the server address using the {@link
+   * #getServerInetSocketAddress(Object, Object)} method. If this method is not implemented, it will
+   * simply return {@code null}. If the instrumented library does not expose {@link
+   * InetSocketAddress} in its API, you might want to implement this method instead of {@link
+   * #getServerInetSocketAddress(Object, Object)}.
+   */
+  @Nullable
+  default String getServerSocketAddress(REQUEST request, @Nullable RESPONSE response) {
+    return InetSocketAddressUtil.getIpAddress(getServerInetSocketAddress(request, response));
+  }
+
+  /**
+   * Return the physical server port.
+   *
+   * <p>Examples: {@code 16456}
+   *
+   * <p>By default, this method attempts to retrieve the server port using the {@link
+   * #getServerInetSocketAddress(Object, Object)} method. If this method is not implemented, it will
+   * simply return {@code null}. If the instrumented library does not expose {@link
+   * InetSocketAddress} in its API, you might want to implement this method instead of {@link
+   * #getServerInetSocketAddress(Object, Object)}.
+   */
+  @Nullable
+  default Integer getServerSocketPort(REQUEST request, @Nullable RESPONSE response) {
+    return InetSocketAddressUtil.getPort(getServerInetSocketAddress(request, response));
+  }
+}

+ 163 - 0
instrumentation-api-semconv/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/network/internal/InternalServerAttributesExtractor.java

@@ -0,0 +1,163 @@
+/*
+ * Copyright The OpenTelemetry Authors
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+package io.opentelemetry.instrumentation.api.instrumenter.network.internal;
+
+import static io.opentelemetry.instrumentation.api.internal.AttributesExtractorUtil.internalSet;
+
+import io.opentelemetry.api.common.AttributeKey;
+import io.opentelemetry.api.common.AttributesBuilder;
+import io.opentelemetry.instrumentation.api.instrumenter.net.internal.FallbackNamePortGetter;
+import io.opentelemetry.instrumentation.api.instrumenter.network.ServerAttributesGetter;
+import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
+import java.util.function.BiPredicate;
+import javax.annotation.Nullable;
+
+/**
+ * This class is internal and is hence not for public use. Its APIs are unstable and can change at
+ * any time.
+ */
+public final class InternalServerAttributesExtractor<REQUEST, RESPONSE> {
+
+  private final ServerAttributesGetter<REQUEST, RESPONSE> getter;
+  private final BiPredicate<Integer, REQUEST> captureServerPortCondition;
+  private final FallbackNamePortGetter<REQUEST> fallbackNamePortGetter;
+  private final boolean emitStableUrlAttributes;
+  private final boolean emitOldHttpAttributes;
+  private final Mode oldSemconvMode;
+
+  public InternalServerAttributesExtractor(
+      ServerAttributesGetter<REQUEST, RESPONSE> getter,
+      BiPredicate<Integer, REQUEST> captureServerPortCondition,
+      FallbackNamePortGetter<REQUEST> fallbackNamePortGetter,
+      boolean emitStableUrlAttributes,
+      boolean emitOldHttpAttributes,
+      Mode oldSemconvMode) {
+    this.getter = getter;
+    this.captureServerPortCondition = captureServerPortCondition;
+    this.fallbackNamePortGetter = fallbackNamePortGetter;
+    this.emitStableUrlAttributes = emitStableUrlAttributes;
+    this.emitOldHttpAttributes = emitOldHttpAttributes;
+    this.oldSemconvMode = oldSemconvMode;
+  }
+
+  public void onStart(AttributesBuilder attributes, REQUEST request) {
+    String serverAddress = extractServerAddress(request);
+
+    if (serverAddress != null) {
+      if (emitStableUrlAttributes) {
+        internalSet(attributes, NetworkAttributes.SERVER_ADDRESS, serverAddress);
+      }
+      if (emitOldHttpAttributes) {
+        internalSet(attributes, oldSemconvMode.address, serverAddress);
+      }
+
+      Integer serverPort = extractServerPort(request);
+      if (serverPort != null
+          && serverPort > 0
+          && captureServerPortCondition.test(serverPort, request)) {
+        if (emitStableUrlAttributes) {
+          internalSet(attributes, NetworkAttributes.SERVER_PORT, (long) serverPort);
+        }
+        if (emitOldHttpAttributes) {
+          internalSet(attributes, oldSemconvMode.port, (long) serverPort);
+        }
+      }
+    }
+  }
+
+  public void onEnd(AttributesBuilder attributes, REQUEST request, @Nullable RESPONSE response) {
+    String serverAddress = extractServerAddress(request);
+
+    String serverSocketAddress = getter.getServerSocketAddress(request, response);
+    if (serverSocketAddress != null && !serverSocketAddress.equals(serverAddress)) {
+      if (emitStableUrlAttributes) {
+        internalSet(attributes, NetworkAttributes.SERVER_SOCKET_ADDRESS, serverSocketAddress);
+      }
+      if (emitOldHttpAttributes) {
+        internalSet(attributes, oldSemconvMode.socketAddress, serverSocketAddress);
+      }
+
+      Integer serverPort = extractServerPort(request);
+      Integer serverSocketPort = getter.getServerSocketPort(request, response);
+      if (serverSocketPort != null
+          && serverSocketPort > 0
+          && !serverSocketPort.equals(serverPort)) {
+        if (emitStableUrlAttributes) {
+          internalSet(attributes, NetworkAttributes.SERVER_SOCKET_PORT, (long) serverSocketPort);
+        }
+        if (emitOldHttpAttributes) {
+          internalSet(attributes, oldSemconvMode.socketPort, (long) serverSocketPort);
+        }
+      }
+
+      String serverSocketDomain = getter.getServerSocketDomain(request, response);
+      if (serverSocketDomain != null && !serverSocketDomain.equals(serverAddress)) {
+        if (emitStableUrlAttributes) {
+          internalSet(attributes, NetworkAttributes.SERVER_SOCKET_DOMAIN, serverSocketDomain);
+        }
+        if (emitOldHttpAttributes && oldSemconvMode.socketDomain != null) {
+          internalSet(attributes, oldSemconvMode.socketDomain, serverSocketDomain);
+        }
+      }
+    }
+  }
+
+  private String extractServerAddress(REQUEST request) {
+    String serverAddress = getter.getServerAddress(request);
+    if (serverAddress == null) {
+      serverAddress = fallbackNamePortGetter.name(request);
+    }
+    return serverAddress;
+  }
+
+  private Integer extractServerPort(REQUEST request) {
+    Integer serverPort = getter.getServerPort(request);
+    if (serverPort == null) {
+      serverPort = fallbackNamePortGetter.port(request);
+    }
+    return serverPort;
+  }
+
+  /**
+   * This class is internal and is hence not for public use. Its APIs are unstable and can change at
+   * any time.
+   */
+  @SuppressWarnings("ImmutableEnumChecker")
+  public enum Mode {
+    PEER(
+        SemanticAttributes.NET_PEER_NAME,
+        SemanticAttributes.NET_PEER_PORT,
+        SemanticAttributes.NET_SOCK_PEER_NAME,
+        SemanticAttributes.NET_SOCK_PEER_ADDR,
+        SemanticAttributes.NET_SOCK_PEER_PORT),
+    HOST(
+        SemanticAttributes.NET_HOST_NAME,
+        SemanticAttributes.NET_HOST_PORT,
+        // the old semconv does not have an attribute for this
+        null,
+        SemanticAttributes.NET_SOCK_HOST_ADDR,
+        SemanticAttributes.NET_SOCK_HOST_PORT);
+
+    final AttributeKey<String> address;
+    final AttributeKey<Long> port;
+    @Nullable final AttributeKey<String> socketDomain;
+    final AttributeKey<String> socketAddress;
+    final AttributeKey<Long> socketPort;
+
+    Mode(
+        AttributeKey<String> address,
+        AttributeKey<Long> port,
+        AttributeKey<String> socketDomain,
+        AttributeKey<String> socketAddress,
+        AttributeKey<Long> socketPort) {
+      this.address = address;
+      this.port = port;
+      this.socketDomain = socketDomain;
+      this.socketAddress = socketAddress;
+      this.socketPort = socketPort;
+    }
+  }
+}

+ 12 - 0
instrumentation-api-semconv/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/network/internal/NetworkAttributes.java

@@ -5,6 +5,7 @@
 
 package io.opentelemetry.instrumentation.api.instrumenter.network.internal;
 
+import static io.opentelemetry.api.common.AttributeKey.longKey;
 import static io.opentelemetry.api.common.AttributeKey.stringKey;
 
 import io.opentelemetry.api.common.AttributeKey;
@@ -28,5 +29,16 @@ public final class NetworkAttributes {
   public static final AttributeKey<String> NETWORK_PROTOCOL_VERSION =
       stringKey("network.protocol.version");
 
+  public static final AttributeKey<String> SERVER_ADDRESS = stringKey("server.address");
+
+  public static final AttributeKey<Long> SERVER_PORT = longKey("server.port");
+
+  public static final AttributeKey<String> SERVER_SOCKET_DOMAIN = stringKey("server.socket.domain");
+
+  public static final AttributeKey<String> SERVER_SOCKET_ADDRESS =
+      stringKey("server.socket.address");
+
+  public static final AttributeKey<Long> SERVER_SOCKET_PORT = longKey("server.socket.port");
+
   private NetworkAttributes() {}
 }

+ 2 - 2
instrumentation-api-semconv/src/test/java/io/opentelemetry/instrumentation/api/instrumenter/http/HttpClientAttributesExtractorTest.java

@@ -101,13 +101,13 @@ class HttpClientAttributesExtractorTest {
 
     @Nullable
     @Override
-    public String getPeerName(Map<String, String> request) {
+    public String getServerAddress(Map<String, String> request) {
       return request.get("peerName");
     }
 
     @Nullable
     @Override
-    public Integer getPeerPort(Map<String, String> request) {
+    public Integer getServerPort(Map<String, String> request) {
       String statusCode = request.get("peerPort");
       return statusCode == null ? null : Integer.parseInt(statusCode);
     }

+ 2 - 2
instrumentation-api-semconv/src/test/java/io/opentelemetry/instrumentation/api/instrumenter/http/HttpServerAttributesExtractorTest.java

@@ -119,13 +119,13 @@ class HttpServerAttributesExtractorTest {
 
     @Nullable
     @Override
-    public String getHostName(Map<String, Object> request) {
+    public String getServerAddress(Map<String, Object> request) {
       return (String) request.get("hostName");
     }
 
     @Nullable
     @Override
-    public Integer getHostPort(Map<String, Object> request) {
+    public Integer getServerPort(Map<String, Object> request) {
       return (Integer) request.get("hostPort");
     }
   }

+ 3 - 3
instrumentation-api-semconv/src/test/java/io/opentelemetry/instrumentation/api/instrumenter/net/InetSocketAddressNetClientAttributesGetterTest.java

@@ -25,19 +25,19 @@ class InetSocketAddressNetClientAttributesGetterTest {
       implements NetClientAttributesGetter<InetSocketAddress, InetSocketAddress> {
 
     @Override
-    public String getPeerName(InetSocketAddress request) {
+    public String getServerAddress(InetSocketAddress request) {
       // net.peer.name and net.peer.port are tested in NetClientAttributesExtractorTest
       return null;
     }
 
     @Override
-    public Integer getPeerPort(InetSocketAddress request) {
+    public Integer getServerPort(InetSocketAddress request) {
       // net.peer.name and net.peer.port are tested in NetClientAttributesExtractorTest
       return null;
     }
 
     @Override
-    public InetSocketAddress getPeerSocketAddress(
+    public InetSocketAddress getServerInetSocketAddress(
         InetSocketAddress request, InetSocketAddress response) {
       return response;
     }

+ 9 - 6
instrumentation-api-semconv/src/test/java/io/opentelemetry/instrumentation/api/instrumenter/net/InetSocketAddressNetServerAttributesGetterTest.java

@@ -6,6 +6,7 @@
 package io.opentelemetry.instrumentation.api.instrumenter.net;
 
 import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.assertThat;
+import static org.assertj.core.api.Assertions.entry;
 
 import io.opentelemetry.api.common.Attributes;
 import io.opentelemetry.api.common.AttributesBuilder;
@@ -25,13 +26,13 @@ class InetSocketAddressNetServerAttributesGetterTest {
       implements NetServerAttributesGetter<Addresses, Addresses> {
 
     @Override
-    public String getHostName(Addresses request) {
+    public String getServerAddress(Addresses request) {
       // net.host.name and net.host.port are tested in NetClientAttributesExtractorTest
       return null;
     }
 
     @Override
-    public Integer getHostPort(Addresses request) {
+    public Integer getServerPort(Addresses request) {
       // net.host.name and net.host.port are tested in NetClientAttributesExtractorTest
       return null;
     }
@@ -42,7 +43,7 @@ class InetSocketAddressNetServerAttributesGetterTest {
     }
 
     @Override
-    public InetSocketAddress getHostSocketAddress(Addresses request) {
+    public InetSocketAddress getServerInetSocketAddress(Addresses request, Addresses response) {
       return request.host;
     }
   }
@@ -82,12 +83,14 @@ class InetSocketAddressNetServerAttributesGetterTest {
     }
     builder.put(SemanticAttributes.NET_SOCK_PEER_ADDR, request.peer.getAddress().getHostAddress());
     builder.put(SemanticAttributes.NET_SOCK_PEER_PORT, 123L);
-    builder.put(SemanticAttributes.NET_SOCK_HOST_ADDR, request.host.getAddress().getHostAddress());
-    builder.put(SemanticAttributes.NET_SOCK_HOST_PORT, 456L);
 
     assertThat(startAttributes.build()).isEqualTo(builder.build());
 
-    assertThat(endAttributes.build()).isEmpty();
+    assertThat(endAttributes.build())
+        .containsOnly(
+            entry(
+                SemanticAttributes.NET_SOCK_HOST_ADDR, request.host.getAddress().getHostAddress()),
+            entry(SemanticAttributes.NET_SOCK_HOST_PORT, 456L));
   }
 
   @Test

+ 8 - 7
instrumentation-api-semconv/src/test/java/io/opentelemetry/instrumentation/api/instrumenter/net/NetClientAttributesExtractorTest.java

@@ -61,12 +61,12 @@ class NetClientAttributesExtractorTest {
     }
 
     @Override
-    public String getPeerName(Map<String, String> request) {
+    public String getServerAddress(Map<String, String> request) {
       return request.get("peerName");
     }
 
     @Override
-    public Integer getPeerPort(Map<String, String> request) {
+    public Integer getServerPort(Map<String, String> request) {
       String peerPort = request.get("peerPort");
       return peerPort == null ? null : Integer.valueOf(peerPort);
     }
@@ -77,17 +77,18 @@ class NetClientAttributesExtractorTest {
     }
 
     @Override
-    public String getSockPeerAddr(Map<String, String> request, Map<String, String> response) {
-      return response.get("sockPeerAddr");
+    public String getServerSocketDomain(Map<String, String> request, Map<String, String> response) {
+      return response.get("sockPeerName");
     }
 
     @Override
-    public String getSockPeerName(Map<String, String> request, Map<String, String> response) {
-      return response.get("sockPeerName");
+    public String getServerSocketAddress(
+        Map<String, String> request, Map<String, String> response) {
+      return response.get("sockPeerAddr");
     }
 
     @Override
-    public Integer getSockPeerPort(Map<String, String> request, Map<String, String> response) {
+    public Integer getServerSocketPort(Map<String, String> request, Map<String, String> response) {
       String sockPeerPort = response.get("sockPeerPort");
       return sockPeerPort == null ? null : Integer.valueOf(sockPeerPort);
     }

+ 14 - 14
instrumentation-api-semconv/src/test/java/io/opentelemetry/instrumentation/api/instrumenter/net/NetServerAttributesExtractorTest.java

@@ -58,13 +58,13 @@ class NetServerAttributesExtractorTest {
 
     @Nullable
     @Override
-    public String getHostName(Map<String, String> request) {
+    public String getServerAddress(Map<String, String> request) {
       return request.get("hostName");
     }
 
     @Nullable
     @Override
-    public Integer getHostPort(Map<String, String> request) {
+    public Integer getServerPort(Map<String, String> request) {
       String hostPort = request.get("hostPort");
       return hostPort == null ? null : Integer.valueOf(hostPort);
     }
@@ -88,13 +88,13 @@ class NetServerAttributesExtractorTest {
 
     @Nullable
     @Override
-    public String getSockHostAddr(Map<String, String> request) {
+    public String getServerSocketAddress(Map<String, String> request, Void response) {
       return request.get("sockHostAddr");
     }
 
     @Nullable
     @Override
-    public Integer getSockHostPort(Map<String, String> request) {
+    public Integer getServerSocketPort(Map<String, String> request, Void response) {
       String sockHostPort = request.get("sockHostPort");
       return sockHostPort == null ? null : Integer.valueOf(sockHostPort);
     }
@@ -137,14 +137,14 @@ class NetServerAttributesExtractorTest {
             entry(SemanticAttributes.NET_HOST_PORT, 80L),
             entry(SemanticAttributes.NET_SOCK_FAMILY, "inet6"),
             entry(SemanticAttributes.NET_SOCK_PEER_ADDR, "1:2:3:4::"),
-            entry(SemanticAttributes.NET_SOCK_PEER_PORT, 42L),
-            entry(SemanticAttributes.NET_SOCK_HOST_ADDR, "4:3:2:1::"),
-            entry(SemanticAttributes.NET_SOCK_HOST_PORT, 8080L));
+            entry(SemanticAttributes.NET_SOCK_PEER_PORT, 42L));
 
     assertThat(endAttributes.build())
         .containsOnly(
             entry(NetAttributes.NET_PROTOCOL_NAME, "http"),
-            entry(NetAttributes.NET_PROTOCOL_VERSION, "1.1"));
+            entry(NetAttributes.NET_PROTOCOL_VERSION, "1.1"),
+            entry(SemanticAttributes.NET_SOCK_HOST_ADDR, "4:3:2:1::"),
+            entry(SemanticAttributes.NET_SOCK_HOST_PORT, 8080L));
   }
 
   @Test
@@ -224,10 +224,10 @@ class NetServerAttributesExtractorTest {
             entry(SemanticAttributes.NET_TRANSPORT, IP_TCP),
             entry(SemanticAttributes.NET_HOST_NAME, "opentelemetry.io"),
             entry(SemanticAttributes.NET_HOST_PORT, 80L),
-            entry(SemanticAttributes.NET_SOCK_FAMILY, "inet6"),
-            entry(SemanticAttributes.NET_SOCK_HOST_ADDR, "4:3:2:1::"));
+            entry(SemanticAttributes.NET_SOCK_FAMILY, "inet6"));
 
-    assertThat(endAttributes.build()).isEmpty();
+    assertThat(endAttributes.build())
+        .containsOnly(entry(SemanticAttributes.NET_SOCK_HOST_ADDR, "4:3:2:1::"));
   }
 
   @Test
@@ -254,10 +254,10 @@ class NetServerAttributesExtractorTest {
     assertThat(startAttributes.build())
         .containsOnly(
             entry(SemanticAttributes.NET_HOST_NAME, "opentelemetry.io"),
-            entry(SemanticAttributes.NET_SOCK_PEER_ADDR, "1:2:3:4::"),
-            entry(SemanticAttributes.NET_SOCK_HOST_ADDR, "4:3:2:1::"));
+            entry(SemanticAttributes.NET_SOCK_PEER_ADDR, "1:2:3:4::"));
 
-    assertThat(endAttributes.build()).isEmpty();
+    assertThat(endAttributes.build())
+        .containsOnly(entry(SemanticAttributes.NET_SOCK_HOST_ADDR, "4:3:2:1::"));
   }
 
   @Test

+ 4 - 4
instrumentation-api-semconv/src/test/java/io/opentelemetry/instrumentation/api/instrumenter/net/PeerServiceAttributesExtractorTest.java

@@ -56,7 +56,7 @@ class PeerServiceAttributesExtractorTest {
     PeerServiceAttributesExtractor<String, String> underTest =
         new PeerServiceAttributesExtractor<>(netAttributesExtractor, peerServiceMapping);
 
-    when(netAttributesExtractor.getPeerName(any())).thenReturn("example2.com");
+    when(netAttributesExtractor.getServerAddress(any())).thenReturn("example2.com");
 
     Context context = Context.root();
 
@@ -81,7 +81,7 @@ class PeerServiceAttributesExtractorTest {
     PeerServiceAttributesExtractor<String, String> underTest =
         new PeerServiceAttributesExtractor<>(netAttributesExtractor, peerServiceMapping);
 
-    when(netAttributesExtractor.getPeerName(any())).thenReturn("example.com");
+    when(netAttributesExtractor.getServerAddress(any())).thenReturn("example.com");
 
     Context context = Context.root();
 
@@ -95,7 +95,7 @@ class PeerServiceAttributesExtractorTest {
     assertThat(startAttributes.build()).isEmpty();
     assertThat(endAttributes.build())
         .containsOnly(entry(SemanticAttributes.PEER_SERVICE, "myService"));
-    verify(netAttributesExtractor, never()).getSockPeerName(any(), any());
+    verify(netAttributesExtractor, never()).getServerSocketDomain(any(), any());
   }
 
   @Test
@@ -108,7 +108,7 @@ class PeerServiceAttributesExtractorTest {
     PeerServiceAttributesExtractor<String, String> underTest =
         new PeerServiceAttributesExtractor<>(netAttributesExtractor, peerServiceMapping);
 
-    when(netAttributesExtractor.getSockPeerName(any(), any())).thenReturn("example.com");
+    when(netAttributesExtractor.getServerSocketDomain(any(), any())).thenReturn("example.com");
 
     Context context = Context.root();
 

+ 81 - 0
instrumentation-api-semconv/src/test/java/io/opentelemetry/instrumentation/api/instrumenter/network/ServerAttributesExtractorInetSocketAddressTest.java

@@ -0,0 +1,81 @@
+/*
+ * Copyright The OpenTelemetry Authors
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+package io.opentelemetry.instrumentation.api.instrumenter.network;
+
+import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.assertThat;
+import static org.assertj.core.api.Assertions.entry;
+
+import io.opentelemetry.api.common.Attributes;
+import io.opentelemetry.api.common.AttributesBuilder;
+import io.opentelemetry.context.Context;
+import io.opentelemetry.instrumentation.api.instrumenter.AttributesExtractor;
+import io.opentelemetry.instrumentation.api.instrumenter.network.internal.NetworkAttributes;
+import java.net.InetSocketAddress;
+import javax.annotation.Nullable;
+import org.junit.jupiter.api.Test;
+
+class ServerAttributesExtractorInetSocketAddressTest {
+
+  static class TestServerAttributesGetter
+      implements ServerAttributesGetter<InetSocketAddress, Void> {
+
+    @Nullable
+    @Override
+    public String getServerAddress(InetSocketAddress request) {
+      // covered in ServerAttributesExtractorTest
+      return null;
+    }
+
+    @Nullable
+    @Override
+    public Integer getServerPort(InetSocketAddress request) {
+      // covered in ServerAttributesExtractorTest
+      return null;
+    }
+
+    @Nullable
+    @Override
+    public InetSocketAddress getServerInetSocketAddress(
+        InetSocketAddress request, @Nullable Void unused) {
+      return request;
+    }
+  }
+
+  @Test
+  void fullAddress() {
+    InetSocketAddress address = new InetSocketAddress("api.github.com", 456);
+    assertThat(address.getAddress().getHostAddress()).isNotNull();
+
+    AttributesExtractor<InetSocketAddress, Void> extractor =
+        ServerAttributesExtractor.create(new TestServerAttributesGetter());
+
+    AttributesBuilder startAttributes = Attributes.builder();
+    extractor.onStart(startAttributes, Context.root(), address);
+    assertThat(startAttributes.build()).isEmpty();
+
+    AttributesBuilder endAttributes = Attributes.builder();
+    extractor.onEnd(endAttributes, Context.root(), address, null, null);
+    assertThat(endAttributes.build())
+        .containsOnly(
+            entry(NetworkAttributes.SERVER_SOCKET_DOMAIN, "api.github.com"),
+            entry(NetworkAttributes.SERVER_SOCKET_ADDRESS, address.getAddress().getHostAddress()),
+            entry(NetworkAttributes.SERVER_SOCKET_PORT, 456L));
+  }
+
+  @Test
+  void noAttributes() {
+    AttributesExtractor<InetSocketAddress, Void> extractor =
+        ServerAttributesExtractor.create(new TestServerAttributesGetter());
+
+    AttributesBuilder startAttributes = Attributes.builder();
+    extractor.onStart(startAttributes, Context.root(), null);
+    assertThat(startAttributes.build()).isEmpty();
+
+    AttributesBuilder endAttributes = Attributes.builder();
+    extractor.onEnd(endAttributes, Context.root(), null, null, null);
+    assertThat(endAttributes.build()).isEmpty();
+  }
+}

+ 126 - 0
instrumentation-api-semconv/src/test/java/io/opentelemetry/instrumentation/api/instrumenter/network/ServerAttributesExtractorTest.java

@@ -0,0 +1,126 @@
+/*
+ * Copyright The OpenTelemetry Authors
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+package io.opentelemetry.instrumentation.api.instrumenter.network;
+
+import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.assertThat;
+import static java.util.Collections.emptyMap;
+import static org.assertj.core.api.Assertions.entry;
+
+import io.opentelemetry.api.common.Attributes;
+import io.opentelemetry.api.common.AttributesBuilder;
+import io.opentelemetry.context.Context;
+import io.opentelemetry.instrumentation.api.instrumenter.AttributesExtractor;
+import io.opentelemetry.instrumentation.api.instrumenter.network.internal.NetworkAttributes;
+import java.util.HashMap;
+import java.util.Map;
+import javax.annotation.Nullable;
+import org.junit.jupiter.api.Test;
+
+class ServerAttributesExtractorTest {
+
+  static class TestServerAttributesGetter
+      implements ServerAttributesGetter<Map<String, String>, Void> {
+
+    @Nullable
+    @Override
+    public String getServerAddress(Map<String, String> request) {
+      return request.get("address");
+    }
+
+    @Nullable
+    @Override
+    public Integer getServerPort(Map<String, String> request) {
+      String port = request.get("port");
+      return port == null ? null : Integer.parseInt(port);
+    }
+
+    @Nullable
+    @Override
+    public String getServerSocketDomain(Map<String, String> request, @Nullable Void unused) {
+      return request.get("socketDomain");
+    }
+
+    @Nullable
+    @Override
+    public String getServerSocketAddress(Map<String, String> request, @Nullable Void unused) {
+      return request.get("socketAddress");
+    }
+
+    @Nullable
+    @Override
+    public Integer getServerSocketPort(Map<String, String> request, @Nullable Void unused) {
+      String port = request.get("socketPort");
+      return port == null ? null : Integer.parseInt(port);
+    }
+  }
+
+  @Test
+  void allAttributes() {
+    Map<String, String> request = new HashMap<>();
+    request.put("address", "opentelemetry.io");
+    request.put("port", "80");
+    request.put("socketDomain", "proxy.opentelemetry.io");
+    request.put("socketAddress", "1.2.3.4");
+    request.put("socketPort", "8080");
+
+    AttributesExtractor<Map<String, String>, Void> extractor =
+        ServerAttributesExtractor.create(new TestServerAttributesGetter());
+
+    AttributesBuilder startAttributes = Attributes.builder();
+    extractor.onStart(startAttributes, Context.root(), request);
+    assertThat(startAttributes.build())
+        .containsOnly(
+            entry(NetworkAttributes.SERVER_ADDRESS, "opentelemetry.io"),
+            entry(NetworkAttributes.SERVER_PORT, 80L));
+
+    AttributesBuilder endAttributes = Attributes.builder();
+    extractor.onEnd(endAttributes, Context.root(), request, null, null);
+    assertThat(endAttributes.build())
+        .containsOnly(
+            entry(NetworkAttributes.SERVER_SOCKET_DOMAIN, "proxy.opentelemetry.io"),
+            entry(NetworkAttributes.SERVER_SOCKET_ADDRESS, "1.2.3.4"),
+            entry(NetworkAttributes.SERVER_SOCKET_PORT, 8080L));
+  }
+
+  @Test
+  void noAttributes() {
+    AttributesExtractor<Map<String, String>, Void> extractor =
+        ServerAttributesExtractor.create(new TestServerAttributesGetter());
+
+    AttributesBuilder startAttributes = Attributes.builder();
+    extractor.onStart(startAttributes, Context.root(), emptyMap());
+    assertThat(startAttributes.build()).isEmpty();
+
+    AttributesBuilder endAttributes = Attributes.builder();
+    extractor.onEnd(endAttributes, Context.root(), emptyMap(), null, null);
+    assertThat(endAttributes.build()).isEmpty();
+  }
+
+  @Test
+  void doesNotSetNegativePortValues() {
+    Map<String, String> request = new HashMap<>();
+    request.put("address", "opentelemetry.io");
+    request.put("port", "-12");
+    request.put("socketAddress", "1.2.3.4");
+    request.put("socketPort", "-42");
+
+    AttributesExtractor<Map<String, String>, Void> extractor =
+        ServerAttributesExtractor.create(new TestServerAttributesGetter());
+
+    AttributesBuilder startAttributes = Attributes.builder();
+    extractor.onStart(startAttributes, Context.root(), request);
+    assertThat(startAttributes.build())
+        .containsOnly(entry(NetworkAttributes.SERVER_ADDRESS, "opentelemetry.io"));
+
+    AttributesBuilder endAttributes = Attributes.builder();
+    extractor.onEnd(endAttributes, Context.root(), request, null, null);
+    assertThat(endAttributes.build())
+        .containsOnly(entry(NetworkAttributes.SERVER_SOCKET_ADDRESS, "1.2.3.4"));
+  }
+
+  // TODO: add more test cases around duplicate data once
+  // https://github.com/open-telemetry/semantic-conventions/issues/85 clears up
+}

+ 5 - 3
instrumentation-api-semconv/src/testBothHttpSemconv/java/io/opentelemetry/instrumentation/api/instrumenter/http/HttpClientAttributesExtractorBothSemconvTest.java

@@ -96,13 +96,13 @@ class HttpClientAttributesExtractorBothSemconvTest {
 
     @Nullable
     @Override
-    public String getPeerName(Map<String, String> request) {
+    public String getServerAddress(Map<String, String> request) {
       return request.get("peerName");
     }
 
     @Nullable
     @Override
-    public Integer getPeerPort(Map<String, String> request) {
+    public Integer getServerPort(Map<String, String> request) {
       String statusCode = request.get("peerPort");
       return statusCode == null ? null : Integer.parseInt(statusCode);
     }
@@ -151,7 +151,9 @@ class HttpClientAttributesExtractorBothSemconvTest {
                 AttributeKey.stringArrayKey("http.request.header.custom_request_header"),
                 asList("123", "456")),
             entry(SemanticAttributes.NET_PEER_NAME, "github.com"),
-            entry(SemanticAttributes.NET_PEER_PORT, 123L));
+            entry(SemanticAttributes.NET_PEER_PORT, 123L),
+            entry(NetworkAttributes.SERVER_ADDRESS, "github.com"),
+            entry(NetworkAttributes.SERVER_PORT, 123L));
 
     AttributesBuilder endAttributes = Attributes.builder();
     extractor.onEnd(endAttributes, Context.root(), request, response, null);

+ 3 - 2
instrumentation-api-semconv/src/testBothHttpSemconv/java/io/opentelemetry/instrumentation/api/instrumenter/http/HttpServerAttributesExtractorBothSemconvTest.java

@@ -113,13 +113,13 @@ class HttpServerAttributesExtractorBothSemconvTest {
 
     @Nullable
     @Override
-    public String getHostName(Map<String, Object> request) {
+    public String getServerAddress(Map<String, Object> request) {
       return (String) request.get("hostName");
     }
 
     @Nullable
     @Override
-    public Integer getHostPort(Map<String, Object> request) {
+    public Integer getServerPort(Map<String, Object> request) {
       return (Integer) request.get("hostPort");
     }
   }
@@ -163,6 +163,7 @@ class HttpServerAttributesExtractorBothSemconvTest {
     assertThat(startAttributes.build())
         .containsOnly(
             entry(SemanticAttributes.NET_HOST_NAME, "github.com"),
+            entry(NetworkAttributes.SERVER_ADDRESS, "github.com"),
             entry(SemanticAttributes.HTTP_METHOD, "POST"),
             entry(HttpAttributes.HTTP_REQUEST_METHOD, "POST"),
             entry(SemanticAttributes.HTTP_SCHEME, "http"),

+ 15 - 9
instrumentation-api-semconv/src/testBothHttpSemconv/java/io/opentelemetry/instrumentation/api/instrumenter/net/NetClientAttributesExtractorBothSemconvTest.java

@@ -60,12 +60,12 @@ class NetClientAttributesExtractorBothSemconvTest {
     }
 
     @Override
-    public String getPeerName(Map<String, String> request) {
+    public String getServerAddress(Map<String, String> request) {
       return request.get("peerName");
     }
 
     @Override
-    public Integer getPeerPort(Map<String, String> request) {
+    public Integer getServerPort(Map<String, String> request) {
       String peerPort = request.get("peerPort");
       return peerPort == null ? null : Integer.valueOf(peerPort);
     }
@@ -76,17 +76,18 @@ class NetClientAttributesExtractorBothSemconvTest {
     }
 
     @Override
-    public String getSockPeerAddr(Map<String, String> request, Map<String, String> response) {
-      return response.get("sockPeerAddr");
+    public String getServerSocketDomain(Map<String, String> request, Map<String, String> response) {
+      return response.get("sockPeerName");
     }
 
     @Override
-    public String getSockPeerName(Map<String, String> request, Map<String, String> response) {
-      return response.get("sockPeerName");
+    public String getServerSocketAddress(
+        Map<String, String> request, Map<String, String> response) {
+      return response.get("sockPeerAddr");
     }
 
     @Override
-    public Integer getSockPeerPort(Map<String, String> request, Map<String, String> response) {
+    public Integer getServerSocketPort(Map<String, String> request, Map<String, String> response) {
       String sockPeerPort = response.get("sockPeerPort");
       return sockPeerPort == null ? null : Integer.valueOf(sockPeerPort);
     }
@@ -124,7 +125,9 @@ class NetClientAttributesExtractorBothSemconvTest {
     assertThat(startAttributes.build())
         .containsOnly(
             entry(SemanticAttributes.NET_PEER_NAME, "opentelemetry.io"),
-            entry(SemanticAttributes.NET_PEER_PORT, 42L));
+            entry(SemanticAttributes.NET_PEER_PORT, 42L),
+            entry(NetworkAttributes.SERVER_ADDRESS, "opentelemetry.io"),
+            entry(NetworkAttributes.SERVER_PORT, 42L));
 
     assertThat(endAttributes.build())
         .containsOnly(
@@ -138,6 +141,9 @@ class NetClientAttributesExtractorBothSemconvTest {
             entry(SemanticAttributes.NET_SOCK_FAMILY, "inet6"),
             entry(SemanticAttributes.NET_SOCK_PEER_ADDR, "1:2:3:4::"),
             entry(SemanticAttributes.NET_SOCK_PEER_NAME, "proxy.opentelemetry.io"),
-            entry(SemanticAttributes.NET_SOCK_PEER_PORT, 123L));
+            entry(SemanticAttributes.NET_SOCK_PEER_PORT, 123L),
+            entry(NetworkAttributes.SERVER_SOCKET_DOMAIN, "proxy.opentelemetry.io"),
+            entry(NetworkAttributes.SERVER_SOCKET_ADDRESS, "1:2:3:4::"),
+            entry(NetworkAttributes.SERVER_SOCKET_PORT, 123L));
   }
 }

+ 11 - 7
instrumentation-api-semconv/src/testBothHttpSemconv/java/io/opentelemetry/instrumentation/api/instrumenter/net/NetServerAttributesExtractorBothSemconvTest.java

@@ -57,13 +57,13 @@ class NetServerAttributesExtractorBothSemconvTest {
 
     @Nullable
     @Override
-    public String getHostName(Map<String, String> request) {
+    public String getServerAddress(Map<String, String> request) {
       return request.get("hostName");
     }
 
     @Nullable
     @Override
-    public Integer getHostPort(Map<String, String> request) {
+    public Integer getServerPort(Map<String, String> request) {
       String hostPort = request.get("hostPort");
       return hostPort == null ? null : Integer.valueOf(hostPort);
     }
@@ -87,13 +87,13 @@ class NetServerAttributesExtractorBothSemconvTest {
 
     @Nullable
     @Override
-    public String getSockHostAddr(Map<String, String> request) {
+    public String getServerSocketAddress(Map<String, String> request, Void response) {
       return request.get("sockHostAddr");
     }
 
     @Nullable
     @Override
-    public Integer getSockHostPort(Map<String, String> request) {
+    public Integer getServerSocketPort(Map<String, String> request, Void response) {
       String sockHostPort = request.get("sockHostPort");
       return sockHostPort == null ? null : Integer.valueOf(sockHostPort);
     }
@@ -134,14 +134,18 @@ class NetServerAttributesExtractorBothSemconvTest {
             entry(SemanticAttributes.NET_TRANSPORT, IP_TCP),
             entry(SemanticAttributes.NET_HOST_NAME, "opentelemetry.io"),
             entry(SemanticAttributes.NET_HOST_PORT, 80L),
+            entry(NetworkAttributes.SERVER_ADDRESS, "opentelemetry.io"),
+            entry(NetworkAttributes.SERVER_PORT, 80L),
             entry(SemanticAttributes.NET_SOCK_FAMILY, "inet6"),
             entry(SemanticAttributes.NET_SOCK_PEER_ADDR, "1:2:3:4::"),
-            entry(SemanticAttributes.NET_SOCK_PEER_PORT, 42L),
-            entry(SemanticAttributes.NET_SOCK_HOST_ADDR, "4:3:2:1::"),
-            entry(SemanticAttributes.NET_SOCK_HOST_PORT, 8080L));
+            entry(SemanticAttributes.NET_SOCK_PEER_PORT, 42L));
 
     assertThat(endAttributes.build())
         .containsOnly(
+            entry(SemanticAttributes.NET_SOCK_HOST_ADDR, "4:3:2:1::"),
+            entry(SemanticAttributes.NET_SOCK_HOST_PORT, 8080L),
+            entry(NetworkAttributes.SERVER_SOCKET_ADDRESS, "4:3:2:1::"),
+            entry(NetworkAttributes.SERVER_SOCKET_PORT, 8080L),
             entry(NetworkAttributes.NETWORK_TRANSPORT, "tcp"),
             entry(NetworkAttributes.NETWORK_TYPE, "ipv6"),
             entry(NetworkAttributes.NETWORK_PROTOCOL_NAME, "http"),

+ 4 - 4
instrumentation-api-semconv/src/testStableHttpSemconv/java/io/opentelemetry/instrumentation/api/instrumenter/http/HttpClientAttributesExtractorStableSemconvTest.java

@@ -104,13 +104,13 @@ class HttpClientAttributesExtractorStableSemconvTest {
 
     @Nullable
     @Override
-    public String getPeerName(Map<String, String> request) {
+    public String getServerAddress(Map<String, String> request) {
       return request.get("peerName");
     }
 
     @Nullable
     @Override
-    public Integer getPeerPort(Map<String, String> request) {
+    public Integer getServerPort(Map<String, String> request) {
       String value = request.get("peerPort");
       return value == null ? null : Integer.parseInt(value);
     }
@@ -156,8 +156,8 @@ class HttpClientAttributesExtractorStableSemconvTest {
             entry(
                 AttributeKey.stringArrayKey("http.request.header.custom_request_header"),
                 asList("123", "456")),
-            entry(SemanticAttributes.NET_PEER_NAME, "github.com"),
-            entry(SemanticAttributes.NET_PEER_PORT, 123L));
+            entry(NetworkAttributes.SERVER_ADDRESS, "github.com"),
+            entry(NetworkAttributes.SERVER_PORT, 123L));
 
     AttributesBuilder endAttributes = Attributes.builder();
     extractor.onEnd(endAttributes, Context.root(), request, response, null);

+ 3 - 3
instrumentation-api-semconv/src/testStableHttpSemconv/java/io/opentelemetry/instrumentation/api/instrumenter/http/HttpServerAttributesExtractorStableSemconvTest.java

@@ -121,13 +121,13 @@ class HttpServerAttributesExtractorStableSemconvTest {
 
     @Nullable
     @Override
-    public String getHostName(Map<String, Object> request) {
+    public String getServerAddress(Map<String, Object> request) {
       return (String) request.get("hostName");
     }
 
     @Nullable
     @Override
-    public Integer getHostPort(Map<String, Object> request) {
+    public Integer getServerPort(Map<String, Object> request) {
       return (Integer) request.get("hostPort");
     }
   }
@@ -170,7 +170,7 @@ class HttpServerAttributesExtractorStableSemconvTest {
     extractor.onStart(startAttributes, Context.root(), request);
     assertThat(startAttributes.build())
         .containsOnly(
-            entry(SemanticAttributes.NET_HOST_NAME, "github.com"),
+            entry(NetworkAttributes.SERVER_ADDRESS, "github.com"),
             entry(HttpAttributes.HTTP_REQUEST_METHOD, "POST"),
             entry(UrlAttributes.URL_SCHEME, "http"),
             entry(UrlAttributes.URL_PATH, "/repositories/1"),

+ 13 - 13
instrumentation-api-semconv/src/testStableHttpSemconv/java/io/opentelemetry/instrumentation/api/instrumenter/net/NetClientAttributesExtractorStableSemconvTest.java

@@ -14,7 +14,6 @@ import io.opentelemetry.api.common.AttributesBuilder;
 import io.opentelemetry.context.Context;
 import io.opentelemetry.instrumentation.api.instrumenter.AttributesExtractor;
 import io.opentelemetry.instrumentation.api.instrumenter.network.internal.NetworkAttributes;
-import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
 import java.util.HashMap;
 import java.util.Map;
 import javax.annotation.Nullable;
@@ -59,12 +58,12 @@ class NetClientAttributesExtractorStableSemconvTest {
     }
 
     @Override
-    public String getPeerName(Map<String, String> request) {
+    public String getServerAddress(Map<String, String> request) {
       return request.get("peerName");
     }
 
     @Override
-    public Integer getPeerPort(Map<String, String> request) {
+    public Integer getServerPort(Map<String, String> request) {
       String peerPort = request.get("peerPort");
       return peerPort == null ? null : Integer.valueOf(peerPort);
     }
@@ -75,17 +74,18 @@ class NetClientAttributesExtractorStableSemconvTest {
     }
 
     @Override
-    public String getSockPeerAddr(Map<String, String> request, Map<String, String> response) {
-      return response.get("sockPeerAddr");
+    public String getServerSocketDomain(Map<String, String> request, Map<String, String> response) {
+      return response.get("sockPeerName");
     }
 
     @Override
-    public String getSockPeerName(Map<String, String> request, Map<String, String> response) {
-      return response.get("sockPeerName");
+    public String getServerSocketAddress(
+        Map<String, String> request, Map<String, String> response) {
+      return response.get("sockPeerAddr");
     }
 
     @Override
-    public Integer getSockPeerPort(Map<String, String> request, Map<String, String> response) {
+    public Integer getServerSocketPort(Map<String, String> request, Map<String, String> response) {
       String sockPeerPort = response.get("sockPeerPort");
       return sockPeerPort == null ? null : Integer.valueOf(sockPeerPort);
     }
@@ -122,8 +122,8 @@ class NetClientAttributesExtractorStableSemconvTest {
     // then
     assertThat(startAttributes.build())
         .containsOnly(
-            entry(SemanticAttributes.NET_PEER_NAME, "opentelemetry.io"),
-            entry(SemanticAttributes.NET_PEER_PORT, 42L));
+            entry(NetworkAttributes.SERVER_ADDRESS, "opentelemetry.io"),
+            entry(NetworkAttributes.SERVER_PORT, 42L));
 
     assertThat(endAttributes.build())
         .containsOnly(
@@ -131,8 +131,8 @@ class NetClientAttributesExtractorStableSemconvTest {
             entry(NetworkAttributes.NETWORK_TYPE, "ipv6"),
             entry(NetworkAttributes.NETWORK_PROTOCOL_NAME, "http"),
             entry(NetworkAttributes.NETWORK_PROTOCOL_VERSION, "1.1"),
-            entry(SemanticAttributes.NET_SOCK_PEER_ADDR, "1:2:3:4::"),
-            entry(SemanticAttributes.NET_SOCK_PEER_NAME, "proxy.opentelemetry.io"),
-            entry(SemanticAttributes.NET_SOCK_PEER_PORT, 123L));
+            entry(NetworkAttributes.SERVER_SOCKET_DOMAIN, "proxy.opentelemetry.io"),
+            entry(NetworkAttributes.SERVER_SOCKET_ADDRESS, "1:2:3:4::"),
+            entry(NetworkAttributes.SERVER_SOCKET_PORT, 123L));
   }
 }

+ 10 - 10
instrumentation-api-semconv/src/testStableHttpSemconv/java/io/opentelemetry/instrumentation/api/instrumenter/net/NetServerAttributesExtractorStableSemconvTest.java

@@ -56,13 +56,13 @@ class NetServerAttributesExtractorStableSemconvTest {
 
     @Nullable
     @Override
-    public String getHostName(Map<String, String> request) {
+    public String getServerAddress(Map<String, String> request) {
       return request.get("hostName");
     }
 
     @Nullable
     @Override
-    public Integer getHostPort(Map<String, String> request) {
+    public Integer getServerPort(Map<String, String> request) {
       String hostPort = request.get("hostPort");
       return hostPort == null ? null : Integer.valueOf(hostPort);
     }
@@ -86,13 +86,13 @@ class NetServerAttributesExtractorStableSemconvTest {
 
     @Nullable
     @Override
-    public String getSockHostAddr(Map<String, String> request) {
+    public String getServerSocketAddress(Map<String, String> request, Void response) {
       return request.get("sockHostAddr");
     }
 
     @Nullable
     @Override
-    public Integer getSockHostPort(Map<String, String> request) {
+    public Integer getServerSocketPort(Map<String, String> request, Void response) {
       String sockHostPort = request.get("sockHostPort");
       return sockHostPort == null ? null : Integer.valueOf(sockHostPort);
     }
@@ -130,18 +130,18 @@ class NetServerAttributesExtractorStableSemconvTest {
     // then
     assertThat(startAttributes.build())
         .containsOnly(
-            entry(SemanticAttributes.NET_HOST_NAME, "opentelemetry.io"),
-            entry(SemanticAttributes.NET_HOST_PORT, 80L),
+            entry(NetworkAttributes.SERVER_ADDRESS, "opentelemetry.io"),
+            entry(NetworkAttributes.SERVER_PORT, 80L),
             entry(SemanticAttributes.NET_SOCK_PEER_ADDR, "1:2:3:4::"),
-            entry(SemanticAttributes.NET_SOCK_PEER_PORT, 42L),
-            entry(SemanticAttributes.NET_SOCK_HOST_ADDR, "4:3:2:1::"),
-            entry(SemanticAttributes.NET_SOCK_HOST_PORT, 8080L));
+            entry(SemanticAttributes.NET_SOCK_PEER_PORT, 42L));
 
     assertThat(endAttributes.build())
         .containsOnly(
             entry(NetworkAttributes.NETWORK_TRANSPORT, "tcp"),
             entry(NetworkAttributes.NETWORK_TYPE, "ipv6"),
             entry(NetworkAttributes.NETWORK_PROTOCOL_NAME, "http"),
-            entry(NetworkAttributes.NETWORK_PROTOCOL_VERSION, "1.1"));
+            entry(NetworkAttributes.NETWORK_PROTOCOL_VERSION, "1.1"),
+            entry(NetworkAttributes.SERVER_SOCKET_ADDRESS, "4:3:2:1::"),
+            entry(NetworkAttributes.SERVER_SOCKET_PORT, 8080L));
   }
 }

+ 3 - 3
instrumentation-api/src/jmh/java/io/opentelemetry/instrumentation/api/instrumenter/InstrumenterBenchmark.java

@@ -107,19 +107,19 @@ public class InstrumenterBenchmark {
 
     @Nullable
     @Override
-    public String getPeerName(Void request) {
+    public String getServerAddress(Void request) {
       return null;
     }
 
     @Nullable
     @Override
-    public Integer getPeerPort(Void request) {
+    public Integer getServerPort(Void request) {
       return null;
     }
 
     @Nullable
     @Override
-    public InetSocketAddress getPeerSocketAddress(Void request, @Nullable Void response) {
+    public InetSocketAddress getServerInetSocketAddress(Void request, @Nullable Void response) {
       return PEER_ADDRESS;
     }
   }

+ 2 - 2
instrumentation/akka/akka-http-10.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/akkahttp/client/AkkaHttpNetAttributesGetter.java

@@ -28,12 +28,12 @@ class AkkaHttpNetAttributesGetter implements NetClientAttributesGetter<HttpReque
   }
 
   @Override
-  public String getPeerName(HttpRequest httpRequest) {
+  public String getServerAddress(HttpRequest httpRequest) {
     return httpRequest.uri().authority().host().address();
   }
 
   @Override
-  public Integer getPeerPort(HttpRequest httpRequest) {
+  public Integer getServerPort(HttpRequest httpRequest) {
     return httpRequest.uri().authority().port();
   }
 }

+ 2 - 2
instrumentation/akka/akka-http-10.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/akkahttp/server/AkkaNetServerAttributesGetter.java

@@ -30,13 +30,13 @@ class AkkaNetServerAttributesGetter
 
   @Nullable
   @Override
-  public String getHostName(HttpRequest request) {
+  public String getServerAddress(HttpRequest request) {
     Uri.Host host = request.uri().authority().host();
     return host.isEmpty() ? null : host.address();
   }
 
   @Override
-  public Integer getHostPort(HttpRequest request) {
+  public Integer getServerPort(HttpRequest request) {
     return request.uri().authority().port();
   }
 }

+ 4 - 3
instrumentation/apache-dubbo-2.7/library-autoconfigure/src/main/java/io/opentelemetry/instrumentation/apachedubbo/v2_7/internal/DubboNetClientAttributesGetter.java

@@ -20,18 +20,19 @@ public final class DubboNetClientAttributesGetter
 
   @Nullable
   @Override
-  public String getPeerName(DubboRequest request) {
+  public String getServerAddress(DubboRequest request) {
     return request.url().getHost();
   }
 
   @Override
-  public Integer getPeerPort(DubboRequest request) {
+  public Integer getServerPort(DubboRequest request) {
     return request.url().getPort();
   }
 
   @Override
   @Nullable
-  public InetSocketAddress getPeerSocketAddress(DubboRequest request, @Nullable Result response) {
+  public InetSocketAddress getServerInetSocketAddress(
+      DubboRequest request, @Nullable Result response) {
     return request.remoteAddress();
   }
 }

+ 4 - 3
instrumentation/apache-dubbo-2.7/library-autoconfigure/src/main/java/io/opentelemetry/instrumentation/apachedubbo/v2_7/internal/DubboNetServerAttributesGetter.java

@@ -20,13 +20,13 @@ public final class DubboNetServerAttributesGetter
 
   @Nullable
   @Override
-  public String getHostName(DubboRequest request) {
+  public String getServerAddress(DubboRequest request) {
     return null;
   }
 
   @Nullable
   @Override
-  public Integer getHostPort(DubboRequest request) {
+  public Integer getServerPort(DubboRequest request) {
     return null;
   }
 
@@ -38,7 +38,8 @@ public final class DubboNetServerAttributesGetter
 
   @Nullable
   @Override
-  public InetSocketAddress getHostSocketAddress(DubboRequest request) {
+  public InetSocketAddress getServerInetSocketAddress(
+      DubboRequest request, @Nullable Result result) {
     return request.localAddress();
   }
 }

+ 6 - 6
instrumentation/apache-httpasyncclient-4.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachehttpasyncclient/ApacheHttpAsyncClientNetAttributesGetter.java

@@ -27,19 +27,19 @@ final class ApacheHttpAsyncClientNetAttributesGetter
 
   @Override
   @Nullable
-  public String getPeerName(ApacheHttpClientRequest request) {
-    return request.getPeerName();
+  public String getServerAddress(ApacheHttpClientRequest request) {
+    return request.getServerAddress();
   }
 
   @Override
-  public Integer getPeerPort(ApacheHttpClientRequest request) {
-    return request.getPeerPort();
+  public Integer getServerPort(ApacheHttpClientRequest request) {
+    return request.getServerPort();
   }
 
   @Nullable
   @Override
-  public InetSocketAddress getPeerSocketAddress(
+  public InetSocketAddress getServerInetSocketAddress(
       ApacheHttpClientRequest request, @Nullable HttpResponse response) {
-    return request.peerSocketAddress();
+    return request.getServerSocketAddress();
   }
 }

+ 3 - 3
instrumentation/apache-httpasyncclient-4.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachehttpasyncclient/ApacheHttpClientRequest.java

@@ -78,11 +78,11 @@ public final class ApacheHttpClientRequest {
     return protocolVersion.getMajor() + "." + protocolVersion.getMinor();
   }
 
-  public String getPeerName() {
+  public String getServerAddress() {
     return uri != null ? uri.getHost() : null;
   }
 
-  public Integer getPeerPort() {
+  public Integer getServerPort() {
     if (uri == null) {
       return null;
     }
@@ -136,7 +136,7 @@ public final class ApacheHttpClientRequest {
   }
 
   @Nullable
-  public InetSocketAddress peerSocketAddress() {
+  public InetSocketAddress getServerSocketAddress() {
     if (target == null) {
       return null;
     }

+ 2 - 2
instrumentation/apache-httpclient/apache-httpclient-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachehttpclient/v2_0/ApacheHttpClientNetAttributesGetter.java

@@ -30,14 +30,14 @@ final class ApacheHttpClientNetAttributesGetter
 
   @Override
   @Nullable
-  public String getPeerName(HttpMethod request) {
+  public String getServerAddress(HttpMethod request) {
     HostConfiguration hostConfiguration = request.getHostConfiguration();
     return hostConfiguration != null ? hostConfiguration.getHost() : null;
   }
 
   @Override
   @Nullable
-  public Integer getPeerPort(HttpMethod request) {
+  public Integer getServerPort(HttpMethod request) {
     HostConfiguration hostConfiguration = request.getHostConfiguration();
     return hostConfiguration != null ? hostConfiguration.getPort() : null;
   }

+ 4 - 4
instrumentation/apache-httpclient/apache-httpclient-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachehttpclient/v4_0/ApacheHttpClientNetAttributesGetter.java

@@ -26,12 +26,12 @@ final class ApacheHttpClientNetAttributesGetter
 
   @Override
   @Nullable
-  public String getPeerName(ApacheHttpClientRequest request) {
-    return request.getPeerName();
+  public String getServerAddress(ApacheHttpClientRequest request) {
+    return request.getServerAddress();
   }
 
   @Override
-  public Integer getPeerPort(ApacheHttpClientRequest request) {
-    return request.getPeerPort();
+  public Integer getServerPort(ApacheHttpClientRequest request) {
+    return request.getServerPort();
   }
 }

+ 2 - 2
instrumentation/apache-httpclient/apache-httpclient-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachehttpclient/v4_0/ApacheHttpClientRequest.java

@@ -81,12 +81,12 @@ public final class ApacheHttpClientRequest {
   }
 
   @Nullable
-  public String getPeerName() {
+  public String getServerAddress() {
     return uri == null ? null : uri.getHost();
   }
 
   @Nullable
-  public Integer getPeerPort() {
+  public Integer getServerPort() {
     return uri == null ? null : uri.getPort();
   }
 

+ 6 - 6
instrumentation/apache-httpclient/apache-httpclient-4.3/library/src/main/java/io/opentelemetry/instrumentation/apachehttpclient/v4_3/ApacheHttpClientNetAttributesGetter.java

@@ -27,20 +27,20 @@ final class ApacheHttpClientNetAttributesGetter
 
   @Override
   @Nullable
-  public String getPeerName(ApacheHttpClientRequest request) {
-    return request.getPeerName();
+  public String getServerAddress(ApacheHttpClientRequest request) {
+    return request.getServerAddress();
   }
 
   @Override
   @Nullable
-  public Integer getPeerPort(ApacheHttpClientRequest request) {
-    return request.getPeerPort();
+  public Integer getServerPort(ApacheHttpClientRequest request) {
+    return request.getServerPort();
   }
 
   @Nullable
   @Override
-  public InetSocketAddress getPeerSocketAddress(
+  public InetSocketAddress getServerInetSocketAddress(
       ApacheHttpClientRequest request, @Nullable HttpResponse response) {
-    return request.peerSocketAddress();
+    return request.getServerSocketAddress();
   }
 }

+ 3 - 3
instrumentation/apache-httpclient/apache-httpclient-4.3/library/src/main/java/io/opentelemetry/instrumentation/apachehttpclient/v4_3/ApacheHttpClientRequest.java

@@ -85,12 +85,12 @@ public final class ApacheHttpClientRequest {
   }
 
   @Nullable
-  public String getPeerName() {
+  public String getServerAddress() {
     return uri == null ? null : uri.getHost();
   }
 
   @Nullable
-  public Integer getPeerPort() {
+  public Integer getServerPort() {
     return uri == null ? null : uri.getPort();
   }
 
@@ -123,7 +123,7 @@ public final class ApacheHttpClientRequest {
   }
 
   @Nullable
-  public InetSocketAddress peerSocketAddress() {
+  public InetSocketAddress getServerSocketAddress() {
     if (target == null) {
       return null;
     }

+ 2 - 2
instrumentation/apache-httpclient/apache-httpclient-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachehttpclient/v5_0/ApacheHttpClientNetAttributesGetter.java

@@ -36,12 +36,12 @@ final class ApacheHttpClientNetAttributesGetter
 
   @Override
   @Nullable
-  public String getPeerName(HttpRequest request) {
+  public String getServerAddress(HttpRequest request) {
     return request.getAuthority().getHostName();
   }
 
   @Override
-  public Integer getPeerPort(HttpRequest request) {
+  public Integer getServerPort(HttpRequest request) {
     return request.getAuthority().getPort();
   }
 

+ 4 - 3
instrumentation/armeria-1.3/library/src/main/java/io/opentelemetry/instrumentation/armeria/v1_3/ArmeriaNetServerAttributesGetter.java

@@ -29,13 +29,13 @@ final class ArmeriaNetServerAttributesGetter
 
   @Nullable
   @Override
-  public String getHostName(RequestContext ctx) {
+  public String getServerAddress(RequestContext ctx) {
     return null;
   }
 
   @Nullable
   @Override
-  public Integer getHostPort(RequestContext ctx) {
+  public Integer getServerPort(RequestContext ctx) {
     return null;
   }
 
@@ -51,7 +51,8 @@ final class ArmeriaNetServerAttributesGetter
 
   @Nullable
   @Override
-  public InetSocketAddress getHostSocketAddress(RequestContext ctx) {
+  public InetSocketAddress getServerInetSocketAddress(
+      RequestContext ctx, @Nullable RequestLog log) {
     SocketAddress address = ctx.localAddress();
     if (address instanceof InetSocketAddress) {
       return (InetSocketAddress) address;

+ 3 - 3
instrumentation/armeria-1.3/library/src/main/java/io/opentelemetry/instrumentation/armeria/v1_3/internal/ArmeriaNetClientAttributesGetter.java

@@ -34,7 +34,7 @@ public final class ArmeriaNetClientAttributesGetter
 
   @Nullable
   @Override
-  public String getPeerName(RequestContext ctx) {
+  public String getServerAddress(RequestContext ctx) {
     HttpRequest request = request(ctx);
     String authority = request.authority();
     if (authority == null) {
@@ -46,7 +46,7 @@ public final class ArmeriaNetClientAttributesGetter
 
   @Nullable
   @Override
-  public Integer getPeerPort(RequestContext ctx) {
+  public Integer getServerPort(RequestContext ctx) {
     HttpRequest request = request(ctx);
     String authority = request.authority();
     if (authority == null) {
@@ -65,7 +65,7 @@ public final class ArmeriaNetClientAttributesGetter
 
   @Override
   @Nullable
-  public InetSocketAddress getPeerSocketAddress(
+  public InetSocketAddress getServerInetSocketAddress(
       RequestContext ctx, @Nullable RequestLog requestLog) {
     SocketAddress address = ctx.remoteAddress();
     if (address instanceof InetSocketAddress) {

+ 2 - 2
instrumentation/async-http-client/async-http-client-1.9/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/asynchttpclient/v1_9/AsyncHttpClientNetAttributesGetter.java

@@ -26,12 +26,12 @@ final class AsyncHttpClientNetAttributesGetter
   }
 
   @Override
-  public String getPeerName(Request request) {
+  public String getServerAddress(Request request) {
     return request.getUri().getHost();
   }
 
   @Override
-  public Integer getPeerPort(Request request) {
+  public Integer getServerPort(Request request) {
     return request.getUri().getPort();
   }
 }

+ 3 - 3
instrumentation/async-http-client/async-http-client-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/asynchttpclient/v2_0/AsyncHttpClientNetAttributesGetter.java

@@ -51,18 +51,18 @@ final class AsyncHttpClientNetAttributesGetter
 
   @Nullable
   @Override
-  public String getPeerName(RequestContext request) {
+  public String getServerAddress(RequestContext request) {
     return request.getRequest().getUri().getHost();
   }
 
   @Override
-  public Integer getPeerPort(RequestContext request) {
+  public Integer getServerPort(RequestContext request) {
     return request.getRequest().getUri().getPort();
   }
 
   @Override
   @Nullable
-  public InetSocketAddress getPeerSocketAddress(
+  public InetSocketAddress getServerInetSocketAddress(
       RequestContext request, @Nullable Response response) {
     if (response != null && response.getRemoteAddress() instanceof InetSocketAddress) {
       return (InetSocketAddress) response.getRemoteAddress();

+ 2 - 2
instrumentation/aws-sdk/aws-sdk-1.11/library/src/main/java/io/opentelemetry/instrumentation/awssdk/v1_11/AwsSdkNetAttributesGetter.java

@@ -53,12 +53,12 @@ class AwsSdkNetAttributesGetter implements NetClientAttributesGetter<Request<?>,
 
   @Override
   @Nullable
-  public String getPeerName(Request<?> request) {
+  public String getServerAddress(Request<?> request) {
     return request.getEndpoint().getHost();
   }
 
   @Override
-  public Integer getPeerPort(Request<?> request) {
+  public Integer getServerPort(Request<?> request) {
     return request.getEndpoint().getPort();
   }
 }

+ 2 - 2
instrumentation/aws-sdk/aws-sdk-2.2/library/src/main/java/io/opentelemetry/instrumentation/awssdk/v2_2/AwsSdkNetAttributesGetter.java

@@ -16,14 +16,14 @@ class AwsSdkNetAttributesGetter
 
   @Override
   @Nullable
-  public String getPeerName(ExecutionAttributes request) {
+  public String getServerAddress(ExecutionAttributes request) {
     SdkHttpRequest httpRequest =
         request.getAttribute(TracingExecutionInterceptor.SDK_HTTP_REQUEST_ATTRIBUTE);
     return httpRequest.host();
   }
 
   @Override
-  public Integer getPeerPort(ExecutionAttributes request) {
+  public Integer getServerPort(ExecutionAttributes request) {
     SdkHttpRequest httpRequest =
         request.getAttribute(TracingExecutionInterceptor.SDK_HTTP_REQUEST_ATTRIBUTE);
     return httpRequest.port();

+ 3 - 3
instrumentation/cassandra/cassandra-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/cassandra/v3_0/CassandraNetAttributesGetter.java

@@ -15,19 +15,19 @@ final class CassandraNetAttributesGetter
 
   @Nullable
   @Override
-  public String getPeerName(CassandraRequest request) {
+  public String getServerAddress(CassandraRequest request) {
     return null;
   }
 
   @Nullable
   @Override
-  public Integer getPeerPort(CassandraRequest request) {
+  public Integer getServerPort(CassandraRequest request) {
     return null;
   }
 
   @Override
   @Nullable
-  public InetSocketAddress getPeerSocketAddress(
+  public InetSocketAddress getServerInetSocketAddress(
       CassandraRequest request, @Nullable ExecutionInfo executionInfo) {
     return executionInfo == null ? null : executionInfo.getQueriedHost().getSocketAddress();
   }

+ 3 - 3
instrumentation/cassandra/cassandra-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/cassandra/v4_0/CassandraNetAttributesGetter.java

@@ -17,19 +17,19 @@ final class CassandraNetAttributesGetter
 
   @Nullable
   @Override
-  public String getPeerName(CassandraRequest request) {
+  public String getServerAddress(CassandraRequest request) {
     return null;
   }
 
   @Nullable
   @Override
-  public Integer getPeerPort(CassandraRequest request) {
+  public Integer getServerPort(CassandraRequest request) {
     return null;
   }
 
   @Override
   @Nullable
-  public InetSocketAddress getPeerSocketAddress(
+  public InetSocketAddress getServerInetSocketAddress(
       CassandraRequest request, @Nullable ExecutionInfo executionInfo) {
     if (executionInfo == null) {
       return null;

+ 3 - 3
instrumentation/cassandra/cassandra-4.4/library/src/main/java/io/opentelemetry/instrumentation/cassandra/v4_4/CassandraNetAttributesGetter.java

@@ -17,19 +17,19 @@ final class CassandraNetAttributesGetter
 
   @Nullable
   @Override
-  public String getPeerName(CassandraRequest request) {
+  public String getServerAddress(CassandraRequest request) {
     return null;
   }
 
   @Nullable
   @Override
-  public Integer getPeerPort(CassandraRequest request) {
+  public Integer getServerPort(CassandraRequest request) {
     return null;
   }
 
   @Override
   @Nullable
-  public InetSocketAddress getPeerSocketAddress(
+  public InetSocketAddress getServerInetSocketAddress(
       CassandraRequest request, @Nullable ExecutionInfo executionInfo) {
     if (executionInfo == null) {
       return null;

+ 3 - 3
instrumentation/couchbase/couchbase-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/couchbase/v2_0/CouchbaseNetAttributesGetter.java

@@ -15,19 +15,19 @@ public class CouchbaseNetAttributesGetter
 
   @Nullable
   @Override
-  public String getPeerName(CouchbaseRequestInfo couchbaseRequest) {
+  public String getServerAddress(CouchbaseRequestInfo couchbaseRequest) {
     return null;
   }
 
   @Nullable
   @Override
-  public Integer getPeerPort(CouchbaseRequestInfo couchbaseRequest) {
+  public Integer getServerPort(CouchbaseRequestInfo couchbaseRequest) {
     return null;
   }
 
   @Nullable
   @Override
-  public InetSocketAddress getPeerSocketAddress(
+  public InetSocketAddress getServerInetSocketAddress(
       CouchbaseRequestInfo couchbaseRequest, @Nullable Void unused) {
     SocketAddress peerAddress = couchbaseRequest.getPeerAddress();
     if (peerAddress instanceof InetSocketAddress) {

+ 4 - 3
instrumentation/elasticsearch/elasticsearch-rest-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/elasticsearch/rest/ElasticsearchRestNetResponseAttributesGetter.java

@@ -15,13 +15,13 @@ final class ElasticsearchRestNetResponseAttributesGetter
 
   @Override
   @Nullable
-  public String getPeerName(ElasticsearchRestRequest request) {
+  public String getServerAddress(ElasticsearchRestRequest request) {
     return null;
   }
 
   @Override
   @Nullable
-  public Integer getPeerPort(ElasticsearchRestRequest request) {
+  public Integer getServerPort(ElasticsearchRestRequest request) {
     return null;
   }
 
@@ -37,7 +37,8 @@ final class ElasticsearchRestNetResponseAttributesGetter
 
   @Override
   @Nullable
-  public String getSockPeerAddr(ElasticsearchRestRequest request, @Nullable Response response) {
+  public String getServerSocketAddress(
+      ElasticsearchRestRequest request, @Nullable Response response) {
     if (response != null && response.getHost().getAddress() != null) {
       return response.getHost().getAddress().getHostAddress();
     }

+ 3 - 3
instrumentation/elasticsearch/elasticsearch-transport-6.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/elasticsearch/transport/v6_0/Elasticsearch6TransportNetAttributesGetter.java

@@ -16,19 +16,19 @@ public class Elasticsearch6TransportNetAttributesGetter
 
   @Nullable
   @Override
-  public String getPeerName(ElasticTransportRequest request) {
+  public String getServerAddress(ElasticTransportRequest request) {
     return null;
   }
 
   @Nullable
   @Override
-  public Integer getPeerPort(ElasticTransportRequest request) {
+  public Integer getServerPort(ElasticTransportRequest request) {
     return null;
   }
 
   @Override
   @Nullable
-  public InetSocketAddress getPeerSocketAddress(
+  public InetSocketAddress getServerInetSocketAddress(
       ElasticTransportRequest request, @Nullable ActionResponse response) {
     if (response != null && response.remoteAddress() != null) {
       return response.remoteAddress().address();

+ 5 - 5
instrumentation/elasticsearch/elasticsearch-transport-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/elasticsearch/transport/ElasticTransportNetResponseAttributesGetter.java

@@ -14,19 +14,19 @@ public class ElasticTransportNetResponseAttributesGetter
 
   @Override
   @Nullable
-  public String getPeerName(ElasticTransportRequest request) {
+  public String getServerAddress(ElasticTransportRequest request) {
     return null;
   }
 
   @Override
   @Nullable
-  public Integer getPeerPort(ElasticTransportRequest request) {
+  public Integer getServerPort(ElasticTransportRequest request) {
     return null;
   }
 
   @Override
   @Nullable
-  public String getSockPeerAddr(
+  public String getServerSocketAddress(
       ElasticTransportRequest request, @Nullable ActionResponse response) {
     if (response != null && response.remoteAddress() != null) {
       return response.remoteAddress().getAddress();
@@ -36,7 +36,7 @@ public class ElasticTransportNetResponseAttributesGetter
 
   @Nullable
   @Override
-  public String getSockPeerName(
+  public String getServerSocketDomain(
       ElasticTransportRequest request, @Nullable ActionResponse response) {
     if (response != null && response.remoteAddress() != null) {
       return response.remoteAddress().getHost();
@@ -46,7 +46,7 @@ public class ElasticTransportNetResponseAttributesGetter
 
   @Nullable
   @Override
-  public Integer getSockPeerPort(
+  public Integer getServerSocketPort(
       ElasticTransportRequest request, @Nullable ActionResponse response) {
     if (response != null && response.remoteAddress() != null) {
       return response.remoteAddress().getPort();

+ 2 - 2
instrumentation/google-http-client-1.19/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/googlehttpclient/GoogleHttpClientNetAttributesGetter.java

@@ -15,12 +15,12 @@ final class GoogleHttpClientNetAttributesGetter
 
   @Override
   @Nullable
-  public String getPeerName(HttpRequest request) {
+  public String getServerAddress(HttpRequest request) {
     return request.getUrl().getHost();
   }
 
   @Override
-  public Integer getPeerPort(HttpRequest request) {
+  public Integer getServerPort(HttpRequest request) {
     return request.getUrl().getPort();
   }
 }

+ 4 - 4
instrumentation/grizzly-2.3/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/grizzly/GrizzlyNetAttributesGetter.java

@@ -68,12 +68,12 @@ final class GrizzlyNetAttributesGetter
 
   @Nullable
   @Override
-  public String getHostName(HttpRequestPacket request) {
+  public String getServerAddress(HttpRequestPacket request) {
     return request.getLocalHost();
   }
 
   @Override
-  public Integer getHostPort(HttpRequestPacket request) {
+  public Integer getServerPort(HttpRequestPacket request) {
     return request.getServerPort();
   }
 
@@ -90,12 +90,12 @@ final class GrizzlyNetAttributesGetter
 
   @Nullable
   @Override
-  public String getSockHostAddr(HttpRequestPacket request) {
+  public String getServerSocketAddress(HttpRequestPacket request, HttpResponsePacket response) {
     return request.getLocalAddress();
   }
 
   @Override
-  public Integer getSockHostPort(HttpRequestPacket request) {
+  public Integer getServerSocketPort(HttpRequestPacket request, HttpResponsePacket response) {
     return request.getLocalPort();
   }
 }

+ 4 - 3
instrumentation/grpc-1.6/library/src/main/java/io/opentelemetry/instrumentation/grpc/v1_6/internal/GrpcNetClientAttributesGetter.java

@@ -21,18 +21,19 @@ public final class GrpcNetClientAttributesGetter
 
   @Nullable
   @Override
-  public String getPeerName(GrpcRequest grpcRequest) {
+  public String getServerAddress(GrpcRequest grpcRequest) {
     return grpcRequest.getLogicalHost();
   }
 
   @Override
-  public Integer getPeerPort(GrpcRequest grpcRequest) {
+  public Integer getServerPort(GrpcRequest grpcRequest) {
     return grpcRequest.getLogicalPort();
   }
 
   @Override
   @Nullable
-  public InetSocketAddress getPeerSocketAddress(GrpcRequest request, @Nullable Status response) {
+  public InetSocketAddress getServerInetSocketAddress(
+      GrpcRequest request, @Nullable Status response) {
     SocketAddress address = request.getPeerSocketAddress();
     if (address instanceof InetSocketAddress) {
       return (InetSocketAddress) address;

+ 4 - 3
instrumentation/grpc-1.6/library/src/main/java/io/opentelemetry/instrumentation/grpc/v1_6/internal/GrpcNetServerAttributesGetter.java

@@ -21,12 +21,12 @@ public final class GrpcNetServerAttributesGetter
 
   @Nullable
   @Override
-  public String getHostName(GrpcRequest grpcRequest) {
+  public String getServerAddress(GrpcRequest grpcRequest) {
     return grpcRequest.getLogicalHost();
   }
 
   @Override
-  public Integer getHostPort(GrpcRequest grpcRequest) {
+  public Integer getServerPort(GrpcRequest grpcRequest) {
     return grpcRequest.getLogicalPort();
   }
 
@@ -42,7 +42,8 @@ public final class GrpcNetServerAttributesGetter
 
   @Nullable
   @Override
-  public InetSocketAddress getHostSocketAddress(GrpcRequest grpcRequest) {
+  public InetSocketAddress getServerInetSocketAddress(
+      GrpcRequest grpcRequest, @Nullable Status status) {
     // TODO: later version introduces TRANSPORT_ATTR_LOCAL_ADDR, might be a good idea to use it
     return null;
   }

+ 2 - 2
instrumentation/http-url-connection/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/httpurlconnection/HttpUrlNetAttributesGetter.java

@@ -26,12 +26,12 @@ class HttpUrlNetAttributesGetter implements NetClientAttributesGetter<HttpURLCon
   }
 
   @Override
-  public String getPeerName(HttpURLConnection connection) {
+  public String getServerAddress(HttpURLConnection connection) {
     return connection.getURL().getHost();
   }
 
   @Override
-  public Integer getPeerPort(HttpURLConnection connection) {
+  public Integer getServerPort(HttpURLConnection connection) {
     return connection.getURL().getPort();
   }
 }

+ 2 - 2
instrumentation/java-http-client/library/src/main/java/io/opentelemetry/instrumentation/httpclient/internal/JavaHttpClientNetAttributesGetter.java

@@ -47,13 +47,13 @@ public class JavaHttpClientNetAttributesGetter
 
   @Override
   @Nullable
-  public String getPeerName(HttpRequest request) {
+  public String getServerAddress(HttpRequest request) {
     return request.uri().getHost();
   }
 
   @Override
   @Nullable
-  public Integer getPeerPort(HttpRequest request) {
+  public Integer getServerPort(HttpRequest request) {
     return request.uri().getPort();
   }
 }

+ 2 - 2
instrumentation/jaxrs-client/jaxrs-client-1.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jaxrsclient/v1_1/JaxRsClientNetAttributesGetter.java

@@ -15,12 +15,12 @@ final class JaxRsClientNetAttributesGetter
 
   @Override
   @Nullable
-  public String getPeerName(ClientRequest request) {
+  public String getServerAddress(ClientRequest request) {
     return request.getURI().getHost();
   }
 
   @Override
-  public Integer getPeerPort(ClientRequest request) {
+  public Integer getServerPort(ClientRequest request) {
     return request.getURI().getPort();
   }
 }

+ 2 - 2
instrumentation/jdbc/library/src/main/java/io/opentelemetry/instrumentation/jdbc/internal/JdbcNetAttributesGetter.java

@@ -16,13 +16,13 @@ public final class JdbcNetAttributesGetter implements NetClientAttributesGetter<
 
   @Nullable
   @Override
-  public String getPeerName(DbRequest request) {
+  public String getServerAddress(DbRequest request) {
     return request.getDbInfo().getHost();
   }
 
   @Nullable
   @Override
-  public Integer getPeerPort(DbRequest request) {
+  public Integer getServerPort(DbRequest request) {
     return request.getDbInfo().getPort();
   }
 }

+ 2 - 2
instrumentation/jedis/jedis-1.4/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jedis/v1_4/JedisNetAttributesGetter.java

@@ -10,12 +10,12 @@ import io.opentelemetry.instrumentation.api.instrumenter.net.NetClientAttributes
 final class JedisNetAttributesGetter implements NetClientAttributesGetter<JedisRequest, Void> {
 
   @Override
-  public String getPeerName(JedisRequest request) {
+  public String getServerAddress(JedisRequest request) {
     return request.getConnection().getHost();
   }
 
   @Override
-  public Integer getPeerPort(JedisRequest request) {
+  public Integer getServerPort(JedisRequest request) {
     return request.getConnection().getPort();
   }
 }

+ 4 - 3
instrumentation/jedis/jedis-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jedis/v3_0/JedisNetAttributesGetter.java

@@ -14,18 +14,19 @@ final class JedisNetAttributesGetter implements NetClientAttributesGetter<JedisR
 
   @Nullable
   @Override
-  public String getPeerName(JedisRequest jedisRequest) {
+  public String getServerAddress(JedisRequest jedisRequest) {
     return jedisRequest.getConnection().getHost();
   }
 
   @Override
-  public Integer getPeerPort(JedisRequest jedisRequest) {
+  public Integer getServerPort(JedisRequest jedisRequest) {
     return jedisRequest.getConnection().getPort();
   }
 
   @Override
   @Nullable
-  public InetSocketAddress getPeerSocketAddress(JedisRequest jedisRequest, @Nullable Void unused) {
+  public InetSocketAddress getServerInetSocketAddress(
+      JedisRequest jedisRequest, @Nullable Void unused) {
     Socket socket = jedisRequest.getConnection().getSocket();
     if (socket != null && socket.getRemoteSocketAddress() instanceof InetSocketAddress) {
       return (InetSocketAddress) socket.getRemoteSocketAddress();

+ 4 - 3
instrumentation/jedis/jedis-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jedis/v4_0/JedisNetAttributesGetter.java

@@ -14,19 +14,20 @@ final class JedisNetAttributesGetter implements NetClientAttributesGetter<JedisR
 
   @Nullable
   @Override
-  public String getPeerName(JedisRequest jedisRequest) {
+  public String getServerAddress(JedisRequest jedisRequest) {
     return null;
   }
 
   @Nullable
   @Override
-  public Integer getPeerPort(JedisRequest jedisRequest) {
+  public Integer getServerPort(JedisRequest jedisRequest) {
     return null;
   }
 
   @Override
   @Nullable
-  public InetSocketAddress getPeerSocketAddress(JedisRequest jedisRequest, @Nullable Void unused) {
+  public InetSocketAddress getServerInetSocketAddress(
+      JedisRequest jedisRequest, @Nullable Void unused) {
     SocketAddress socketAddress = jedisRequest.getRemoteSocketAddress();
     if (socketAddress instanceof InetSocketAddress) {
       return (InetSocketAddress) socketAddress;

+ 2 - 2
instrumentation/jetty-httpclient/jetty-httpclient-9.2/library/src/main/java/io/opentelemetry/instrumentation/jetty/httpclient/v9_2/internal/JettyHttpClientNetAttributesGetter.java

@@ -46,13 +46,13 @@ public class JettyHttpClientNetAttributesGetter
 
   @Override
   @Nullable
-  public String getPeerName(Request request) {
+  public String getServerAddress(Request request) {
     return request.getHost();
   }
 
   @Override
   @Nullable
-  public Integer getPeerPort(Request request) {
+  public Integer getServerPort(Request request) {
     return request.getPort();
   }
 }

+ 2 - 2
instrumentation/jodd-http-4.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/joddhttp/v4_2/JoddHttpNetAttributesGetter.java

@@ -35,12 +35,12 @@ final class JoddHttpNetAttributesGetter
 
   @Override
   @Nullable
-  public String getPeerName(HttpRequest request) {
+  public String getServerAddress(HttpRequest request) {
     return request.host();
   }
 
   @Override
-  public Integer getPeerPort(HttpRequest request) {
+  public Integer getServerPort(HttpRequest request) {
     return request.port();
   }
 }

+ 2 - 2
instrumentation/ktor/ktor-1.0/library/src/main/kotlin/io/opentelemetry/instrumentation/ktor/v1_0/KtorNetServerAttributesGetter.kt

@@ -26,11 +26,11 @@ internal class KtorNetServerAttributesGetter : NetServerAttributesGetter<Applica
     return null
   }
 
-  override fun getHostName(request: ApplicationRequest): String {
+  override fun getServerAddress(request: ApplicationRequest): String {
     return request.local.host
   }
 
-  override fun getHostPort(request: ApplicationRequest): Int {
+  override fun getServerPort(request: ApplicationRequest): Int {
     return request.local.port
   }
 }

+ 2 - 2
instrumentation/ktor/ktor-2.0/library/src/main/kotlin/io/opentelemetry/instrumentation/ktor/v2_0/client/KtorNetClientAttributesGetter.kt

@@ -19,7 +19,7 @@ internal object KtorNetClientAttributesGetter : NetClientAttributesGetter<HttpRe
     return "${version.major}.${version.minor}"
   }
 
-  override fun getPeerName(request: HttpRequestData) = request.url.host
+  override fun getServerAddress(request: HttpRequestData) = request.url.host
 
-  override fun getPeerPort(request: HttpRequestData) = request.url.port
+  override fun getServerPort(request: HttpRequestData) = request.url.port
 }

+ 2 - 2
instrumentation/ktor/ktor-2.0/library/src/main/kotlin/io/opentelemetry/instrumentation/ktor/v2_0/server/KtorNetServerAttributesGetter.kt

@@ -18,11 +18,11 @@ internal class KtorNetServerAttributesGetter : NetServerAttributesGetter<Applica
   override fun getNetworkProtocolVersion(request: ApplicationRequest, response: ApplicationResponse?): String? =
     if (request.httpVersion.startsWith("HTTP/")) request.httpVersion.substring("HTTP/".length) else null
 
-  override fun getHostName(request: ApplicationRequest): String {
+  override fun getServerAddress(request: ApplicationRequest): String {
     return request.local.host
   }
 
-  override fun getHostPort(request: ApplicationRequest): Int {
+  override fun getServerPort(request: ApplicationRequest): Int {
     return request.local.port
   }
 

+ 2 - 2
instrumentation/kubernetes-client-7.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/kubernetesclient/KubernetesNetAttributesGetter.java

@@ -12,12 +12,12 @@ import okhttp3.Request;
 class KubernetesNetAttributesGetter implements NetClientAttributesGetter<Request, ApiResponse<?>> {
 
   @Override
-  public String getPeerName(Request request) {
+  public String getServerAddress(Request request) {
     return request.url().host();
   }
 
   @Override
-  public Integer getPeerPort(Request request) {
+  public Integer getServerPort(Request request) {
     return request.url().port();
   }
 }

+ 2 - 2
instrumentation/lettuce/lettuce-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/lettuce/v4_0/LettuceConnectNetAttributesGetter.java

@@ -11,12 +11,12 @@ import io.opentelemetry.instrumentation.api.instrumenter.net.NetClientAttributes
 final class LettuceConnectNetAttributesGetter implements NetClientAttributesGetter<RedisURI, Void> {
 
   @Override
-  public String getPeerName(RedisURI redisUri) {
+  public String getServerAddress(RedisURI redisUri) {
     return redisUri.getHost();
   }
 
   @Override
-  public Integer getPeerPort(RedisURI redisUri) {
+  public Integer getServerPort(RedisURI redisUri) {
     return redisUri.getPort();
   }
 }

+ 2 - 2
instrumentation/lettuce/lettuce-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/lettuce/v5_0/LettuceConnectNetAttributesGetter.java

@@ -11,12 +11,12 @@ import io.opentelemetry.instrumentation.api.instrumenter.net.NetClientAttributes
 final class LettuceConnectNetAttributesGetter implements NetClientAttributesGetter<RedisURI, Void> {
 
   @Override
-  public String getPeerName(RedisURI redisUri) {
+  public String getServerAddress(RedisURI redisUri) {
     return redisUri.getHost();
   }
 
   @Override
-  public Integer getPeerPort(RedisURI redisUri) {
+  public Integer getServerPort(RedisURI redisUri) {
     return redisUri.getPort();
   }
 }

+ 3 - 3
instrumentation/lettuce/lettuce-5.1/library/src/main/java/io/opentelemetry/instrumentation/lettuce/v5_1/LettuceNetAttributesGetter.java

@@ -15,19 +15,19 @@ final class LettuceNetAttributesGetter
 
   @Nullable
   @Override
-  public String getPeerName(OpenTelemetryEndpoint openTelemetryEndpoint) {
+  public String getServerAddress(OpenTelemetryEndpoint openTelemetryEndpoint) {
     return null;
   }
 
   @Nullable
   @Override
-  public Integer getPeerPort(OpenTelemetryEndpoint openTelemetryEndpoint) {
+  public Integer getServerPort(OpenTelemetryEndpoint openTelemetryEndpoint) {
     return null;
   }
 
   @Nullable
   @Override
-  public InetSocketAddress getPeerSocketAddress(
+  public InetSocketAddress getServerInetSocketAddress(
       OpenTelemetryEndpoint openTelemetryEndpoint, @Nullable Void unused) {
     return openTelemetryEndpoint.address;
   }

+ 9 - 0
instrumentation/liberty/compile-stub/src/main/java/com/ibm/ws/http/channel/internal/inbound/HttpInboundServiceContextImpl.java

@@ -6,6 +6,7 @@
 package com.ibm.ws.http.channel.internal.inbound;
 
 import com.ibm.wsspi.http.channel.HttpRequestMessage;
+import java.net.InetAddress;
 
 // https://github.com/OpenLiberty/open-liberty/blob/master/dev/com.ibm.ws.transport.http/src/com/ibm/ws/http/channel/internal/inbound/HttpInboundServiceContextImpl.java
 @SuppressWarnings("OtelInternalJavadoc")
@@ -14,4 +15,12 @@ public class HttpInboundServiceContextImpl {
   public HttpRequestMessage getRequest() {
     throw new UnsupportedOperationException();
   }
+
+  public InetAddress getLocalAddr() {
+    throw new UnsupportedOperationException();
+  }
+
+  public int getLocalPort() {
+    throw new UnsupportedOperationException();
+  }
 }

+ 0 - 8
instrumentation/liberty/compile-stub/src/main/java/com/ibm/ws/http/dispatcher/internal/channel/HttpDispatcherLink.java

@@ -19,14 +19,6 @@ public class HttpDispatcherLink {
     throw new UnsupportedOperationException();
   }
 
-  public String getLocalHostAddress() {
-    throw new UnsupportedOperationException();
-  }
-
-  public int getLocalPort() {
-    throw new UnsupportedOperationException();
-  }
-
   public HttpResponse getResponse() {
     throw new UnsupportedOperationException();
   }

+ 3 - 1
instrumentation/liberty/liberty-dispatcher-20.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/liberty/dispatcher/LibertyDispatcherLinkInstrumentation.java

@@ -58,7 +58,9 @@ public class LibertyDispatcherLinkInstrumentation implements TypeInstrumentation
         @Advice.Local("otelContext") Context context,
         @Advice.Local("otelScope") Scope scope) {
       Context parentContext = Java8BytecodeBridge.currentContext();
-      request = new LibertyRequest(httpDispatcherLink, isc.getRequest());
+      request =
+          new LibertyRequest(
+              httpDispatcherLink, isc.getRequest(), isc.getLocalAddr(), isc.getLocalPort());
       if (!instrumenter().shouldStart(parentContext, request)) {
         return;
       }

+ 6 - 6
instrumentation/liberty/liberty-dispatcher-20.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/liberty/dispatcher/LibertyDispatcherNetAttributesGetter.java

@@ -35,12 +35,12 @@ public class LibertyDispatcherNetAttributesGetter
 
   @Nullable
   @Override
-  public String getHostName(LibertyRequest request) {
+  public String getServerAddress(LibertyRequest request) {
     return request.request().getURLHost();
   }
 
   @Override
-  public Integer getHostPort(LibertyRequest request) {
+  public Integer getServerPort(LibertyRequest request) {
     return request.request().getURLPort();
   }
 
@@ -57,13 +57,13 @@ public class LibertyDispatcherNetAttributesGetter
 
   @Nullable
   @Override
-  public String getSockHostAddr(LibertyRequest request) {
-    return request.dispatcher().getLocalHostAddress();
+  public String getServerSocketAddress(LibertyRequest request, LibertyResponse response) {
+    return request.getServerSocketAddress();
   }
 
   @Nullable
   @Override
-  public Integer getSockHostPort(LibertyRequest request) {
-    return request.dispatcher().getLocalPort();
+  public Integer getServerSocketPort(LibertyRequest request, LibertyResponse response) {
+    return request.getServerSocketPort();
   }
 }

+ 17 - 1
instrumentation/liberty/liberty-dispatcher-20.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/liberty/dispatcher/LibertyRequest.java

@@ -8,6 +8,7 @@ package io.opentelemetry.javaagent.instrumentation.liberty.dispatcher;
 import com.ibm.ws.http.dispatcher.internal.channel.HttpDispatcherLink;
 import com.ibm.wsspi.genericbnf.HeaderField;
 import com.ibm.wsspi.http.channel.HttpRequestMessage;
+import java.net.InetAddress;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
@@ -15,11 +16,18 @@ import java.util.List;
 public class LibertyRequest {
   private final HttpDispatcherLink httpDispatcherLink;
   private final HttpRequestMessage httpRequestMessage;
+  private final String serverSocketAddress;
+  private final int serverSocketPort;
 
   public LibertyRequest(
-      HttpDispatcherLink httpDispatcherLink, HttpRequestMessage httpRequestMessage) {
+      HttpDispatcherLink httpDispatcherLink,
+      HttpRequestMessage httpRequestMessage,
+      InetAddress serverInetAddress,
+      int serverSocketPort) {
     this.httpDispatcherLink = httpDispatcherLink;
     this.httpRequestMessage = httpRequestMessage;
+    this.serverSocketAddress = serverInetAddress.getHostAddress();
+    this.serverSocketPort = serverSocketPort;
   }
 
   public String getMethod() {
@@ -63,6 +71,14 @@ public class LibertyRequest {
     return httpRequestMessage.getVersion();
   }
 
+  public String getServerSocketAddress() {
+    return serverSocketAddress;
+  }
+
+  public int getServerSocketPort() {
+    return serverSocketPort;
+  }
+
   public HttpDispatcherLink dispatcher() {
     return httpDispatcherLink;
   }

+ 2 - 2
instrumentation/mongo/mongo-3.1/library/src/main/java/io/opentelemetry/instrumentation/mongo/v3_1/MongoNetAttributesGetter.java

@@ -13,7 +13,7 @@ class MongoNetAttributesGetter implements NetClientAttributesGetter<CommandStart
 
   @Nullable
   @Override
-  public String getPeerName(CommandStartedEvent event) {
+  public String getServerAddress(CommandStartedEvent event) {
     if (event.getConnectionDescription() != null
         && event.getConnectionDescription().getServerAddress() != null) {
       return event.getConnectionDescription().getServerAddress().getHost();
@@ -23,7 +23,7 @@ class MongoNetAttributesGetter implements NetClientAttributesGetter<CommandStart
 
   @Nullable
   @Override
-  public Integer getPeerPort(CommandStartedEvent event) {
+  public Integer getServerPort(CommandStartedEvent event) {
     if (event.getConnectionDescription() != null
         && event.getConnectionDescription().getServerAddress() != null) {
       return event.getConnectionDescription().getServerAddress().getPort();

+ 3 - 3
instrumentation/netty/netty-3.8/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/netty/v3_8/client/NettyConnectNetAttributesGetter.java

@@ -32,7 +32,7 @@ final class NettyConnectNetAttributesGetter
 
   @Nullable
   @Override
-  public String getPeerName(NettyConnectionRequest request) {
+  public String getServerAddress(NettyConnectionRequest request) {
     SocketAddress requestedAddress = request.remoteAddressOnStart();
     if (requestedAddress instanceof InetSocketAddress) {
       return ((InetSocketAddress) requestedAddress).getHostString();
@@ -42,7 +42,7 @@ final class NettyConnectNetAttributesGetter
 
   @Nullable
   @Override
-  public Integer getPeerPort(NettyConnectionRequest request) {
+  public Integer getServerPort(NettyConnectionRequest request) {
     SocketAddress requestedAddress = request.remoteAddressOnStart();
     if (requestedAddress instanceof InetSocketAddress) {
       return ((InetSocketAddress) requestedAddress).getPort();
@@ -52,7 +52,7 @@ final class NettyConnectNetAttributesGetter
 
   @Nullable
   @Override
-  public InetSocketAddress getPeerSocketAddress(
+  public InetSocketAddress getServerInetSocketAddress(
       NettyConnectionRequest request, @Nullable Channel channel) {
     if (channel == null) {
       return null;

+ 3 - 3
instrumentation/netty/netty-3.8/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/netty/v3_8/client/NettyNetClientAttributesGetter.java

@@ -48,19 +48,19 @@ final class NettyNetClientAttributesGetter
 
   @Nullable
   @Override
-  public String getPeerName(HttpRequestAndChannel requestAndChannel) {
+  public String getServerAddress(HttpRequestAndChannel requestAndChannel) {
     return null;
   }
 
   @Nullable
   @Override
-  public Integer getPeerPort(HttpRequestAndChannel requestAndChannel) {
+  public Integer getServerPort(HttpRequestAndChannel requestAndChannel) {
     return null;
   }
 
   @Override
   @Nullable
-  public InetSocketAddress getPeerSocketAddress(
+  public InetSocketAddress getServerInetSocketAddress(
       HttpRequestAndChannel requestAndChannel, @Nullable HttpResponse response) {
     SocketAddress address = requestAndChannel.channel().getRemoteAddress();
     if (address instanceof InetSocketAddress) {

+ 4 - 3
instrumentation/netty/netty-3.8/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/netty/v3_8/server/NettyNetServerAttributesGetter.java

@@ -47,13 +47,13 @@ final class NettyNetServerAttributesGetter
 
   @Nullable
   @Override
-  public String getHostName(HttpRequestAndChannel requestAndChannel) {
+  public String getServerAddress(HttpRequestAndChannel requestAndChannel) {
     return null;
   }
 
   @Nullable
   @Override
-  public Integer getHostPort(HttpRequestAndChannel requestAndChannel) {
+  public Integer getServerPort(HttpRequestAndChannel requestAndChannel) {
     return null;
   }
 
@@ -69,7 +69,8 @@ final class NettyNetServerAttributesGetter
 
   @Nullable
   @Override
-  public InetSocketAddress getHostSocketAddress(HttpRequestAndChannel requestAndChannel) {
+  public InetSocketAddress getServerInetSocketAddress(
+      HttpRequestAndChannel requestAndChannel, @Nullable HttpResponse response) {
     SocketAddress address = requestAndChannel.channel().getLocalAddress();
     if (address instanceof InetSocketAddress) {
       return (InetSocketAddress) address;

+ 3 - 3
instrumentation/netty/netty-4-common/library/src/main/java/io/opentelemetry/instrumentation/netty/v4/common/internal/client/NettyConnectNetAttributesGetter.java

@@ -32,7 +32,7 @@ final class NettyConnectNetAttributesGetter
 
   @Nullable
   @Override
-  public String getPeerName(NettyConnectionRequest request) {
+  public String getServerAddress(NettyConnectionRequest request) {
     SocketAddress requestedAddress = request.remoteAddressOnStart();
     if (requestedAddress instanceof InetSocketAddress) {
       return ((InetSocketAddress) requestedAddress).getHostString();
@@ -42,7 +42,7 @@ final class NettyConnectNetAttributesGetter
 
   @Nullable
   @Override
-  public Integer getPeerPort(NettyConnectionRequest request) {
+  public Integer getServerPort(NettyConnectionRequest request) {
     SocketAddress requestedAddress = request.remoteAddressOnStart();
     if (requestedAddress instanceof InetSocketAddress) {
       return ((InetSocketAddress) requestedAddress).getPort();
@@ -52,7 +52,7 @@ final class NettyConnectNetAttributesGetter
 
   @Nullable
   @Override
-  public InetSocketAddress getPeerSocketAddress(
+  public InetSocketAddress getServerInetSocketAddress(
       NettyConnectionRequest request, @Nullable Channel channel) {
     if (channel == null) {
       return null;

+ 3 - 3
instrumentation/netty/netty-4-common/library/src/main/java/io/opentelemetry/instrumentation/netty/v4/common/internal/client/NettyNetClientAttributesGetter.java

@@ -48,19 +48,19 @@ final class NettyNetClientAttributesGetter
 
   @Nullable
   @Override
-  public String getPeerName(HttpRequestAndChannel requestAndChannel) {
+  public String getServerAddress(HttpRequestAndChannel requestAndChannel) {
     return null;
   }
 
   @Nullable
   @Override
-  public Integer getPeerPort(HttpRequestAndChannel requestAndChannel) {
+  public Integer getServerPort(HttpRequestAndChannel requestAndChannel) {
     return null;
   }
 
   @Override
   @Nullable
-  public InetSocketAddress getPeerSocketAddress(
+  public InetSocketAddress getServerInetSocketAddress(
       HttpRequestAndChannel requestAndChannel, @Nullable HttpResponse response) {
     SocketAddress address = requestAndChannel.remoteAddress();
     if (address instanceof InetSocketAddress) {

+ 4 - 3
instrumentation/netty/netty-4-common/library/src/main/java/io/opentelemetry/instrumentation/netty/v4/common/internal/client/NettySslNetAttributesGetter.java

@@ -29,19 +29,20 @@ final class NettySslNetAttributesGetter
 
   @Nullable
   @Override
-  public String getPeerName(NettySslRequest nettySslRequest) {
+  public String getServerAddress(NettySslRequest nettySslRequest) {
     return null;
   }
 
   @Nullable
   @Override
-  public Integer getPeerPort(NettySslRequest nettySslRequest) {
+  public Integer getServerPort(NettySslRequest nettySslRequest) {
     return null;
   }
 
   @Nullable
   @Override
-  public InetSocketAddress getPeerSocketAddress(NettySslRequest request, @Nullable Void unused) {
+  public InetSocketAddress getServerInetSocketAddress(
+      NettySslRequest request, @Nullable Void unused) {
     if (request.remoteAddress() instanceof InetSocketAddress) {
       return (InetSocketAddress) request.remoteAddress();
     }

+ 4 - 3
instrumentation/netty/netty-4-common/library/src/main/java/io/opentelemetry/instrumentation/netty/v4/common/internal/server/NettyNetServerAttributesGetter.java

@@ -47,13 +47,13 @@ final class NettyNetServerAttributesGetter
 
   @Nullable
   @Override
-  public String getHostName(HttpRequestAndChannel requestAndChannel) {
+  public String getServerAddress(HttpRequestAndChannel requestAndChannel) {
     return null;
   }
 
   @Nullable
   @Override
-  public Integer getHostPort(HttpRequestAndChannel requestAndChannel) {
+  public Integer getServerPort(HttpRequestAndChannel requestAndChannel) {
     return null;
   }
 
@@ -69,7 +69,8 @@ final class NettyNetServerAttributesGetter
 
   @Nullable
   @Override
-  public InetSocketAddress getHostSocketAddress(HttpRequestAndChannel requestAndChannel) {
+  public InetSocketAddress getServerInetSocketAddress(
+      HttpRequestAndChannel requestAndChannel, @Nullable HttpResponse response) {
     SocketAddress address = requestAndChannel.channel().localAddress();
     if (address instanceof InetSocketAddress) {
       return (InetSocketAddress) address;

+ 2 - 2
instrumentation/okhttp/okhttp-2.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/okhttp/v2_2/OkHttp2NetAttributesGetter.java

@@ -51,12 +51,12 @@ public final class OkHttp2NetAttributesGetter
 
   @Override
   @Nullable
-  public String getPeerName(Request request) {
+  public String getServerAddress(Request request) {
     return request.url().getHost();
   }
 
   @Override
-  public Integer getPeerPort(Request request) {
+  public Integer getServerPort(Request request) {
     return request.url().getPort();
   }
 }

+ 2 - 2
instrumentation/okhttp/okhttp-3.0/library/src/main/java/io/opentelemetry/instrumentation/okhttp/v3_0/internal/OkHttpNetAttributesGetter.java

@@ -55,12 +55,12 @@ public enum OkHttpNetAttributesGetter implements NetClientAttributesGetter<Reque
 
   @Override
   @Nullable
-  public String getPeerName(Request request) {
+  public String getServerAddress(Request request) {
     return request.url().host();
   }
 
   @Override
-  public Integer getPeerPort(Request request) {
+  public Integer getServerPort(Request request) {
     return request.url().port();
   }
 }

+ 3 - 3
instrumentation/opensearch/opensearch-rest-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opensearch/rest/OpenSearchRestNetResponseAttributesGetter.java

@@ -15,13 +15,13 @@ final class OpenSearchRestNetResponseAttributesGetter
 
   @Override
   @Nullable
-  public String getPeerName(OpenSearchRestRequest request) {
+  public String getServerAddress(OpenSearchRestRequest request) {
     return null;
   }
 
   @Override
   @Nullable
-  public Integer getPeerPort(OpenSearchRestRequest request) {
+  public Integer getServerPort(OpenSearchRestRequest request) {
     return null;
   }
 
@@ -37,7 +37,7 @@ final class OpenSearchRestNetResponseAttributesGetter
 
   @Override
   @Nullable
-  public String getSockPeerAddr(OpenSearchRestRequest request, @Nullable Response response) {
+  public String getServerSocketAddress(OpenSearchRestRequest request, @Nullable Response response) {
     if (response != null && response.getHost().getAddress() != null) {
       return response.getHost().getAddress().getHostAddress();
     }

+ 2 - 2
instrumentation/opentelemetry-instrumentation-api/testing/src/main/java/io/opentelemetry/javaagent/instrumentation/testing/MockNetServerAttributesGetter.java

@@ -14,13 +14,13 @@ enum MockNetServerAttributesGetter implements NetServerAttributesGetter<String,
 
   @Nullable
   @Override
-  public String getHostName(String s) {
+  public String getServerAddress(String s) {
     return null;
   }
 
   @Nullable
   @Override
-  public Integer getHostPort(String s) {
+  public Integer getServerPort(String s) {
     return null;
   }
 }

+ 4 - 3
instrumentation/play/play-ws/play-ws-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/playws/PlayWsClientNetAttributesGetter.java

@@ -16,18 +16,19 @@ final class PlayWsClientNetAttributesGetter
 
   @Nullable
   @Override
-  public String getPeerName(Request request) {
+  public String getServerAddress(Request request) {
     return request.getUri().getHost();
   }
 
   @Override
-  public Integer getPeerPort(Request request) {
+  public Integer getServerPort(Request request) {
     return request.getUri().getPort();
   }
 
   @Override
   @Nullable
-  public InetSocketAddress getPeerSocketAddress(Request request, @Nullable Response response) {
+  public InetSocketAddress getServerInetSocketAddress(
+      Request request, @Nullable Response response) {
     if (response != null && response.getRemoteAddress() instanceof InetSocketAddress) {
       return (InetSocketAddress) response.getRemoteAddress();
     }

+ 2 - 2
instrumentation/pulsar/pulsar-2.8/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/pulsar/v2_8/telemetry/PulsarNetClientAttributesGetter.java

@@ -18,13 +18,13 @@ public final class PulsarNetClientAttributesGetter
 
   @Nullable
   @Override
-  public String getPeerName(BasePulsarRequest request) {
+  public String getServerAddress(BasePulsarRequest request) {
     return request.getUrlData() != null ? request.getUrlData().getHost() : null;
   }
 
   @Nullable
   @Override
-  public Integer getPeerPort(BasePulsarRequest request) {
+  public Integer getServerPort(BasePulsarRequest request) {
     return request.getUrlData() != null ? request.getUrlData().getPort() : null;
   }
 }

+ 2 - 2
instrumentation/r2dbc-1.0/library/src/main/java/io/opentelemetry/instrumentation/r2dbc/v1_0/internal/R2dbcNetAttributesGetter.java

@@ -17,13 +17,13 @@ public enum R2dbcNetAttributesGetter implements NetClientAttributesGetter<DbExec
 
   @Nullable
   @Override
-  public String getPeerName(DbExecution request) {
+  public String getServerAddress(DbExecution request) {
     return request.getHost();
   }
 
   @Nullable
   @Override
-  public Integer getPeerPort(DbExecution request) {
+  public Integer getServerPort(DbExecution request) {
     return request.getPort();
   }
 }

+ 4 - 4
instrumentation/rabbitmq-2.7/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/rabbitmq/RabbitChannelNetAttributesGetter.java

@@ -14,24 +14,24 @@ public class RabbitChannelNetAttributesGetter
 
   @Nullable
   @Override
-  public String getPeerName(ChannelAndMethod channelAndMethod) {
+  public String getServerAddress(ChannelAndMethod channelAndMethod) {
     return null;
   }
 
   @Nullable
   @Override
-  public Integer getPeerPort(ChannelAndMethod channelAndMethod) {
+  public Integer getServerPort(ChannelAndMethod channelAndMethod) {
     return null;
   }
 
   @Nullable
   @Override
-  public String getSockPeerAddr(ChannelAndMethod channelAndMethod, @Nullable Void unused) {
+  public String getServerSocketAddress(ChannelAndMethod channelAndMethod, @Nullable Void unused) {
     return channelAndMethod.getChannel().getConnection().getAddress().getHostAddress();
   }
 
   @Override
-  public Integer getSockPeerPort(ChannelAndMethod channelAndMethod, @Nullable Void unused) {
+  public Integer getServerSocketPort(ChannelAndMethod channelAndMethod, @Nullable Void unused) {
     return channelAndMethod.getChannel().getConnection().getPort();
   }
 

+ 4 - 4
instrumentation/rabbitmq-2.7/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/rabbitmq/RabbitReceiveNetAttributesGetter.java

@@ -15,25 +15,25 @@ public class RabbitReceiveNetAttributesGetter
 
   @Nullable
   @Override
-  public String getPeerName(ReceiveRequest request) {
+  public String getServerAddress(ReceiveRequest request) {
     return null;
   }
 
   @Nullable
   @Override
-  public Integer getPeerPort(ReceiveRequest request) {
+  public Integer getServerPort(ReceiveRequest request) {
     return null;
   }
 
   @Nullable
   @Override
-  public String getSockPeerAddr(ReceiveRequest request, @Nullable GetResponse response) {
+  public String getServerSocketAddress(ReceiveRequest request, @Nullable GetResponse response) {
     return request.getConnection().getAddress().getHostAddress();
   }
 
   @Nullable
   @Override
-  public Integer getSockPeerPort(ReceiveRequest request, @Nullable GetResponse response) {
+  public Integer getServerSocketPort(ReceiveRequest request, @Nullable GetResponse response) {
     return request.getConnection().getPort();
   }
 

+ 2 - 2
instrumentation/ratpack/ratpack-1.7/library/src/main/java/io/opentelemetry/instrumentation/ratpack/v1_7/internal/RatpackNetClientAttributesGetter.java

@@ -19,12 +19,12 @@ public final class RatpackNetClientAttributesGetter
 
   @Override
   @Nullable
-  public String getPeerName(RequestSpec request) {
+  public String getServerAddress(RequestSpec request) {
     return request.getUri().getHost();
   }
 
   @Override
-  public Integer getPeerPort(RequestSpec request) {
+  public Integer getServerPort(RequestSpec request) {
     return request.getUri().getPort();
   }
 }

Algúns arquivos non se mostraron porque demasiados arquivos cambiaron neste cambio