Deprecate `NetClientAttributesExtractor` (#9165)

This commit is contained in:
Mateusz Rzeszutek 2023-08-16 11:21:10 +02:00 committed by GitHub
parent 02b2dadcb2
commit 65451b6529
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
61 changed files with 269 additions and 272 deletions

View File

@ -10,7 +10,6 @@ import static io.opentelemetry.instrumentation.api.internal.AttributesExtractorU
import io.opentelemetry.api.common.AttributesBuilder; import io.opentelemetry.api.common.AttributesBuilder;
import io.opentelemetry.context.Context; import io.opentelemetry.context.Context;
import io.opentelemetry.instrumentation.api.instrumenter.AttributesExtractor; 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.net.internal.InternalNetClientAttributesExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.network.internal.InternalNetworkAttributesExtractor; 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.InternalServerAttributesExtractor;
@ -52,7 +51,9 @@ public final class HttpClientAttributesExtractor<REQUEST, RESPONSE>
@Deprecated @Deprecated
public static <REQUEST, RESPONSE> AttributesExtractor<REQUEST, RESPONSE> create( public static <REQUEST, RESPONSE> AttributesExtractor<REQUEST, RESPONSE> create(
HttpClientAttributesGetter<REQUEST, RESPONSE> httpAttributesGetter, HttpClientAttributesGetter<REQUEST, RESPONSE> httpAttributesGetter,
NetClientAttributesGetter<REQUEST, RESPONSE> netAttributesGetter) { io.opentelemetry.instrumentation.api.instrumenter.net.NetClientAttributesGetter<
REQUEST, RESPONSE>
netAttributesGetter) {
return builder(httpAttributesGetter, netAttributesGetter).build(); return builder(httpAttributesGetter, netAttributesGetter).build();
} }
@ -76,7 +77,9 @@ public final class HttpClientAttributesExtractor<REQUEST, RESPONSE>
@Deprecated @Deprecated
public static <REQUEST, RESPONSE> HttpClientAttributesExtractorBuilder<REQUEST, RESPONSE> builder( public static <REQUEST, RESPONSE> HttpClientAttributesExtractorBuilder<REQUEST, RESPONSE> builder(
HttpClientAttributesGetter<REQUEST, RESPONSE> httpAttributesGetter, HttpClientAttributesGetter<REQUEST, RESPONSE> httpAttributesGetter,
NetClientAttributesGetter<REQUEST, RESPONSE> netAttributesGetter) { io.opentelemetry.instrumentation.api.instrumenter.net.NetClientAttributesGetter<
REQUEST, RESPONSE>
netAttributesGetter) {
return new HttpClientAttributesExtractorBuilder<>(httpAttributesGetter, netAttributesGetter); return new HttpClientAttributesExtractorBuilder<>(httpAttributesGetter, netAttributesGetter);
} }

View File

@ -10,7 +10,6 @@ import static java.util.Collections.emptyList;
import com.google.errorprone.annotations.CanIgnoreReturnValue; import com.google.errorprone.annotations.CanIgnoreReturnValue;
import io.opentelemetry.context.Context; import io.opentelemetry.context.Context;
import io.opentelemetry.instrumentation.api.instrumenter.AttributesExtractor; 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.net.internal.InternalNetClientAttributesExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.network.internal.InternalNetworkAttributesExtractor; 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.InternalServerAttributesExtractor;
@ -26,7 +25,12 @@ import java.util.function.ToIntFunction;
public final class HttpClientAttributesExtractorBuilder<REQUEST, RESPONSE> { public final class HttpClientAttributesExtractorBuilder<REQUEST, RESPONSE> {
final HttpClientAttributesGetter<REQUEST, RESPONSE> httpAttributesGetter; final HttpClientAttributesGetter<REQUEST, RESPONSE> httpAttributesGetter;
final NetClientAttributesGetter<REQUEST, RESPONSE> netAttributesGetter;
@SuppressWarnings("deprecation") // using the net extractor for the old->stable semconv story
final io.opentelemetry.instrumentation.api.instrumenter.net.NetClientAttributesGetter<
REQUEST, RESPONSE>
netAttributesGetter;
final HttpAddressPortExtractor<REQUEST> addressPortExtractor; final HttpAddressPortExtractor<REQUEST> addressPortExtractor;
List<String> capturedRequestHeaders = emptyList(); List<String> capturedRequestHeaders = emptyList();
List<String> capturedResponseHeaders = emptyList(); List<String> capturedResponseHeaders = emptyList();
@ -35,7 +39,10 @@ public final class HttpClientAttributesExtractorBuilder<REQUEST, RESPONSE> {
HttpClientAttributesExtractorBuilder( HttpClientAttributesExtractorBuilder(
HttpClientAttributesGetter<REQUEST, RESPONSE> httpAttributesGetter, HttpClientAttributesGetter<REQUEST, RESPONSE> httpAttributesGetter,
NetClientAttributesGetter<REQUEST, RESPONSE> netAttributesGetter) { @SuppressWarnings("deprecation") // using the net extractor for the old->stable semconv story
io.opentelemetry.instrumentation.api.instrumenter.net.NetClientAttributesGetter<
REQUEST, RESPONSE>
netAttributesGetter) {
this.httpAttributesGetter = httpAttributesGetter; this.httpAttributesGetter = httpAttributesGetter;
this.netAttributesGetter = netAttributesGetter; this.netAttributesGetter = netAttributesGetter;
addressPortExtractor = new HttpAddressPortExtractor<>(httpAttributesGetter); addressPortExtractor = new HttpAddressPortExtractor<>(httpAttributesGetter);

View File

@ -5,7 +5,6 @@
package io.opentelemetry.instrumentation.api.instrumenter.http; package io.opentelemetry.instrumentation.api.instrumenter.http;
import io.opentelemetry.instrumentation.api.instrumenter.net.NetClientAttributesGetter;
import io.opentelemetry.instrumentation.api.instrumenter.network.NetworkAttributesGetter; import io.opentelemetry.instrumentation.api.instrumenter.network.NetworkAttributesGetter;
import io.opentelemetry.instrumentation.api.instrumenter.network.ServerAttributesGetter; import io.opentelemetry.instrumentation.api.instrumenter.network.ServerAttributesGetter;
import javax.annotation.Nullable; import javax.annotation.Nullable;
@ -17,9 +16,13 @@ import javax.annotation.Nullable;
* library/framework. It will be used by the {@link HttpClientAttributesExtractor} to obtain the * library/framework. It will be used by the {@link HttpClientAttributesExtractor} to obtain the
* various HTTP client attributes in a type-generic way. * various HTTP client attributes in a type-generic way.
*/ */
@SuppressWarnings(
"deprecation") // implementing the NetClientAttributesGetter for the old->stable semconv story;
// will be removed in 2.0
public interface HttpClientAttributesGetter<REQUEST, RESPONSE> public interface HttpClientAttributesGetter<REQUEST, RESPONSE>
extends HttpCommonAttributesGetter<REQUEST, RESPONSE>, extends HttpCommonAttributesGetter<REQUEST, RESPONSE>,
NetClientAttributesGetter<REQUEST, RESPONSE>, io.opentelemetry.instrumentation.api.instrumenter.net.NetClientAttributesGetter<
REQUEST, RESPONSE>,
NetworkAttributesGetter<REQUEST, RESPONSE>, NetworkAttributesGetter<REQUEST, RESPONSE>,
ServerAttributesGetter<REQUEST, RESPONSE> { ServerAttributesGetter<REQUEST, RESPONSE> {

View File

@ -23,7 +23,11 @@ import javax.annotation.Nullable;
* *
* <p>This class delegates to a type-specific {@link NetClientAttributesGetter} for individual * <p>This class delegates to a type-specific {@link NetClientAttributesGetter} for individual
* attribute extraction from request/response objects. * attribute extraction from request/response objects.
*
* @deprecated Make sure that your instrumentation uses the extractors from the {@code ...network}
* package instead. This class will be removed in the 2.0 release.
*/ */
@Deprecated
public final class NetClientAttributesExtractor<REQUEST, RESPONSE> public final class NetClientAttributesExtractor<REQUEST, RESPONSE>
implements AttributesExtractor<REQUEST, RESPONSE> { implements AttributesExtractor<REQUEST, RESPONSE> {

View File

@ -18,7 +18,11 @@ import javax.annotation.Nullable;
* <p>Instrumentation authors will create implementations of this interface for their specific * <p>Instrumentation authors will create implementations of this interface for their specific
* library/framework. It will be used by the NetClientAttributesExtractor to obtain the various * library/framework. It will be used by the NetClientAttributesExtractor to obtain the various
* network attributes in a type-generic way. * network attributes in a type-generic way.
*
* @deprecated Make sure that your instrumentation implements the getters from the {@code
* ...network} package instead. This class will be removed in the 2.0 release.
*/ */
@Deprecated
public interface NetClientAttributesGetter<REQUEST, RESPONSE> public interface NetClientAttributesGetter<REQUEST, RESPONSE>
extends NetworkAttributesGetter<REQUEST, RESPONSE>, ServerAttributesGetter<REQUEST, RESPONSE> { extends NetworkAttributesGetter<REQUEST, RESPONSE>, ServerAttributesGetter<REQUEST, RESPONSE> {

View File

@ -5,6 +5,7 @@
package io.opentelemetry.instrumentation.api.instrumenter.net.internal; package io.opentelemetry.instrumentation.api.instrumenter.net.internal;
import java.net.Inet4Address;
import java.net.Inet6Address; import java.net.Inet6Address;
import java.net.InetAddress; import java.net.InetAddress;
import java.net.InetSocketAddress; import java.net.InetSocketAddress;
@ -42,7 +43,12 @@ public final class InetSocketAddressUtil {
return null; return null;
} }
InetAddress remoteAddress = address.getAddress(); InetAddress remoteAddress = address.getAddress();
return remoteAddress instanceof Inet6Address ? "ipv6" : "ipv4"; if (remoteAddress instanceof Inet4Address) {
return "ipv6";
} else if (remoteAddress instanceof Inet6Address) {
return "ipv6";
}
return null;
} }
@Nullable @Nullable

View File

@ -8,7 +8,6 @@ package io.opentelemetry.instrumentation.api.instrumenter.net.internal;
import static io.opentelemetry.instrumentation.api.internal.AttributesExtractorUtil.internalSet; import static io.opentelemetry.instrumentation.api.internal.AttributesExtractorUtil.internalSet;
import io.opentelemetry.api.common.AttributesBuilder; import io.opentelemetry.api.common.AttributesBuilder;
import io.opentelemetry.instrumentation.api.instrumenter.net.NetClientAttributesGetter;
import io.opentelemetry.instrumentation.api.instrumenter.network.internal.AddressAndPort; import io.opentelemetry.instrumentation.api.instrumenter.network.internal.AddressAndPort;
import io.opentelemetry.instrumentation.api.instrumenter.network.internal.FallbackAddressPortExtractor; import io.opentelemetry.instrumentation.api.instrumenter.network.internal.FallbackAddressPortExtractor;
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes; import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
@ -18,14 +17,19 @@ import javax.annotation.Nullable;
* This class is internal and is hence not for public use. Its APIs are unstable and can change at * This class is internal and is hence not for public use. Its APIs are unstable and can change at
* any time. * any time.
*/ */
@SuppressWarnings("deprecation") // this class will be removed in the 2.0 version
public final class InternalNetClientAttributesExtractor<REQUEST, RESPONSE> { public final class InternalNetClientAttributesExtractor<REQUEST, RESPONSE> {
private final NetClientAttributesGetter<REQUEST, RESPONSE> getter; private final io.opentelemetry.instrumentation.api.instrumenter.net.NetClientAttributesGetter<
REQUEST, RESPONSE>
getter;
private final FallbackAddressPortExtractor<REQUEST> fallbackAddressPortExtractor; private final FallbackAddressPortExtractor<REQUEST> fallbackAddressPortExtractor;
private final boolean emitOldHttpAttributes; private final boolean emitOldHttpAttributes;
public InternalNetClientAttributesExtractor( public InternalNetClientAttributesExtractor(
NetClientAttributesGetter<REQUEST, RESPONSE> getter, io.opentelemetry.instrumentation.api.instrumenter.net.NetClientAttributesGetter<
REQUEST, RESPONSE>
getter,
FallbackAddressPortExtractor<REQUEST> fallbackAddressPortExtractor, FallbackAddressPortExtractor<REQUEST> fallbackAddressPortExtractor,
boolean emitOldHttpAttributes) { boolean emitOldHttpAttributes) {
this.getter = getter; this.getter = getter;

View File

@ -19,6 +19,7 @@ import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith; import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.junit.jupiter.MockitoExtension; import org.mockito.junit.jupiter.MockitoExtension;
@SuppressWarnings("deprecation") // testing deprecated class
@ExtendWith(MockitoExtension.class) @ExtendWith(MockitoExtension.class)
class InetSocketAddressNetClientAttributesGetterTest { class InetSocketAddressNetClientAttributesGetterTest {

View File

@ -21,6 +21,7 @@ import javax.annotation.Nullable;
import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
@SuppressWarnings("deprecation") // testing deprecated class
class NetClientAttributesExtractorTest { class NetClientAttributesExtractorTest {
static class TestNetClientAttributesGetter static class TestNetClientAttributesGetter

View File

@ -20,6 +20,7 @@ import java.util.Map;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
@SuppressWarnings("deprecation") // testing deprecated class
class NetClientAttributesExtractorBothSemconvTest { class NetClientAttributesExtractorBothSemconvTest {
static class TestNetClientAttributesGetter static class TestNetClientAttributesGetter

View File

@ -19,6 +19,7 @@ import java.util.Map;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
@SuppressWarnings("deprecation") // testing deprecated class
class NetClientAttributesExtractorStableSemconvTest { class NetClientAttributesExtractorStableSemconvTest {
static class TestNetClientAttributesGetter static class TestNetClientAttributesGetter

View File

@ -7,7 +7,7 @@ package io.opentelemetry.javaagent.instrumentation.apachedubbo.v2_7;
import io.opentelemetry.api.GlobalOpenTelemetry; import io.opentelemetry.api.GlobalOpenTelemetry;
import io.opentelemetry.instrumentation.apachedubbo.v2_7.DubboTelemetry; import io.opentelemetry.instrumentation.apachedubbo.v2_7.DubboTelemetry;
import io.opentelemetry.instrumentation.apachedubbo.v2_7.internal.DubboNetClientAttributesGetter; import io.opentelemetry.instrumentation.apachedubbo.v2_7.internal.DubboClientNetworkAttributesGetter;
import io.opentelemetry.instrumentation.api.instrumenter.net.PeerServiceAttributesExtractor; import io.opentelemetry.instrumentation.api.instrumenter.net.PeerServiceAttributesExtractor;
import io.opentelemetry.javaagent.bootstrap.internal.CommonConfig; import io.opentelemetry.javaagent.bootstrap.internal.CommonConfig;
import org.apache.dubbo.common.extension.Activate; import org.apache.dubbo.common.extension.Activate;
@ -26,7 +26,7 @@ public class OpenTelemetryFilter implements Filter {
DubboTelemetry.builder(GlobalOpenTelemetry.get()) DubboTelemetry.builder(GlobalOpenTelemetry.get())
.addAttributesExtractor( .addAttributesExtractor(
PeerServiceAttributesExtractor.create( PeerServiceAttributesExtractor.create(
new DubboNetClientAttributesGetter(), new DubboClientNetworkAttributesGetter(),
CommonConfig.get().getPeerServiceMapping())) CommonConfig.get().getPeerServiceMapping()))
.build() .build()
.newFilter(); .newFilter();

View File

@ -7,12 +7,11 @@ package io.opentelemetry.instrumentation.apachedubbo.v2_7;
import com.google.errorprone.annotations.CanIgnoreReturnValue; import com.google.errorprone.annotations.CanIgnoreReturnValue;
import io.opentelemetry.api.OpenTelemetry; import io.opentelemetry.api.OpenTelemetry;
import io.opentelemetry.instrumentation.apachedubbo.v2_7.internal.DubboNetClientAttributesGetter; import io.opentelemetry.instrumentation.apachedubbo.v2_7.internal.DubboClientNetworkAttributesGetter;
import io.opentelemetry.instrumentation.api.instrumenter.AttributesExtractor; import io.opentelemetry.instrumentation.api.instrumenter.AttributesExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter; import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter;
import io.opentelemetry.instrumentation.api.instrumenter.InstrumenterBuilder; import io.opentelemetry.instrumentation.api.instrumenter.InstrumenterBuilder;
import io.opentelemetry.instrumentation.api.instrumenter.SpanNameExtractor; import io.opentelemetry.instrumentation.api.instrumenter.SpanNameExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.net.NetClientAttributesExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.network.ClientAttributesExtractor; import io.opentelemetry.instrumentation.api.instrumenter.network.ClientAttributesExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.network.ServerAttributesExtractor; import io.opentelemetry.instrumentation.api.instrumenter.network.ServerAttributesExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.rpc.RpcClientAttributesExtractor; import io.opentelemetry.instrumentation.api.instrumenter.rpc.RpcClientAttributesExtractor;
@ -62,7 +61,8 @@ public final class DubboTelemetryBuilder {
DubboRpcAttributesGetter rpcAttributesGetter = DubboRpcAttributesGetter.INSTANCE; DubboRpcAttributesGetter rpcAttributesGetter = DubboRpcAttributesGetter.INSTANCE;
SpanNameExtractor<DubboRequest> spanNameExtractor = SpanNameExtractor<DubboRequest> spanNameExtractor =
RpcSpanNameExtractor.create(rpcAttributesGetter); RpcSpanNameExtractor.create(rpcAttributesGetter);
DubboNetClientAttributesGetter netClientAttributesGetter = new DubboNetClientAttributesGetter(); DubboClientNetworkAttributesGetter netClientAttributesGetter =
new DubboClientNetworkAttributesGetter();
DubboNetworkServerAttributesGetter netServerAttributesGetter = DubboNetworkServerAttributesGetter netServerAttributesGetter =
new DubboNetworkServerAttributesGetter(); new DubboNetworkServerAttributesGetter();
@ -79,7 +79,7 @@ public final class DubboTelemetryBuilder {
Instrumenter.<DubboRequest, Result>builder( Instrumenter.<DubboRequest, Result>builder(
openTelemetry, INSTRUMENTATION_NAME, spanNameExtractor) openTelemetry, INSTRUMENTATION_NAME, spanNameExtractor)
.addAttributesExtractor(RpcClientAttributesExtractor.create(rpcAttributesGetter)) .addAttributesExtractor(RpcClientAttributesExtractor.create(rpcAttributesGetter))
.addAttributesExtractor(NetClientAttributesExtractor.create(netClientAttributesGetter)) .addAttributesExtractor(ServerAttributesExtractor.create(netClientAttributesGetter))
.addAttributesExtractors(attributesExtractors); .addAttributesExtractors(attributesExtractors);
if (peerService != null) { if (peerService != null) {

View File

@ -6,7 +6,7 @@
package io.opentelemetry.instrumentation.apachedubbo.v2_7.internal; package io.opentelemetry.instrumentation.apachedubbo.v2_7.internal;
import io.opentelemetry.instrumentation.apachedubbo.v2_7.DubboRequest; import io.opentelemetry.instrumentation.apachedubbo.v2_7.DubboRequest;
import io.opentelemetry.instrumentation.api.instrumenter.net.NetClientAttributesGetter; import io.opentelemetry.instrumentation.api.instrumenter.network.ServerAttributesGetter;
import java.net.InetSocketAddress; import java.net.InetSocketAddress;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import org.apache.dubbo.rpc.Result; import org.apache.dubbo.rpc.Result;
@ -15,8 +15,8 @@ import org.apache.dubbo.rpc.Result;
* This class is internal and is hence not for public use. Its APIs are unstable and can change at * This class is internal and is hence not for public use. Its APIs are unstable and can change at
* any time. * any time.
*/ */
public final class DubboNetClientAttributesGetter public final class DubboClientNetworkAttributesGetter
implements NetClientAttributesGetter<DubboRequest, Result> { implements ServerAttributesGetter<DubboRequest, Result> {
@Nullable @Nullable
@Override @Override

View File

@ -6,24 +6,12 @@
package io.opentelemetry.javaagent.instrumentation.cassandra.v3_0; package io.opentelemetry.javaagent.instrumentation.cassandra.v3_0;
import com.datastax.driver.core.ExecutionInfo; import com.datastax.driver.core.ExecutionInfo;
import io.opentelemetry.instrumentation.api.instrumenter.net.NetClientAttributesGetter; import io.opentelemetry.instrumentation.api.instrumenter.network.ServerAttributesGetter;
import java.net.InetSocketAddress; import java.net.InetSocketAddress;
import javax.annotation.Nullable; import javax.annotation.Nullable;
final class CassandraNetAttributesGetter final class CassandraNetworkAttributesGetter
implements NetClientAttributesGetter<CassandraRequest, ExecutionInfo> { implements ServerAttributesGetter<CassandraRequest, ExecutionInfo> {
@Nullable
@Override
public String getServerAddress(CassandraRequest request) {
return null;
}
@Nullable
@Override
public Integer getServerPort(CassandraRequest request) {
return null;
}
@Override @Override
@Nullable @Nullable

View File

@ -11,7 +11,7 @@ import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter;
import io.opentelemetry.instrumentation.api.instrumenter.SpanKindExtractor; import io.opentelemetry.instrumentation.api.instrumenter.SpanKindExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.db.DbClientSpanNameExtractor; import io.opentelemetry.instrumentation.api.instrumenter.db.DbClientSpanNameExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.db.SqlClientAttributesExtractor; import io.opentelemetry.instrumentation.api.instrumenter.db.SqlClientAttributesExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.net.NetClientAttributesExtractor; import io.opentelemetry.instrumentation.api.instrumenter.network.ServerAttributesExtractor;
import io.opentelemetry.javaagent.bootstrap.internal.CommonConfig; import io.opentelemetry.javaagent.bootstrap.internal.CommonConfig;
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes; import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
@ -37,7 +37,7 @@ public final class CassandraSingletons {
CommonConfig.get().isStatementSanitizationEnabled()) CommonConfig.get().isStatementSanitizationEnabled())
.build()) .build())
.addAttributesExtractor( .addAttributesExtractor(
NetClientAttributesExtractor.create(new CassandraNetAttributesGetter())) ServerAttributesExtractor.create(new CassandraNetworkAttributesGetter()))
.buildInstrumenter(SpanKindExtractor.alwaysClient()); .buildInstrumenter(SpanKindExtractor.alwaysClient());
} }

View File

@ -7,25 +7,13 @@ package io.opentelemetry.javaagent.instrumentation.cassandra.v4_0;
import com.datastax.oss.driver.api.core.cql.ExecutionInfo; import com.datastax.oss.driver.api.core.cql.ExecutionInfo;
import com.datastax.oss.driver.api.core.metadata.Node; import com.datastax.oss.driver.api.core.metadata.Node;
import io.opentelemetry.instrumentation.api.instrumenter.net.NetClientAttributesGetter; import io.opentelemetry.instrumentation.api.instrumenter.network.ServerAttributesGetter;
import java.net.InetSocketAddress; import java.net.InetSocketAddress;
import java.net.SocketAddress; import java.net.SocketAddress;
import javax.annotation.Nullable; import javax.annotation.Nullable;
final class CassandraNetAttributesGetter final class CassandraNetworkAttributesGetter
implements NetClientAttributesGetter<CassandraRequest, ExecutionInfo> { implements ServerAttributesGetter<CassandraRequest, ExecutionInfo> {
@Nullable
@Override
public String getServerAddress(CassandraRequest request) {
return null;
}
@Nullable
@Override
public Integer getServerPort(CassandraRequest request) {
return null;
}
@Override @Override
@Nullable @Nullable

View File

@ -11,7 +11,7 @@ import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter;
import io.opentelemetry.instrumentation.api.instrumenter.SpanKindExtractor; import io.opentelemetry.instrumentation.api.instrumenter.SpanKindExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.db.DbClientSpanNameExtractor; import io.opentelemetry.instrumentation.api.instrumenter.db.DbClientSpanNameExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.db.SqlClientAttributesExtractor; import io.opentelemetry.instrumentation.api.instrumenter.db.SqlClientAttributesExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.net.NetClientAttributesExtractor; import io.opentelemetry.instrumentation.api.instrumenter.network.ServerAttributesExtractor;
import io.opentelemetry.javaagent.bootstrap.internal.CommonConfig; import io.opentelemetry.javaagent.bootstrap.internal.CommonConfig;
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes; import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
@ -36,7 +36,7 @@ public final class CassandraSingletons {
CommonConfig.get().isStatementSanitizationEnabled()) CommonConfig.get().isStatementSanitizationEnabled())
.build()) .build())
.addAttributesExtractor( .addAttributesExtractor(
NetClientAttributesExtractor.create(new CassandraNetAttributesGetter())) ServerAttributesExtractor.create(new CassandraNetworkAttributesGetter()))
.addAttributesExtractor(new CassandraAttributesExtractor()) .addAttributesExtractor(new CassandraAttributesExtractor())
.buildInstrumenter(SpanKindExtractor.alwaysClient()); .buildInstrumenter(SpanKindExtractor.alwaysClient());
} }

View File

@ -7,25 +7,13 @@ package io.opentelemetry.instrumentation.cassandra.v4_4;
import com.datastax.oss.driver.api.core.cql.ExecutionInfo; import com.datastax.oss.driver.api.core.cql.ExecutionInfo;
import com.datastax.oss.driver.api.core.metadata.Node; import com.datastax.oss.driver.api.core.metadata.Node;
import io.opentelemetry.instrumentation.api.instrumenter.net.NetClientAttributesGetter; import io.opentelemetry.instrumentation.api.instrumenter.network.ServerAttributesGetter;
import java.net.InetSocketAddress; import java.net.InetSocketAddress;
import java.net.SocketAddress; import java.net.SocketAddress;
import javax.annotation.Nullable; import javax.annotation.Nullable;
final class CassandraNetAttributesGetter final class CassandraNetworkAttributesGetter
implements NetClientAttributesGetter<CassandraRequest, ExecutionInfo> { implements ServerAttributesGetter<CassandraRequest, ExecutionInfo> {
@Nullable
@Override
public String getServerAddress(CassandraRequest request) {
return null;
}
@Nullable
@Override
public Integer getServerPort(CassandraRequest request) {
return null;
}
@Override @Override
@Nullable @Nullable

View File

@ -12,7 +12,7 @@ import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter;
import io.opentelemetry.instrumentation.api.instrumenter.SpanKindExtractor; import io.opentelemetry.instrumentation.api.instrumenter.SpanKindExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.db.DbClientSpanNameExtractor; import io.opentelemetry.instrumentation.api.instrumenter.db.DbClientSpanNameExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.db.SqlClientAttributesExtractor; import io.opentelemetry.instrumentation.api.instrumenter.db.SqlClientAttributesExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.net.NetClientAttributesExtractor; import io.opentelemetry.instrumentation.api.instrumenter.network.ServerAttributesExtractor;
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes; import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
/** A builder of {@link CassandraTelemetry}. */ /** A builder of {@link CassandraTelemetry}. */
@ -59,7 +59,7 @@ public class CassandraTelemetryBuilder {
.setStatementSanitizationEnabled(statementSanitizationEnabled) .setStatementSanitizationEnabled(statementSanitizationEnabled)
.build()) .build())
.addAttributesExtractor( .addAttributesExtractor(
NetClientAttributesExtractor.create(new CassandraNetAttributesGetter())) ServerAttributesExtractor.create(new CassandraNetworkAttributesGetter()))
.addAttributesExtractor(new CassandraAttributesExtractor()) .addAttributesExtractor(new CassandraAttributesExtractor())
.buildInstrumenter(SpanKindExtractor.alwaysClient()); .buildInstrumenter(SpanKindExtractor.alwaysClient());
} }

View File

@ -5,25 +5,13 @@
package io.opentelemetry.javaagent.instrumentation.couchbase.v2_0; package io.opentelemetry.javaagent.instrumentation.couchbase.v2_0;
import io.opentelemetry.instrumentation.api.instrumenter.net.NetClientAttributesGetter; import io.opentelemetry.instrumentation.api.instrumenter.network.ServerAttributesGetter;
import java.net.InetSocketAddress; import java.net.InetSocketAddress;
import java.net.SocketAddress; import java.net.SocketAddress;
import javax.annotation.Nullable; import javax.annotation.Nullable;
public class CouchbaseNetAttributesGetter public class CouchbaseNetworkAttributesGetter
implements NetClientAttributesGetter<CouchbaseRequestInfo, Void> { implements ServerAttributesGetter<CouchbaseRequestInfo, Void> {
@Nullable
@Override
public String getServerAddress(CouchbaseRequestInfo couchbaseRequest) {
return null;
}
@Nullable
@Override
public Integer getServerPort(CouchbaseRequestInfo couchbaseRequest) {
return null;
}
@Nullable @Nullable
@Override @Override

View File

@ -12,8 +12,8 @@ import io.opentelemetry.instrumentation.api.instrumenter.SpanKindExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.SpanNameExtractor; import io.opentelemetry.instrumentation.api.instrumenter.SpanNameExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.db.DbClientAttributesExtractor; import io.opentelemetry.instrumentation.api.instrumenter.db.DbClientAttributesExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.db.DbClientSpanNameExtractor; import io.opentelemetry.instrumentation.api.instrumenter.db.DbClientSpanNameExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.net.NetClientAttributesExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.net.PeerServiceAttributesExtractor; import io.opentelemetry.instrumentation.api.instrumenter.net.PeerServiceAttributesExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.network.ServerAttributesExtractor;
import io.opentelemetry.javaagent.bootstrap.internal.CommonConfig; import io.opentelemetry.javaagent.bootstrap.internal.CommonConfig;
import io.opentelemetry.javaagent.bootstrap.internal.InstrumentationConfig; import io.opentelemetry.javaagent.bootstrap.internal.InstrumentationConfig;
@ -27,13 +27,13 @@ public final class CouchbaseSingletons {
CouchbaseAttributesGetter couchbaseAttributesGetter = new CouchbaseAttributesGetter(); CouchbaseAttributesGetter couchbaseAttributesGetter = new CouchbaseAttributesGetter();
SpanNameExtractor<CouchbaseRequestInfo> spanNameExtractor = SpanNameExtractor<CouchbaseRequestInfo> spanNameExtractor =
new CouchbaseSpanNameExtractor(DbClientSpanNameExtractor.create(couchbaseAttributesGetter)); new CouchbaseSpanNameExtractor(DbClientSpanNameExtractor.create(couchbaseAttributesGetter));
CouchbaseNetAttributesGetter netAttributesGetter = new CouchbaseNetAttributesGetter(); CouchbaseNetworkAttributesGetter netAttributesGetter = new CouchbaseNetworkAttributesGetter();
InstrumenterBuilder<CouchbaseRequestInfo, Void> builder = InstrumenterBuilder<CouchbaseRequestInfo, Void> builder =
Instrumenter.<CouchbaseRequestInfo, Void>builder( Instrumenter.<CouchbaseRequestInfo, Void>builder(
GlobalOpenTelemetry.get(), INSTRUMENTATION_NAME, spanNameExtractor) GlobalOpenTelemetry.get(), INSTRUMENTATION_NAME, spanNameExtractor)
.addAttributesExtractor(DbClientAttributesExtractor.create(couchbaseAttributesGetter)) .addAttributesExtractor(DbClientAttributesExtractor.create(couchbaseAttributesGetter))
.addAttributesExtractor(NetClientAttributesExtractor.create(netAttributesGetter)) .addAttributesExtractor(ServerAttributesExtractor.create(netAttributesGetter))
.addAttributesExtractor( .addAttributesExtractor(
PeerServiceAttributesExtractor.create( PeerServiceAttributesExtractor.create(
netAttributesGetter, CommonConfig.get().getPeerServiceMapping())) netAttributesGetter, CommonConfig.get().getPeerServiceMapping()))

View File

@ -6,8 +6,8 @@
package io.opentelemetry.javaagent.instrumentation.elasticsearch.transport.v5_0; package io.opentelemetry.javaagent.instrumentation.elasticsearch.transport.v5_0;
import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter; import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter;
import io.opentelemetry.instrumentation.api.instrumenter.net.NetClientAttributesExtractor; import io.opentelemetry.instrumentation.api.instrumenter.network.ServerAttributesExtractor;
import io.opentelemetry.javaagent.instrumentation.elasticsearch.transport.ElasticTransportNetResponseAttributesGetter; import io.opentelemetry.javaagent.instrumentation.elasticsearch.transport.ElasticTransportNetworkAttributesGetter;
import io.opentelemetry.javaagent.instrumentation.elasticsearch.transport.ElasticTransportRequest; import io.opentelemetry.javaagent.instrumentation.elasticsearch.transport.ElasticTransportRequest;
import io.opentelemetry.javaagent.instrumentation.elasticsearch.transport.ElasticsearchTransportInstrumenterFactory; import io.opentelemetry.javaagent.instrumentation.elasticsearch.transport.ElasticsearchTransportInstrumenterFactory;
import org.elasticsearch.action.ActionResponse; import org.elasticsearch.action.ActionResponse;
@ -18,7 +18,7 @@ public final class Elasticsearch5TransportSingletons {
ElasticsearchTransportInstrumenterFactory.create( ElasticsearchTransportInstrumenterFactory.create(
"io.opentelemetry.elasticsearch-transport-5.0", "io.opentelemetry.elasticsearch-transport-5.0",
new Elasticsearch5TransportExperimentalAttributesExtractor(), new Elasticsearch5TransportExperimentalAttributesExtractor(),
NetClientAttributesExtractor.create(new ElasticTransportNetResponseAttributesGetter())); ServerAttributesExtractor.create(new ElasticTransportNetworkAttributesGetter()));
public static Instrumenter<ElasticTransportRequest, ActionResponse> instrumenter() { public static Instrumenter<ElasticTransportRequest, ActionResponse> instrumenter() {
return INSTRUMENTER; return INSTRUMENTER;

View File

@ -6,8 +6,8 @@
package io.opentelemetry.javaagent.instrumentation.elasticsearch.transport.v5_3; package io.opentelemetry.javaagent.instrumentation.elasticsearch.transport.v5_3;
import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter; import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter;
import io.opentelemetry.instrumentation.api.instrumenter.net.NetClientAttributesExtractor; import io.opentelemetry.instrumentation.api.instrumenter.network.ServerAttributesExtractor;
import io.opentelemetry.javaagent.instrumentation.elasticsearch.transport.ElasticTransportNetResponseAttributesGetter; import io.opentelemetry.javaagent.instrumentation.elasticsearch.transport.ElasticTransportNetworkAttributesGetter;
import io.opentelemetry.javaagent.instrumentation.elasticsearch.transport.ElasticTransportRequest; import io.opentelemetry.javaagent.instrumentation.elasticsearch.transport.ElasticTransportRequest;
import io.opentelemetry.javaagent.instrumentation.elasticsearch.transport.ElasticsearchTransportInstrumenterFactory; import io.opentelemetry.javaagent.instrumentation.elasticsearch.transport.ElasticsearchTransportInstrumenterFactory;
import org.elasticsearch.action.ActionResponse; import org.elasticsearch.action.ActionResponse;
@ -18,7 +18,7 @@ public final class Elasticsearch53TransportSingletons {
ElasticsearchTransportInstrumenterFactory.create( ElasticsearchTransportInstrumenterFactory.create(
"io.opentelemetry.elasticsearch-transport-5.3", "io.opentelemetry.elasticsearch-transport-5.3",
new Elasticsearch53TransportExperimentalAttributesExtractor(), new Elasticsearch53TransportExperimentalAttributesExtractor(),
NetClientAttributesExtractor.create(new ElasticTransportNetResponseAttributesGetter())); ServerAttributesExtractor.create(new ElasticTransportNetworkAttributesGetter()));
public static Instrumenter<ElasticTransportRequest, ActionResponse> instrumenter() { public static Instrumenter<ElasticTransportRequest, ActionResponse> instrumenter() {
return INSTRUMENTER; return INSTRUMENTER;

View File

@ -5,26 +5,14 @@
package io.opentelemetry.javaagent.instrumentation.elasticsearch.transport.v6_0; package io.opentelemetry.javaagent.instrumentation.elasticsearch.transport.v6_0;
import io.opentelemetry.instrumentation.api.instrumenter.net.NetClientAttributesGetter; import io.opentelemetry.instrumentation.api.instrumenter.network.ServerAttributesGetter;
import io.opentelemetry.javaagent.instrumentation.elasticsearch.transport.ElasticTransportRequest; import io.opentelemetry.javaagent.instrumentation.elasticsearch.transport.ElasticTransportRequest;
import java.net.InetSocketAddress; import java.net.InetSocketAddress;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import org.elasticsearch.action.ActionResponse; import org.elasticsearch.action.ActionResponse;
public class Elasticsearch6TransportNetAttributesGetter public class Elasticsearch6TransportNetworkAttributesGetter
implements NetClientAttributesGetter<ElasticTransportRequest, ActionResponse> { implements ServerAttributesGetter<ElasticTransportRequest, ActionResponse> {
@Nullable
@Override
public String getServerAddress(ElasticTransportRequest request) {
return null;
}
@Nullable
@Override
public Integer getServerPort(ElasticTransportRequest request) {
return null;
}
@Override @Override
@Nullable @Nullable

View File

@ -6,7 +6,7 @@
package io.opentelemetry.javaagent.instrumentation.elasticsearch.transport.v6_0; package io.opentelemetry.javaagent.instrumentation.elasticsearch.transport.v6_0;
import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter; import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter;
import io.opentelemetry.instrumentation.api.instrumenter.net.NetClientAttributesExtractor; import io.opentelemetry.instrumentation.api.instrumenter.network.ServerAttributesExtractor;
import io.opentelemetry.javaagent.instrumentation.elasticsearch.transport.ElasticTransportRequest; import io.opentelemetry.javaagent.instrumentation.elasticsearch.transport.ElasticTransportRequest;
import io.opentelemetry.javaagent.instrumentation.elasticsearch.transport.ElasticsearchTransportInstrumenterFactory; import io.opentelemetry.javaagent.instrumentation.elasticsearch.transport.ElasticsearchTransportInstrumenterFactory;
import org.elasticsearch.action.ActionResponse; import org.elasticsearch.action.ActionResponse;
@ -17,7 +17,7 @@ public final class Elasticsearch6TransportSingletons {
ElasticsearchTransportInstrumenterFactory.create( ElasticsearchTransportInstrumenterFactory.create(
"io.opentelemetry.elasticsearch-transport-6.0", "io.opentelemetry.elasticsearch-transport-6.0",
new Elasticsearch6TransportExperimentalAttributesExtractor(), new Elasticsearch6TransportExperimentalAttributesExtractor(),
NetClientAttributesExtractor.create(new Elasticsearch6TransportNetAttributesGetter())); ServerAttributesExtractor.create(new Elasticsearch6TransportNetworkAttributesGetter()));
public static Instrumenter<ElasticTransportRequest, ActionResponse> instrumenter() { public static Instrumenter<ElasticTransportRequest, ActionResponse> instrumenter() {
return INSTRUMENTER; return INSTRUMENTER;

View File

@ -5,12 +5,12 @@
package io.opentelemetry.javaagent.instrumentation.elasticsearch.transport; package io.opentelemetry.javaagent.instrumentation.elasticsearch.transport;
import io.opentelemetry.instrumentation.api.instrumenter.net.NetClientAttributesGetter; import io.opentelemetry.instrumentation.api.instrumenter.network.ServerAttributesGetter;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import org.elasticsearch.action.ActionResponse; import org.elasticsearch.action.ActionResponse;
public class ElasticTransportNetResponseAttributesGetter public class ElasticTransportNetworkAttributesGetter
implements NetClientAttributesGetter<ElasticTransportRequest, ActionResponse> { implements ServerAttributesGetter<ElasticTransportRequest, ActionResponse> {
@Override @Override
@Nullable @Nullable

View File

@ -13,14 +13,13 @@ import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter;
import io.opentelemetry.instrumentation.api.instrumenter.InstrumenterBuilder; import io.opentelemetry.instrumentation.api.instrumenter.InstrumenterBuilder;
import io.opentelemetry.instrumentation.api.instrumenter.SpanKindExtractor; import io.opentelemetry.instrumentation.api.instrumenter.SpanKindExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.SpanNameExtractor; import io.opentelemetry.instrumentation.api.instrumenter.SpanNameExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.net.NetClientAttributesExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.network.ClientAttributesExtractor; import io.opentelemetry.instrumentation.api.instrumenter.network.ClientAttributesExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.network.ServerAttributesExtractor; import io.opentelemetry.instrumentation.api.instrumenter.network.ServerAttributesExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.rpc.RpcClientAttributesExtractor; import io.opentelemetry.instrumentation.api.instrumenter.rpc.RpcClientAttributesExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.rpc.RpcClientMetrics; import io.opentelemetry.instrumentation.api.instrumenter.rpc.RpcClientMetrics;
import io.opentelemetry.instrumentation.api.instrumenter.rpc.RpcServerAttributesExtractor; import io.opentelemetry.instrumentation.api.instrumenter.rpc.RpcServerAttributesExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.rpc.RpcServerMetrics; import io.opentelemetry.instrumentation.api.instrumenter.rpc.RpcServerMetrics;
import io.opentelemetry.instrumentation.grpc.v1_6.internal.GrpcNetClientAttributesGetter; import io.opentelemetry.instrumentation.grpc.v1_6.internal.GrpcClientNetworkAttributesGetter;
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes; import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
@ -175,14 +174,15 @@ public final class GrpcTelemetryBuilder {
.setSpanStatusExtractor(new GrpcSpanStatusExtractor()) .setSpanStatusExtractor(new GrpcSpanStatusExtractor())
.addAttributesExtractors(additionalExtractors)); .addAttributesExtractors(additionalExtractors));
GrpcNetClientAttributesGetter netClientAttributesGetter = new GrpcNetClientAttributesGetter(); GrpcClientNetworkAttributesGetter netClientAttributesGetter =
new GrpcClientNetworkAttributesGetter();
GrpcNetworkServerAttributesGetter netServerAttributesGetter = GrpcNetworkServerAttributesGetter netServerAttributesGetter =
new GrpcNetworkServerAttributesGetter(); new GrpcNetworkServerAttributesGetter();
GrpcRpcAttributesGetter rpcAttributesGetter = GrpcRpcAttributesGetter.INSTANCE; GrpcRpcAttributesGetter rpcAttributesGetter = GrpcRpcAttributesGetter.INSTANCE;
clientInstrumenterBuilder clientInstrumenterBuilder
.addAttributesExtractor(RpcClientAttributesExtractor.create(rpcAttributesGetter)) .addAttributesExtractor(RpcClientAttributesExtractor.create(rpcAttributesGetter))
.addAttributesExtractor(NetClientAttributesExtractor.create(netClientAttributesGetter)) .addAttributesExtractor(ServerAttributesExtractor.create(netClientAttributesGetter))
.addAttributesExtractors(additionalClientExtractors) .addAttributesExtractors(additionalClientExtractors)
.addAttributesExtractor( .addAttributesExtractor(
new GrpcAttributesExtractor( new GrpcAttributesExtractor(

View File

@ -6,7 +6,7 @@
package io.opentelemetry.instrumentation.grpc.v1_6.internal; package io.opentelemetry.instrumentation.grpc.v1_6.internal;
import io.grpc.Status; import io.grpc.Status;
import io.opentelemetry.instrumentation.api.instrumenter.net.NetClientAttributesGetter; import io.opentelemetry.instrumentation.api.instrumenter.network.ServerAttributesGetter;
import io.opentelemetry.instrumentation.grpc.v1_6.GrpcRequest; import io.opentelemetry.instrumentation.grpc.v1_6.GrpcRequest;
import java.net.InetSocketAddress; import java.net.InetSocketAddress;
import java.net.SocketAddress; import java.net.SocketAddress;
@ -16,8 +16,8 @@ import javax.annotation.Nullable;
* This class is internal and is hence not for public use. Its APIs are unstable and can change at * This class is internal and is hence not for public use. Its APIs are unstable and can change at
* any time. * any time.
*/ */
public final class GrpcNetClientAttributesGetter public final class GrpcClientNetworkAttributesGetter
implements NetClientAttributesGetter<GrpcRequest, Status> { implements ServerAttributesGetter<GrpcRequest, Status> {
@Nullable @Nullable
@Override @Override

View File

@ -12,11 +12,11 @@ import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter;
import io.opentelemetry.instrumentation.api.instrumenter.SpanKindExtractor; import io.opentelemetry.instrumentation.api.instrumenter.SpanKindExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.db.DbClientSpanNameExtractor; import io.opentelemetry.instrumentation.api.instrumenter.db.DbClientSpanNameExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.db.SqlClientAttributesExtractor; import io.opentelemetry.instrumentation.api.instrumenter.db.SqlClientAttributesExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.net.NetClientAttributesExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.net.PeerServiceAttributesExtractor; import io.opentelemetry.instrumentation.api.instrumenter.net.PeerServiceAttributesExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.network.ServerAttributesExtractor;
import io.opentelemetry.instrumentation.jdbc.internal.DbRequest; import io.opentelemetry.instrumentation.jdbc.internal.DbRequest;
import io.opentelemetry.instrumentation.jdbc.internal.JdbcAttributesGetter; import io.opentelemetry.instrumentation.jdbc.internal.JdbcAttributesGetter;
import io.opentelemetry.instrumentation.jdbc.internal.JdbcNetAttributesGetter; import io.opentelemetry.instrumentation.jdbc.internal.JdbcNetworkAttributesGetter;
import io.opentelemetry.javaagent.bootstrap.internal.CommonConfig; import io.opentelemetry.javaagent.bootstrap.internal.CommonConfig;
import io.opentelemetry.javaagent.bootstrap.internal.InstrumentationConfig; import io.opentelemetry.javaagent.bootstrap.internal.InstrumentationConfig;
import io.opentelemetry.javaagent.bootstrap.jdbc.DbInfo; import io.opentelemetry.javaagent.bootstrap.jdbc.DbInfo;
@ -31,7 +31,7 @@ public final class JdbcSingletons {
static { static {
JdbcAttributesGetter dbAttributesGetter = new JdbcAttributesGetter(); JdbcAttributesGetter dbAttributesGetter = new JdbcAttributesGetter();
JdbcNetAttributesGetter netAttributesGetter = new JdbcNetAttributesGetter(); JdbcNetworkAttributesGetter netAttributesGetter = new JdbcNetworkAttributesGetter();
STATEMENT_INSTRUMENTER = STATEMENT_INSTRUMENTER =
Instrumenter.<DbRequest, Void>builder( Instrumenter.<DbRequest, Void>builder(
@ -46,7 +46,7 @@ public final class JdbcSingletons {
"otel.instrumentation.jdbc.statement-sanitizer.enabled", "otel.instrumentation.jdbc.statement-sanitizer.enabled",
CommonConfig.get().isStatementSanitizationEnabled())) CommonConfig.get().isStatementSanitizationEnabled()))
.build()) .build())
.addAttributesExtractor(NetClientAttributesExtractor.create(netAttributesGetter)) .addAttributesExtractor(ServerAttributesExtractor.create(netAttributesGetter))
.addAttributesExtractor( .addAttributesExtractor(
PeerServiceAttributesExtractor.create( PeerServiceAttributesExtractor.create(
netAttributesGetter, CommonConfig.get().getPeerServiceMapping())) netAttributesGetter, CommonConfig.get().getPeerServiceMapping()))

View File

@ -11,7 +11,7 @@ import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter;
import io.opentelemetry.instrumentation.api.instrumenter.SpanKindExtractor; import io.opentelemetry.instrumentation.api.instrumenter.SpanKindExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.db.DbClientSpanNameExtractor; import io.opentelemetry.instrumentation.api.instrumenter.db.DbClientSpanNameExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.db.SqlClientAttributesExtractor; import io.opentelemetry.instrumentation.api.instrumenter.db.SqlClientAttributesExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.net.NetClientAttributesExtractor; import io.opentelemetry.instrumentation.api.instrumenter.network.ServerAttributesExtractor;
import io.opentelemetry.instrumentation.api.internal.ConfigPropertiesUtil; import io.opentelemetry.instrumentation.api.internal.ConfigPropertiesUtil;
/** /**
@ -21,7 +21,8 @@ import io.opentelemetry.instrumentation.api.internal.ConfigPropertiesUtil;
public final class JdbcInstrumenterFactory { public final class JdbcInstrumenterFactory {
public static final String INSTRUMENTATION_NAME = "io.opentelemetry.jdbc"; public static final String INSTRUMENTATION_NAME = "io.opentelemetry.jdbc";
private static final JdbcAttributesGetter dbAttributesGetter = new JdbcAttributesGetter(); private static final JdbcAttributesGetter dbAttributesGetter = new JdbcAttributesGetter();
private static final JdbcNetAttributesGetter netAttributesGetter = new JdbcNetAttributesGetter(); private static final JdbcNetworkAttributesGetter netAttributesGetter =
new JdbcNetworkAttributesGetter();
public static Instrumenter<DbRequest, Void> createStatementInstrumenter() { public static Instrumenter<DbRequest, Void> createStatementInstrumenter() {
return createStatementInstrumenter(GlobalOpenTelemetry.get()); return createStatementInstrumenter(GlobalOpenTelemetry.get());
@ -39,7 +40,7 @@ public final class JdbcInstrumenterFactory {
ConfigPropertiesUtil.getBoolean( ConfigPropertiesUtil.getBoolean(
"otel.instrumentation.common.db-statement-sanitizer.enabled", true)) "otel.instrumentation.common.db-statement-sanitizer.enabled", true))
.build()) .build())
.addAttributesExtractor(NetClientAttributesExtractor.create(netAttributesGetter)) .addAttributesExtractor(ServerAttributesExtractor.create(netAttributesGetter))
.buildInstrumenter(SpanKindExtractor.alwaysClient()); .buildInstrumenter(SpanKindExtractor.alwaysClient());
} }

View File

@ -5,14 +5,14 @@
package io.opentelemetry.instrumentation.jdbc.internal; package io.opentelemetry.instrumentation.jdbc.internal;
import io.opentelemetry.instrumentation.api.instrumenter.net.NetClientAttributesGetter; import io.opentelemetry.instrumentation.api.instrumenter.network.ServerAttributesGetter;
import javax.annotation.Nullable; import javax.annotation.Nullable;
/** /**
* This class is internal and is hence not for public use. Its APIs are unstable and can change at * This class is internal and is hence not for public use. Its APIs are unstable and can change at
* any time. * any time.
*/ */
public final class JdbcNetAttributesGetter implements NetClientAttributesGetter<DbRequest, Void> { public final class JdbcNetworkAttributesGetter implements ServerAttributesGetter<DbRequest, Void> {
@Nullable @Nullable
@Override @Override

View File

@ -5,9 +5,9 @@
package io.opentelemetry.javaagent.instrumentation.jedis.v1_4; package io.opentelemetry.javaagent.instrumentation.jedis.v1_4;
import io.opentelemetry.instrumentation.api.instrumenter.net.NetClientAttributesGetter; import io.opentelemetry.instrumentation.api.instrumenter.network.ServerAttributesGetter;
final class JedisNetAttributesGetter implements NetClientAttributesGetter<JedisRequest, Void> { final class JedisNetworkAttributesGetter implements ServerAttributesGetter<JedisRequest, Void> {
@Override @Override
public String getServerAddress(JedisRequest request) { public String getServerAddress(JedisRequest request) {

View File

@ -10,8 +10,8 @@ import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter;
import io.opentelemetry.instrumentation.api.instrumenter.SpanKindExtractor; import io.opentelemetry.instrumentation.api.instrumenter.SpanKindExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.db.DbClientAttributesExtractor; import io.opentelemetry.instrumentation.api.instrumenter.db.DbClientAttributesExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.db.DbClientSpanNameExtractor; import io.opentelemetry.instrumentation.api.instrumenter.db.DbClientSpanNameExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.net.NetClientAttributesExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.net.PeerServiceAttributesExtractor; import io.opentelemetry.instrumentation.api.instrumenter.net.PeerServiceAttributesExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.network.ServerAttributesExtractor;
import io.opentelemetry.javaagent.bootstrap.internal.CommonConfig; import io.opentelemetry.javaagent.bootstrap.internal.CommonConfig;
public final class JedisSingletons { public final class JedisSingletons {
@ -21,7 +21,7 @@ public final class JedisSingletons {
static { static {
JedisDbAttributesGetter dbAttributesGetter = new JedisDbAttributesGetter(); JedisDbAttributesGetter dbAttributesGetter = new JedisDbAttributesGetter();
JedisNetAttributesGetter netAttributesGetter = new JedisNetAttributesGetter(); JedisNetworkAttributesGetter netAttributesGetter = new JedisNetworkAttributesGetter();
INSTRUMENTER = INSTRUMENTER =
Instrumenter.<JedisRequest, Void>builder( Instrumenter.<JedisRequest, Void>builder(
@ -29,7 +29,7 @@ public final class JedisSingletons {
INSTRUMENTATION_NAME, INSTRUMENTATION_NAME,
DbClientSpanNameExtractor.create(dbAttributesGetter)) DbClientSpanNameExtractor.create(dbAttributesGetter))
.addAttributesExtractor(DbClientAttributesExtractor.create(dbAttributesGetter)) .addAttributesExtractor(DbClientAttributesExtractor.create(dbAttributesGetter))
.addAttributesExtractor(NetClientAttributesExtractor.create(netAttributesGetter)) .addAttributesExtractor(ServerAttributesExtractor.create(netAttributesGetter))
.addAttributesExtractor( .addAttributesExtractor(
PeerServiceAttributesExtractor.create( PeerServiceAttributesExtractor.create(
netAttributesGetter, CommonConfig.get().getPeerServiceMapping())) netAttributesGetter, CommonConfig.get().getPeerServiceMapping()))

View File

@ -5,12 +5,12 @@
package io.opentelemetry.javaagent.instrumentation.jedis.v3_0; package io.opentelemetry.javaagent.instrumentation.jedis.v3_0;
import io.opentelemetry.instrumentation.api.instrumenter.net.NetClientAttributesGetter; import io.opentelemetry.instrumentation.api.instrumenter.network.ServerAttributesGetter;
import java.net.InetSocketAddress; import java.net.InetSocketAddress;
import java.net.Socket; import java.net.Socket;
import javax.annotation.Nullable; import javax.annotation.Nullable;
final class JedisNetAttributesGetter implements NetClientAttributesGetter<JedisRequest, Void> { final class JedisNetworkAttributesGetter implements ServerAttributesGetter<JedisRequest, Void> {
@Nullable @Nullable
@Override @Override

View File

@ -10,8 +10,8 @@ import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter;
import io.opentelemetry.instrumentation.api.instrumenter.SpanKindExtractor; import io.opentelemetry.instrumentation.api.instrumenter.SpanKindExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.db.DbClientAttributesExtractor; import io.opentelemetry.instrumentation.api.instrumenter.db.DbClientAttributesExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.db.DbClientSpanNameExtractor; import io.opentelemetry.instrumentation.api.instrumenter.db.DbClientSpanNameExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.net.NetClientAttributesExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.net.PeerServiceAttributesExtractor; import io.opentelemetry.instrumentation.api.instrumenter.net.PeerServiceAttributesExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.network.ServerAttributesExtractor;
import io.opentelemetry.javaagent.bootstrap.internal.CommonConfig; import io.opentelemetry.javaagent.bootstrap.internal.CommonConfig;
public final class JedisSingletons { public final class JedisSingletons {
@ -21,7 +21,7 @@ public final class JedisSingletons {
static { static {
JedisDbAttributesGetter dbAttributesGetter = new JedisDbAttributesGetter(); JedisDbAttributesGetter dbAttributesGetter = new JedisDbAttributesGetter();
JedisNetAttributesGetter netAttributesGetter = new JedisNetAttributesGetter(); JedisNetworkAttributesGetter netAttributesGetter = new JedisNetworkAttributesGetter();
INSTRUMENTER = INSTRUMENTER =
Instrumenter.<JedisRequest, Void>builder( Instrumenter.<JedisRequest, Void>builder(
@ -29,7 +29,7 @@ public final class JedisSingletons {
INSTRUMENTATION_NAME, INSTRUMENTATION_NAME,
DbClientSpanNameExtractor.create(dbAttributesGetter)) DbClientSpanNameExtractor.create(dbAttributesGetter))
.addAttributesExtractor(DbClientAttributesExtractor.create(dbAttributesGetter)) .addAttributesExtractor(DbClientAttributesExtractor.create(dbAttributesGetter))
.addAttributesExtractor(NetClientAttributesExtractor.create(netAttributesGetter)) .addAttributesExtractor(ServerAttributesExtractor.create(netAttributesGetter))
.addAttributesExtractor( .addAttributesExtractor(
PeerServiceAttributesExtractor.create( PeerServiceAttributesExtractor.create(
netAttributesGetter, CommonConfig.get().getPeerServiceMapping())) netAttributesGetter, CommonConfig.get().getPeerServiceMapping()))

View File

@ -5,24 +5,12 @@
package io.opentelemetry.javaagent.instrumentation.jedis.v4_0; package io.opentelemetry.javaagent.instrumentation.jedis.v4_0;
import io.opentelemetry.instrumentation.api.instrumenter.net.NetClientAttributesGetter; import io.opentelemetry.instrumentation.api.instrumenter.network.ServerAttributesGetter;
import java.net.InetSocketAddress; import java.net.InetSocketAddress;
import java.net.SocketAddress; import java.net.SocketAddress;
import javax.annotation.Nullable; import javax.annotation.Nullable;
final class JedisNetAttributesGetter implements NetClientAttributesGetter<JedisRequest, Void> { final class JedisNetworkAttributesGetter implements ServerAttributesGetter<JedisRequest, Void> {
@Nullable
@Override
public String getServerAddress(JedisRequest jedisRequest) {
return null;
}
@Nullable
@Override
public Integer getServerPort(JedisRequest jedisRequest) {
return null;
}
@Override @Override
@Nullable @Nullable

View File

@ -10,8 +10,8 @@ import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter;
import io.opentelemetry.instrumentation.api.instrumenter.SpanKindExtractor; import io.opentelemetry.instrumentation.api.instrumenter.SpanKindExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.db.DbClientAttributesExtractor; import io.opentelemetry.instrumentation.api.instrumenter.db.DbClientAttributesExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.db.DbClientSpanNameExtractor; import io.opentelemetry.instrumentation.api.instrumenter.db.DbClientSpanNameExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.net.NetClientAttributesExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.net.PeerServiceAttributesExtractor; import io.opentelemetry.instrumentation.api.instrumenter.net.PeerServiceAttributesExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.network.ServerAttributesExtractor;
import io.opentelemetry.javaagent.bootstrap.internal.CommonConfig; import io.opentelemetry.javaagent.bootstrap.internal.CommonConfig;
public final class JedisSingletons { public final class JedisSingletons {
@ -21,7 +21,7 @@ public final class JedisSingletons {
static { static {
JedisDbAttributesGetter dbAttributesGetter = new JedisDbAttributesGetter(); JedisDbAttributesGetter dbAttributesGetter = new JedisDbAttributesGetter();
JedisNetAttributesGetter netAttributesGetter = new JedisNetAttributesGetter(); JedisNetworkAttributesGetter netAttributesGetter = new JedisNetworkAttributesGetter();
INSTRUMENTER = INSTRUMENTER =
Instrumenter.<JedisRequest, Void>builder( Instrumenter.<JedisRequest, Void>builder(
@ -29,7 +29,7 @@ public final class JedisSingletons {
INSTRUMENTATION_NAME, INSTRUMENTATION_NAME,
DbClientSpanNameExtractor.create(dbAttributesGetter)) DbClientSpanNameExtractor.create(dbAttributesGetter))
.addAttributesExtractor(DbClientAttributesExtractor.create(dbAttributesGetter)) .addAttributesExtractor(DbClientAttributesExtractor.create(dbAttributesGetter))
.addAttributesExtractor(NetClientAttributesExtractor.create(netAttributesGetter)) .addAttributesExtractor(ServerAttributesExtractor.create(netAttributesGetter))
.addAttributesExtractor( .addAttributesExtractor(
PeerServiceAttributesExtractor.create( PeerServiceAttributesExtractor.create(
netAttributesGetter, CommonConfig.get().getPeerServiceMapping())) netAttributesGetter, CommonConfig.get().getPeerServiceMapping()))

View File

@ -6,9 +6,10 @@
package io.opentelemetry.javaagent.instrumentation.lettuce.v4_0; package io.opentelemetry.javaagent.instrumentation.lettuce.v4_0;
import com.lambdaworks.redis.RedisURI; import com.lambdaworks.redis.RedisURI;
import io.opentelemetry.instrumentation.api.instrumenter.net.NetClientAttributesGetter; import io.opentelemetry.instrumentation.api.instrumenter.network.ServerAttributesGetter;
final class LettuceConnectNetAttributesGetter implements NetClientAttributesGetter<RedisURI, Void> { final class LettuceConnectNetworkAttributesGetter
implements ServerAttributesGetter<RedisURI, Void> {
@Override @Override
public String getServerAddress(RedisURI redisUri) { public String getServerAddress(RedisURI redisUri) {

View File

@ -14,8 +14,8 @@ import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter;
import io.opentelemetry.instrumentation.api.instrumenter.SpanKindExtractor; import io.opentelemetry.instrumentation.api.instrumenter.SpanKindExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.db.DbClientAttributesExtractor; import io.opentelemetry.instrumentation.api.instrumenter.db.DbClientAttributesExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.db.DbClientSpanNameExtractor; import io.opentelemetry.instrumentation.api.instrumenter.db.DbClientSpanNameExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.net.NetClientAttributesExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.net.PeerServiceAttributesExtractor; import io.opentelemetry.instrumentation.api.instrumenter.net.PeerServiceAttributesExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.network.ServerAttributesExtractor;
import io.opentelemetry.javaagent.bootstrap.internal.CommonConfig; import io.opentelemetry.javaagent.bootstrap.internal.CommonConfig;
public final class LettuceSingletons { public final class LettuceSingletons {
@ -38,12 +38,13 @@ public final class LettuceSingletons {
.addAttributesExtractor(DbClientAttributesExtractor.create(dbAttributesGetter)) .addAttributesExtractor(DbClientAttributesExtractor.create(dbAttributesGetter))
.buildInstrumenter(SpanKindExtractor.alwaysClient()); .buildInstrumenter(SpanKindExtractor.alwaysClient());
LettuceConnectNetAttributesGetter netAttributesGetter = new LettuceConnectNetAttributesGetter(); LettuceConnectNetworkAttributesGetter netAttributesGetter =
new LettuceConnectNetworkAttributesGetter();
CONNECT_INSTRUMENTER = CONNECT_INSTRUMENTER =
Instrumenter.<RedisURI, Void>builder( Instrumenter.<RedisURI, Void>builder(
GlobalOpenTelemetry.get(), INSTRUMENTATION_NAME, redisUri -> "CONNECT") GlobalOpenTelemetry.get(), INSTRUMENTATION_NAME, redisUri -> "CONNECT")
.addAttributesExtractor(NetClientAttributesExtractor.create(netAttributesGetter)) .addAttributesExtractor(ServerAttributesExtractor.create(netAttributesGetter))
.addAttributesExtractor( .addAttributesExtractor(
PeerServiceAttributesExtractor.create( PeerServiceAttributesExtractor.create(
netAttributesGetter, CommonConfig.get().getPeerServiceMapping())) netAttributesGetter, CommonConfig.get().getPeerServiceMapping()))

View File

@ -6,9 +6,10 @@
package io.opentelemetry.javaagent.instrumentation.lettuce.v5_0; package io.opentelemetry.javaagent.instrumentation.lettuce.v5_0;
import io.lettuce.core.RedisURI; import io.lettuce.core.RedisURI;
import io.opentelemetry.instrumentation.api.instrumenter.net.NetClientAttributesGetter; import io.opentelemetry.instrumentation.api.instrumenter.network.ServerAttributesGetter;
final class LettuceConnectNetAttributesGetter implements NetClientAttributesGetter<RedisURI, Void> { final class LettuceConnectNetworkAttributesGetter
implements ServerAttributesGetter<RedisURI, Void> {
@Override @Override
public String getServerAddress(RedisURI redisUri) { public String getServerAddress(RedisURI redisUri) {

View File

@ -14,8 +14,8 @@ import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter;
import io.opentelemetry.instrumentation.api.instrumenter.SpanKindExtractor; import io.opentelemetry.instrumentation.api.instrumenter.SpanKindExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.db.DbClientAttributesExtractor; import io.opentelemetry.instrumentation.api.instrumenter.db.DbClientAttributesExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.db.DbClientSpanNameExtractor; import io.opentelemetry.instrumentation.api.instrumenter.db.DbClientSpanNameExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.net.NetClientAttributesExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.net.PeerServiceAttributesExtractor; import io.opentelemetry.instrumentation.api.instrumenter.net.PeerServiceAttributesExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.network.ServerAttributesExtractor;
import io.opentelemetry.javaagent.bootstrap.internal.CommonConfig; import io.opentelemetry.javaagent.bootstrap.internal.CommonConfig;
public final class LettuceSingletons { public final class LettuceSingletons {
@ -38,16 +38,17 @@ public final class LettuceSingletons {
.addAttributesExtractor(DbClientAttributesExtractor.create(dbAttributesGetter)) .addAttributesExtractor(DbClientAttributesExtractor.create(dbAttributesGetter))
.buildInstrumenter(SpanKindExtractor.alwaysClient()); .buildInstrumenter(SpanKindExtractor.alwaysClient());
LettuceConnectNetAttributesGetter connectNetAttributesGetter = LettuceConnectNetworkAttributesGetter connectNetworkAttributesGetter =
new LettuceConnectNetAttributesGetter(); new LettuceConnectNetworkAttributesGetter();
CONNECT_INSTRUMENTER = CONNECT_INSTRUMENTER =
Instrumenter.<RedisURI, Void>builder( Instrumenter.<RedisURI, Void>builder(
GlobalOpenTelemetry.get(), INSTRUMENTATION_NAME, redisUri -> "CONNECT") GlobalOpenTelemetry.get(), INSTRUMENTATION_NAME, redisUri -> "CONNECT")
.addAttributesExtractor(NetClientAttributesExtractor.create(connectNetAttributesGetter)) .addAttributesExtractor(
ServerAttributesExtractor.create(connectNetworkAttributesGetter))
.addAttributesExtractor( .addAttributesExtractor(
PeerServiceAttributesExtractor.create( PeerServiceAttributesExtractor.create(
connectNetAttributesGetter, CommonConfig.get().getPeerServiceMapping())) connectNetworkAttributesGetter, CommonConfig.get().getPeerServiceMapping()))
.addAttributesExtractor(new LettuceConnectAttributesExtractor()) .addAttributesExtractor(new LettuceConnectAttributesExtractor())
.buildInstrumenter(SpanKindExtractor.alwaysClient()); .buildInstrumenter(SpanKindExtractor.alwaysClient());
} }

View File

@ -5,25 +5,13 @@
package io.opentelemetry.instrumentation.lettuce.v5_1; package io.opentelemetry.instrumentation.lettuce.v5_1;
import io.opentelemetry.instrumentation.api.instrumenter.net.NetClientAttributesGetter; import io.opentelemetry.instrumentation.api.instrumenter.network.ServerAttributesGetter;
import io.opentelemetry.instrumentation.lettuce.v5_1.OpenTelemetryTracing.OpenTelemetryEndpoint; import io.opentelemetry.instrumentation.lettuce.v5_1.OpenTelemetryTracing.OpenTelemetryEndpoint;
import java.net.InetSocketAddress; import java.net.InetSocketAddress;
import javax.annotation.Nullable; import javax.annotation.Nullable;
final class LettuceNetAttributesGetter final class LettuceNetworkAttributesGetter
implements NetClientAttributesGetter<OpenTelemetryEndpoint, Void> { implements ServerAttributesGetter<OpenTelemetryEndpoint, Void> {
@Nullable
@Override
public String getServerAddress(OpenTelemetryEndpoint openTelemetryEndpoint) {
return null;
}
@Nullable
@Override
public Integer getServerPort(OpenTelemetryEndpoint openTelemetryEndpoint) {
return null;
}
@Nullable @Nullable
@Override @Override

View File

@ -26,7 +26,7 @@ import io.opentelemetry.api.trace.StatusCode;
import io.opentelemetry.context.Context; import io.opentelemetry.context.Context;
import io.opentelemetry.instrumentation.api.db.RedisCommandSanitizer; import io.opentelemetry.instrumentation.api.db.RedisCommandSanitizer;
import io.opentelemetry.instrumentation.api.instrumenter.AttributesExtractor; import io.opentelemetry.instrumentation.api.instrumenter.AttributesExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.net.NetClientAttributesExtractor; import io.opentelemetry.instrumentation.api.instrumenter.network.ServerAttributesExtractor;
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes; import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes.DbSystemValues; import io.opentelemetry.semconv.trace.attributes.SemanticAttributes.DbSystemValues;
import java.net.InetSocketAddress; import java.net.InetSocketAddress;
@ -38,8 +38,8 @@ import javax.annotation.Nullable;
final class OpenTelemetryTracing implements Tracing { final class OpenTelemetryTracing implements Tracing {
private static final AttributesExtractor<OpenTelemetryEndpoint, Void> netAttributesExtractor = private static final AttributesExtractor<OpenTelemetryEndpoint, Void> serverAttributesExtractor =
NetClientAttributesExtractor.create(new LettuceNetAttributesGetter()); ServerAttributesExtractor.create(new LettuceNetworkAttributesGetter());
private final TracerProvider tracerProvider; private final TracerProvider tracerProvider;
OpenTelemetryTracing(io.opentelemetry.api.trace.Tracer tracer, RedisCommandSanitizer sanitizer) { OpenTelemetryTracing(io.opentelemetry.api.trace.Tracer tracer, RedisCommandSanitizer sanitizer) {
@ -204,7 +204,7 @@ final class OpenTelemetryTracing implements Tracing {
private void fillEndpoint(OpenTelemetryEndpoint endpoint) { private void fillEndpoint(OpenTelemetryEndpoint endpoint) {
AttributesBuilder attributesBuilder = Attributes.builder(); AttributesBuilder attributesBuilder = Attributes.builder();
Context currentContext = span == null ? context : context.with(span); Context currentContext = span == null ? context : context.with(span);
netAttributesExtractor.onEnd(attributesBuilder, currentContext, endpoint, null, null); serverAttributesExtractor.onEnd(attributesBuilder, currentContext, endpoint, null, null);
if (span != null) { if (span != null) {
span.setAllAttributes(attributesBuilder.build()); span.setAllAttributes(attributesBuilder.build());
} else { } else {

View File

@ -7,19 +7,16 @@ package io.opentelemetry.instrumentation.mongo.v3_1;
import com.mongodb.event.CommandStartedEvent; import com.mongodb.event.CommandStartedEvent;
import io.opentelemetry.api.OpenTelemetry; import io.opentelemetry.api.OpenTelemetry;
import io.opentelemetry.instrumentation.api.instrumenter.AttributesExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter; import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter;
import io.opentelemetry.instrumentation.api.instrumenter.SpanKindExtractor; import io.opentelemetry.instrumentation.api.instrumenter.SpanKindExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.SpanNameExtractor; import io.opentelemetry.instrumentation.api.instrumenter.SpanNameExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.db.DbClientAttributesExtractor; import io.opentelemetry.instrumentation.api.instrumenter.db.DbClientAttributesExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.net.NetClientAttributesExtractor; import io.opentelemetry.instrumentation.api.instrumenter.network.ServerAttributesExtractor;
class MongoInstrumenterFactory { class MongoInstrumenterFactory {
private static final MongoAttributesExtractor attributesExtractor = private static final MongoAttributesExtractor attributesExtractor =
new MongoAttributesExtractor(); new MongoAttributesExtractor();
private static final AttributesExtractor<CommandStartedEvent, Void> netAttributesExtractor =
NetClientAttributesExtractor.create(new MongoNetAttributesGetter());
static Instrumenter<CommandStartedEvent, Void> createInstrumenter( static Instrumenter<CommandStartedEvent, Void> createInstrumenter(
OpenTelemetry openTelemetry, OpenTelemetry openTelemetry,
@ -34,7 +31,8 @@ class MongoInstrumenterFactory {
return Instrumenter.<CommandStartedEvent, Void>builder( return Instrumenter.<CommandStartedEvent, Void>builder(
openTelemetry, "io.opentelemetry.mongo-3.1", spanNameExtractor) openTelemetry, "io.opentelemetry.mongo-3.1", spanNameExtractor)
.addAttributesExtractor(DbClientAttributesExtractor.create(dbAttributesGetter)) .addAttributesExtractor(DbClientAttributesExtractor.create(dbAttributesGetter))
.addAttributesExtractor(netAttributesExtractor) .addAttributesExtractor(
ServerAttributesExtractor.create(new MongoNetworkAttributesGetter()))
.addAttributesExtractor(attributesExtractor) .addAttributesExtractor(attributesExtractor)
.buildInstrumenter(SpanKindExtractor.alwaysClient()); .buildInstrumenter(SpanKindExtractor.alwaysClient());
} }

View File

@ -6,10 +6,10 @@
package io.opentelemetry.instrumentation.mongo.v3_1; package io.opentelemetry.instrumentation.mongo.v3_1;
import com.mongodb.event.CommandStartedEvent; import com.mongodb.event.CommandStartedEvent;
import io.opentelemetry.instrumentation.api.instrumenter.net.NetClientAttributesGetter; import io.opentelemetry.instrumentation.api.instrumenter.network.ServerAttributesGetter;
import javax.annotation.Nullable; import javax.annotation.Nullable;
class MongoNetAttributesGetter implements NetClientAttributesGetter<CommandStartedEvent, Void> { class MongoNetworkAttributesGetter implements ServerAttributesGetter<CommandStartedEvent, Void> {
@Nullable @Nullable
@Override @Override

View File

@ -18,7 +18,6 @@ import io.opentelemetry.instrumentation.api.instrumenter.http.HttpClientExperime
import io.opentelemetry.instrumentation.api.instrumenter.http.HttpClientMetrics; import io.opentelemetry.instrumentation.api.instrumenter.http.HttpClientMetrics;
import io.opentelemetry.instrumentation.api.instrumenter.http.HttpSpanNameExtractor; import io.opentelemetry.instrumentation.api.instrumenter.http.HttpSpanNameExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.http.HttpSpanStatusExtractor; import io.opentelemetry.instrumentation.api.instrumenter.http.HttpSpanStatusExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.net.NetClientAttributesExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.net.PeerServiceAttributesExtractor; import io.opentelemetry.instrumentation.api.instrumenter.net.PeerServiceAttributesExtractor;
import io.opentelemetry.instrumentation.netty.common.internal.NettyConnectionRequest; import io.opentelemetry.instrumentation.netty.common.internal.NettyConnectionRequest;
import io.opentelemetry.instrumentation.netty.v4.common.HttpRequestAndChannel; import io.opentelemetry.instrumentation.netty.v4.common.HttpRequestAndChannel;
@ -108,6 +107,7 @@ public final class NettyClientInstrumenterFactory {
: new NettyErrorOnlyConnectionInstrumenter(instrumenter); : new NettyErrorOnlyConnectionInstrumenter(instrumenter);
} }
@SuppressWarnings("deprecation") // have to use the deprecated Net*AttributesExtractor for now
public NettySslInstrumenter createSslInstrumenter() { public NettySslInstrumenter createSslInstrumenter() {
if (sslTelemetryState == NettyConnectionInstrumentationFlag.DISABLED) { if (sslTelemetryState == NettyConnectionInstrumentationFlag.DISABLED) {
return NoopSslInstrumenter.INSTANCE; return NoopSslInstrumenter.INSTANCE;
@ -119,7 +119,9 @@ public final class NettyClientInstrumenterFactory {
Instrumenter<NettySslRequest, Void> instrumenter = Instrumenter<NettySslRequest, Void> instrumenter =
Instrumenter.<NettySslRequest, Void>builder( Instrumenter.<NettySslRequest, Void>builder(
openTelemetry, instrumentationName, NettySslRequest::spanName) openTelemetry, instrumentationName, NettySslRequest::spanName)
.addAttributesExtractor(NetClientAttributesExtractor.create(netAttributesGetter)) .addAttributesExtractor(
io.opentelemetry.instrumentation.api.instrumenter.net.NetClientAttributesExtractor
.create(netAttributesGetter))
.addAttributesExtractor( .addAttributesExtractor(
PeerServiceAttributesExtractor.create(netAttributesGetter, peerServiceMapping)) PeerServiceAttributesExtractor.create(netAttributesGetter, peerServiceMapping))
.buildInstrumenter( .buildInstrumenter(

View File

@ -9,13 +9,14 @@ import static io.opentelemetry.semconv.trace.attributes.SemanticAttributes.NetTr
import static io.opentelemetry.semconv.trace.attributes.SemanticAttributes.NetTransportValues.IP_UDP; import static io.opentelemetry.semconv.trace.attributes.SemanticAttributes.NetTransportValues.IP_UDP;
import io.netty.channel.socket.DatagramChannel; import io.netty.channel.socket.DatagramChannel;
import io.opentelemetry.instrumentation.api.instrumenter.net.NetClientAttributesGetter;
import io.opentelemetry.instrumentation.netty.v4.common.internal.ChannelUtil; import io.opentelemetry.instrumentation.netty.v4.common.internal.ChannelUtil;
import java.net.InetSocketAddress; import java.net.InetSocketAddress;
import javax.annotation.Nullable; import javax.annotation.Nullable;
@SuppressWarnings("deprecation") // have to use the deprecated Net*AttributesGetter for now
final class NettySslNetAttributesGetter final class NettySslNetAttributesGetter
implements NetClientAttributesGetter<NettySslRequest, Void> { implements io.opentelemetry.instrumentation.api.instrumenter.net.NetClientAttributesGetter<
NettySslRequest, Void> {
@Override @Override
public String getTransport(NettySslRequest request, @Nullable Void unused) { public String getTransport(NettySslRequest request, @Nullable Void unused) {

View File

@ -10,13 +10,13 @@ import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter;
import io.opentelemetry.instrumentation.api.instrumenter.SpanKindExtractor; import io.opentelemetry.instrumentation.api.instrumenter.SpanKindExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.db.DbClientAttributesExtractor; import io.opentelemetry.instrumentation.api.instrumenter.db.DbClientAttributesExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.db.DbClientSpanNameExtractor; import io.opentelemetry.instrumentation.api.instrumenter.db.DbClientSpanNameExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.net.NetClientAttributesExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.net.PeerServiceAttributesExtractor; import io.opentelemetry.instrumentation.api.instrumenter.net.PeerServiceAttributesExtractor;
import io.opentelemetry.javaagent.bootstrap.internal.CommonConfig; import io.opentelemetry.javaagent.bootstrap.internal.CommonConfig;
import org.opensearch.client.Response; import org.opensearch.client.Response;
public final class OpenSearchRestInstrumenterFactory { public final class OpenSearchRestInstrumenterFactory {
@SuppressWarnings("deprecation") // have to use the deprecated Net*AttributesExtractor for now
public static Instrumenter<OpenSearchRestRequest, Response> create(String instrumentationName) { public static Instrumenter<OpenSearchRestRequest, Response> create(String instrumentationName) {
OpenSearchRestAttributesGetter dbClientAttributesGetter = new OpenSearchRestAttributesGetter(); OpenSearchRestAttributesGetter dbClientAttributesGetter = new OpenSearchRestAttributesGetter();
OpenSearchRestNetResponseAttributesGetter netAttributesGetter = OpenSearchRestNetResponseAttributesGetter netAttributesGetter =
@ -27,7 +27,9 @@ public final class OpenSearchRestInstrumenterFactory {
instrumentationName, instrumentationName,
DbClientSpanNameExtractor.create(dbClientAttributesGetter)) DbClientSpanNameExtractor.create(dbClientAttributesGetter))
.addAttributesExtractor(DbClientAttributesExtractor.create(dbClientAttributesGetter)) .addAttributesExtractor(DbClientAttributesExtractor.create(dbClientAttributesGetter))
.addAttributesExtractor(NetClientAttributesExtractor.create(netAttributesGetter)) .addAttributesExtractor(
io.opentelemetry.instrumentation.api.instrumenter.net.NetClientAttributesExtractor
.create(netAttributesGetter))
.addAttributesExtractor( .addAttributesExtractor(
PeerServiceAttributesExtractor.create( PeerServiceAttributesExtractor.create(
netAttributesGetter, CommonConfig.get().getPeerServiceMapping())) netAttributesGetter, CommonConfig.get().getPeerServiceMapping()))

View File

@ -5,13 +5,41 @@
package io.opentelemetry.javaagent.instrumentation.opensearch.rest; package io.opentelemetry.javaagent.instrumentation.opensearch.rest;
import io.opentelemetry.instrumentation.api.instrumenter.net.NetClientAttributesGetter; import java.net.Inet4Address;
import java.net.Inet6Address; import java.net.Inet6Address;
import java.net.InetAddress;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import org.opensearch.client.Response; import org.opensearch.client.Response;
@SuppressWarnings("deprecation") // have to use the deprecated Net*AttributesGetter for now
final class OpenSearchRestNetResponseAttributesGetter final class OpenSearchRestNetResponseAttributesGetter
implements NetClientAttributesGetter<OpenSearchRestRequest, Response> { implements io.opentelemetry.instrumentation.api.instrumenter.net.NetClientAttributesGetter<
OpenSearchRestRequest, Response> {
@Nullable
@Override
public String getSockFamily(
OpenSearchRestRequest elasticsearchRestRequest, @Nullable Response response) {
if (response != null && response.getHost().getAddress() instanceof Inet6Address) {
return "inet6";
}
return null;
}
@Nullable
@Override
public String getNetworkType(OpenSearchRestRequest request, @Nullable Response response) {
if (response == null) {
return null;
}
InetAddress address = response.getHost().getAddress();
if (address instanceof Inet4Address) {
return "ipv4";
} else if (address instanceof Inet6Address) {
return "ipv6";
}
return null;
}
@Override @Override
@Nullable @Nullable
@ -25,16 +53,6 @@ final class OpenSearchRestNetResponseAttributesGetter
return null; return null;
} }
@Nullable
@Override
public String getSockFamily(
OpenSearchRestRequest elasticsearchRestRequest, @Nullable Response response) {
if (response != null && response.getHost().getAddress() instanceof Inet6Address) {
return "inet6";
}
return null;
}
@Override @Override
@Nullable @Nullable
public String getServerSocketAddress(OpenSearchRestRequest request, @Nullable Response response) { public String getServerSocketAddress(OpenSearchRestRequest request, @Nullable Response response) {

View File

@ -5,11 +5,11 @@
package io.opentelemetry.javaagent.instrumentation.pulsar.v2_8.telemetry; package io.opentelemetry.javaagent.instrumentation.pulsar.v2_8.telemetry;
import io.opentelemetry.instrumentation.api.instrumenter.net.NetClientAttributesGetter; import io.opentelemetry.instrumentation.api.instrumenter.network.ServerAttributesGetter;
import javax.annotation.Nullable; import javax.annotation.Nullable;
public final class PulsarNetClientAttributesGetter public final class PulsarNetClientAttributesGetter
implements NetClientAttributesGetter<BasePulsarRequest, Void> { implements ServerAttributesGetter<BasePulsarRequest, Void> {
@Nullable @Nullable
@Override @Override

View File

@ -18,7 +18,7 @@ import io.opentelemetry.instrumentation.api.instrumenter.messaging.MessageOperat
import io.opentelemetry.instrumentation.api.instrumenter.messaging.MessagingAttributesExtractor; import io.opentelemetry.instrumentation.api.instrumenter.messaging.MessagingAttributesExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.messaging.MessagingAttributesGetter; import io.opentelemetry.instrumentation.api.instrumenter.messaging.MessagingAttributesGetter;
import io.opentelemetry.instrumentation.api.instrumenter.messaging.MessagingSpanNameExtractor; import io.opentelemetry.instrumentation.api.instrumenter.messaging.MessagingSpanNameExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.net.NetClientAttributesExtractor; import io.opentelemetry.instrumentation.api.instrumenter.network.ServerAttributesExtractor;
import io.opentelemetry.instrumentation.api.internal.InstrumenterUtil; import io.opentelemetry.instrumentation.api.internal.InstrumenterUtil;
import io.opentelemetry.instrumentation.api.internal.Timer; import io.opentelemetry.instrumentation.api.internal.Timer;
import io.opentelemetry.javaagent.bootstrap.internal.ExperimentalConfig; import io.opentelemetry.javaagent.bootstrap.internal.ExperimentalConfig;
@ -71,7 +71,7 @@ public final class PulsarSingletons {
.addAttributesExtractor( .addAttributesExtractor(
createMessagingAttributesExtractor(getter, MessageOperation.RECEIVE)) createMessagingAttributesExtractor(getter, MessageOperation.RECEIVE))
.addAttributesExtractor( .addAttributesExtractor(
NetClientAttributesExtractor.create(new PulsarNetClientAttributesGetter())) ServerAttributesExtractor.create(new PulsarNetClientAttributesGetter()))
.buildConsumerInstrumenter(MessageTextMapGetter.INSTANCE); .buildConsumerInstrumenter(MessageTextMapGetter.INSTANCE);
} }
@ -86,7 +86,7 @@ public final class PulsarSingletons {
.addAttributesExtractor( .addAttributesExtractor(
createMessagingAttributesExtractor(getter, MessageOperation.RECEIVE)) createMessagingAttributesExtractor(getter, MessageOperation.RECEIVE))
.addAttributesExtractor( .addAttributesExtractor(
NetClientAttributesExtractor.create(new PulsarNetClientAttributesGetter())) ServerAttributesExtractor.create(new PulsarNetClientAttributesGetter()))
.setEnabled(ExperimentalConfig.get().messagingReceiveInstrumentationEnabled()) .setEnabled(ExperimentalConfig.get().messagingReceiveInstrumentationEnabled())
.addSpanLinksExtractor( .addSpanLinksExtractor(
new PulsarBatchRequestSpanLinksExtractor( new PulsarBatchRequestSpanLinksExtractor(
@ -119,7 +119,7 @@ public final class PulsarSingletons {
.addAttributesExtractor( .addAttributesExtractor(
createMessagingAttributesExtractor(getter, MessageOperation.PUBLISH)) createMessagingAttributesExtractor(getter, MessageOperation.PUBLISH))
.addAttributesExtractor( .addAttributesExtractor(
NetClientAttributesExtractor.create(new PulsarNetClientAttributesGetter())); ServerAttributesExtractor.create(new PulsarNetClientAttributesGetter()));
if (InstrumentationConfig.get() if (InstrumentationConfig.get()
.getBoolean("otel.instrumentation.pulsar.experimental-span-attributes", false)) { .getBoolean("otel.instrumentation.pulsar.experimental-span-attributes", false)) {

View File

@ -12,7 +12,7 @@ import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter;
import io.opentelemetry.instrumentation.api.instrumenter.SpanKindExtractor; import io.opentelemetry.instrumentation.api.instrumenter.SpanKindExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.db.DbClientSpanNameExtractor; import io.opentelemetry.instrumentation.api.instrumenter.db.DbClientSpanNameExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.db.SqlClientAttributesExtractor; import io.opentelemetry.instrumentation.api.instrumenter.db.SqlClientAttributesExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.net.NetClientAttributesExtractor; import io.opentelemetry.instrumentation.api.instrumenter.network.ServerAttributesExtractor;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -50,8 +50,7 @@ public final class R2dbcInstrumenterBuilder {
SqlClientAttributesExtractor.builder(R2dbcSqlAttributesGetter.INSTANCE) SqlClientAttributesExtractor.builder(R2dbcSqlAttributesGetter.INSTANCE)
.setStatementSanitizationEnabled(statementSanitizationEnabled) .setStatementSanitizationEnabled(statementSanitizationEnabled)
.build()) .build())
.addAttributesExtractor( .addAttributesExtractor(ServerAttributesExtractor.create(R2dbcNetAttributesGetter.INSTANCE))
NetClientAttributesExtractor.create(R2dbcNetAttributesGetter.INSTANCE))
.buildInstrumenter(SpanKindExtractor.alwaysClient()); .buildInstrumenter(SpanKindExtractor.alwaysClient());
} }
} }

View File

@ -5,14 +5,14 @@
package io.opentelemetry.instrumentation.r2dbc.v1_0.internal; package io.opentelemetry.instrumentation.r2dbc.v1_0.internal;
import io.opentelemetry.instrumentation.api.instrumenter.net.NetClientAttributesGetter; import io.opentelemetry.instrumentation.api.instrumenter.network.ServerAttributesGetter;
import javax.annotation.Nullable; import javax.annotation.Nullable;
/** /**
* This class is internal and is hence not for public use. Its APIs are unstable and can change at * This class is internal and is hence not for public use. Its APIs are unstable and can change at
* any time. * any time.
*/ */
public enum R2dbcNetAttributesGetter implements NetClientAttributesGetter<DbExecution, Void> { public enum R2dbcNetAttributesGetter implements ServerAttributesGetter<DbExecution, Void> {
INSTANCE; INSTANCE;
@Nullable @Nullable

View File

@ -5,12 +5,36 @@
package io.opentelemetry.javaagent.instrumentation.rabbitmq; package io.opentelemetry.javaagent.instrumentation.rabbitmq;
import io.opentelemetry.instrumentation.api.instrumenter.net.NetClientAttributesGetter; import java.net.Inet4Address;
import java.net.Inet6Address; import java.net.Inet6Address;
import java.net.InetAddress;
import javax.annotation.Nullable; import javax.annotation.Nullable;
@SuppressWarnings("deprecation") // have to use the deprecated Net*AttributesGetter for now
public class RabbitChannelNetAttributesGetter public class RabbitChannelNetAttributesGetter
implements NetClientAttributesGetter<ChannelAndMethod, Void> { implements io.opentelemetry.instrumentation.api.instrumenter.net.NetClientAttributesGetter<
ChannelAndMethod, Void> {
@Nullable
@Override
public String getSockFamily(ChannelAndMethod channelAndMethod, @Nullable Void unused) {
if (channelAndMethod.getChannel().getConnection().getAddress() instanceof Inet6Address) {
return "inet6";
}
return null;
}
@Nullable
@Override
public String getNetworkType(ChannelAndMethod channelAndMethod, @Nullable Void unused) {
InetAddress address = channelAndMethod.getChannel().getConnection().getAddress();
if (address instanceof Inet4Address) {
return "ipv6";
} else if (address instanceof Inet6Address) {
return "ipv6";
}
return null;
}
@Nullable @Nullable
@Override @Override
@ -34,13 +58,4 @@ public class RabbitChannelNetAttributesGetter
public Integer getServerSocketPort(ChannelAndMethod channelAndMethod, @Nullable Void unused) { public Integer getServerSocketPort(ChannelAndMethod channelAndMethod, @Nullable Void unused) {
return channelAndMethod.getChannel().getConnection().getPort(); return channelAndMethod.getChannel().getConnection().getPort();
} }
@Nullable
@Override
public String getSockFamily(ChannelAndMethod channelAndMethod, @Nullable Void unused) {
if (channelAndMethod.getChannel().getConnection().getAddress() instanceof Inet6Address) {
return "inet6";
}
return null;
}
} }

View File

@ -6,12 +6,36 @@
package io.opentelemetry.javaagent.instrumentation.rabbitmq; package io.opentelemetry.javaagent.instrumentation.rabbitmq;
import com.rabbitmq.client.GetResponse; import com.rabbitmq.client.GetResponse;
import io.opentelemetry.instrumentation.api.instrumenter.net.NetClientAttributesGetter; import java.net.Inet4Address;
import java.net.Inet6Address; import java.net.Inet6Address;
import java.net.InetAddress;
import javax.annotation.Nullable; import javax.annotation.Nullable;
@SuppressWarnings("deprecation") // have to use the deprecated Net*AttributesGetter for now
public class RabbitReceiveNetAttributesGetter public class RabbitReceiveNetAttributesGetter
implements NetClientAttributesGetter<ReceiveRequest, GetResponse> { implements io.opentelemetry.instrumentation.api.instrumenter.net.NetClientAttributesGetter<
ReceiveRequest, GetResponse> {
@Nullable
@Override
public String getSockFamily(ReceiveRequest request, @Nullable GetResponse response) {
if (request.getConnection().getAddress() instanceof Inet6Address) {
return "inet6";
}
return null;
}
@Nullable
@Override
public String getNetworkType(ReceiveRequest request, @Nullable GetResponse response) {
InetAddress address = request.getConnection().getAddress();
if (address instanceof Inet4Address) {
return "ipv6";
} else if (address instanceof Inet6Address) {
return "ipv6";
}
return null;
}
@Nullable @Nullable
@Override @Override
@ -36,13 +60,4 @@ public class RabbitReceiveNetAttributesGetter
public Integer getServerSocketPort(ReceiveRequest request, @Nullable GetResponse response) { public Integer getServerSocketPort(ReceiveRequest request, @Nullable GetResponse response) {
return request.getConnection().getPort(); return request.getConnection().getPort();
} }
@Nullable
@Override
public String getSockFamily(ReceiveRequest request, @Nullable GetResponse response) {
if (request.getConnection().getAddress() instanceof Inet6Address) {
return "inet6";
}
return null;
}
} }

View File

@ -17,7 +17,6 @@ import io.opentelemetry.instrumentation.api.instrumenter.SpanKindExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.messaging.MessageOperation; import io.opentelemetry.instrumentation.api.instrumenter.messaging.MessageOperation;
import io.opentelemetry.instrumentation.api.instrumenter.messaging.MessagingAttributesExtractor; import io.opentelemetry.instrumentation.api.instrumenter.messaging.MessagingAttributesExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.messaging.MessagingAttributesGetter; import io.opentelemetry.instrumentation.api.instrumenter.messaging.MessagingAttributesGetter;
import io.opentelemetry.instrumentation.api.instrumenter.net.NetClientAttributesExtractor;
import io.opentelemetry.instrumentation.api.internal.PropagatorBasedSpanLinksExtractor; import io.opentelemetry.instrumentation.api.internal.PropagatorBasedSpanLinksExtractor;
import io.opentelemetry.javaagent.bootstrap.internal.ExperimentalConfig; import io.opentelemetry.javaagent.bootstrap.internal.ExperimentalConfig;
import io.opentelemetry.javaagent.bootstrap.internal.InstrumentationConfig; import io.opentelemetry.javaagent.bootstrap.internal.InstrumentationConfig;
@ -51,6 +50,7 @@ public final class RabbitSingletons {
return deliverInstrumenter; return deliverInstrumenter;
} }
@SuppressWarnings("deprecation") // have to use the deprecated Net*AttributesExtractor for now
private static Instrumenter<ChannelAndMethod, Void> createChannelInstrumenter() { private static Instrumenter<ChannelAndMethod, Void> createChannelInstrumenter() {
return Instrumenter.<ChannelAndMethod, Void>builder( return Instrumenter.<ChannelAndMethod, Void>builder(
GlobalOpenTelemetry.get(), instrumentationName, ChannelAndMethod::getMethod) GlobalOpenTelemetry.get(), instrumentationName, ChannelAndMethod::getMethod)
@ -58,7 +58,8 @@ public final class RabbitSingletons {
buildMessagingAttributesExtractor( buildMessagingAttributesExtractor(
RabbitChannelAttributesGetter.INSTANCE, MessageOperation.PUBLISH)) RabbitChannelAttributesGetter.INSTANCE, MessageOperation.PUBLISH))
.addAttributesExtractor( .addAttributesExtractor(
NetClientAttributesExtractor.create(new RabbitChannelNetAttributesGetter())) io.opentelemetry.instrumentation.api.instrumenter.net.NetClientAttributesExtractor
.create(new RabbitChannelNetAttributesGetter()))
.addContextCustomizer( .addContextCustomizer(
(context, request, startAttributes) -> (context, request, startAttributes) ->
context.with(CHANNEL_AND_METHOD_CONTEXT_KEY, new RabbitChannelAndMethodHolder())) context.with(CHANNEL_AND_METHOD_CONTEXT_KEY, new RabbitChannelAndMethodHolder()))
@ -67,12 +68,15 @@ public final class RabbitSingletons {
channelAndMethod.getMethod().equals("Channel.basicPublish") ? PRODUCER : CLIENT); channelAndMethod.getMethod().equals("Channel.basicPublish") ? PRODUCER : CLIENT);
} }
@SuppressWarnings("deprecation") // have to use the deprecated Net*AttributesExtractor for now
private static Instrumenter<ReceiveRequest, GetResponse> createReceiveInstrumenter() { private static Instrumenter<ReceiveRequest, GetResponse> createReceiveInstrumenter() {
List<AttributesExtractor<ReceiveRequest, GetResponse>> extractors = new ArrayList<>(); List<AttributesExtractor<ReceiveRequest, GetResponse>> extractors = new ArrayList<>();
extractors.add( extractors.add(
buildMessagingAttributesExtractor( buildMessagingAttributesExtractor(
RabbitReceiveAttributesGetter.INSTANCE, MessageOperation.RECEIVE)); RabbitReceiveAttributesGetter.INSTANCE, MessageOperation.RECEIVE));
extractors.add(NetClientAttributesExtractor.create(new RabbitReceiveNetAttributesGetter())); extractors.add(
io.opentelemetry.instrumentation.api.instrumenter.net.NetClientAttributesExtractor.create(
new RabbitReceiveNetAttributesGetter()));
if (CAPTURE_EXPERIMENTAL_SPAN_ATTRIBUTES) { if (CAPTURE_EXPERIMENTAL_SPAN_ATTRIBUTES) {
extractors.add(new RabbitReceiveExperimentalAttributesExtractor()); extractors.add(new RabbitReceiveExperimentalAttributesExtractor());
} }

View File

@ -10,7 +10,7 @@ import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter;
import io.opentelemetry.instrumentation.api.instrumenter.SpanKindExtractor; import io.opentelemetry.instrumentation.api.instrumenter.SpanKindExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.db.DbClientAttributesExtractor; import io.opentelemetry.instrumentation.api.instrumenter.db.DbClientAttributesExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.db.DbClientSpanNameExtractor; import io.opentelemetry.instrumentation.api.instrumenter.db.DbClientSpanNameExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.net.NetClientAttributesExtractor; import io.opentelemetry.instrumentation.api.instrumenter.network.ServerAttributesExtractor;
public final class RedissonInstrumenterFactory { public final class RedissonInstrumenterFactory {
@ -23,7 +23,7 @@ public final class RedissonInstrumenterFactory {
instrumentationName, instrumentationName,
DbClientSpanNameExtractor.create(dbAttributesGetter)) DbClientSpanNameExtractor.create(dbAttributesGetter))
.addAttributesExtractor(DbClientAttributesExtractor.create(dbAttributesGetter)) .addAttributesExtractor(DbClientAttributesExtractor.create(dbAttributesGetter))
.addAttributesExtractor(NetClientAttributesExtractor.create(netAttributesGetter)) .addAttributesExtractor(ServerAttributesExtractor.create(netAttributesGetter))
.buildInstrumenter(SpanKindExtractor.alwaysClient()); .buildInstrumenter(SpanKindExtractor.alwaysClient());
} }

View File

@ -5,24 +5,11 @@
package io.opentelemetry.javaagent.instrumentation.redisson; package io.opentelemetry.javaagent.instrumentation.redisson;
import io.opentelemetry.instrumentation.api.instrumenter.net.NetClientAttributesGetter; import io.opentelemetry.instrumentation.api.instrumenter.network.ServerAttributesGetter;
import java.net.InetSocketAddress; import java.net.InetSocketAddress;
import javax.annotation.Nullable; import javax.annotation.Nullable;
final class RedissonNetAttributesGetter final class RedissonNetAttributesGetter implements ServerAttributesGetter<RedissonRequest, Void> {
implements NetClientAttributesGetter<RedissonRequest, Void> {
@Nullable
@Override
public String getServerAddress(RedissonRequest redissonRequest) {
return null;
}
@Nullable
@Override
public Integer getServerPort(RedissonRequest redissonRequest) {
return null;
}
@Override @Override
public InetSocketAddress getServerInetSocketAddress( public InetSocketAddress getServerInetSocketAddress(

View File

@ -5,11 +5,11 @@
package io.opentelemetry.javaagent.instrumentation.vertx.v4_0.sql; package io.opentelemetry.javaagent.instrumentation.vertx.v4_0.sql;
import io.opentelemetry.instrumentation.api.instrumenter.net.NetClientAttributesGetter; import io.opentelemetry.instrumentation.api.instrumenter.network.ServerAttributesGetter;
import javax.annotation.Nullable; import javax.annotation.Nullable;
public enum VertxSqlClientNetAttributesGetter public enum VertxSqlClientNetAttributesGetter
implements NetClientAttributesGetter<VertxSqlClientRequest, Void> { implements ServerAttributesGetter<VertxSqlClientRequest, Void> {
INSTANCE; INSTANCE;
@Nullable @Nullable

View File

@ -14,8 +14,8 @@ import io.opentelemetry.instrumentation.api.instrumenter.SpanKindExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.SpanNameExtractor; import io.opentelemetry.instrumentation.api.instrumenter.SpanNameExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.db.DbClientSpanNameExtractor; import io.opentelemetry.instrumentation.api.instrumenter.db.DbClientSpanNameExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.db.SqlClientAttributesExtractor; import io.opentelemetry.instrumentation.api.instrumenter.db.SqlClientAttributesExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.net.NetClientAttributesExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.net.PeerServiceAttributesExtractor; import io.opentelemetry.instrumentation.api.instrumenter.net.PeerServiceAttributesExtractor;
import io.opentelemetry.instrumentation.api.instrumenter.network.ServerAttributesExtractor;
import io.opentelemetry.javaagent.bootstrap.internal.CommonConfig; import io.opentelemetry.javaagent.bootstrap.internal.CommonConfig;
import io.vertx.sqlclient.SqlConnectOptions; import io.vertx.sqlclient.SqlConnectOptions;
import java.util.Map; import java.util.Map;
@ -41,7 +41,7 @@ public final class VertxSqlClientSingletons {
CommonConfig.get().isStatementSanitizationEnabled()) CommonConfig.get().isStatementSanitizationEnabled())
.build()) .build())
.addAttributesExtractor( .addAttributesExtractor(
NetClientAttributesExtractor.create(VertxSqlClientNetAttributesGetter.INSTANCE)) ServerAttributesExtractor.create(VertxSqlClientNetAttributesGetter.INSTANCE))
.addAttributesExtractor( .addAttributesExtractor(
PeerServiceAttributesExtractor.create( PeerServiceAttributesExtractor.create(
VertxSqlClientNetAttributesGetter.INSTANCE, VertxSqlClientNetAttributesGetter.INSTANCE,