From 79977663e9e42c98c894be26cdf6b2cbe41aeffa Mon Sep 17 00:00:00 2001 From: Surbhi Garg Date: Fri, 14 Nov 2025 14:34:26 +0530 Subject: [PATCH] chore: Use AltContext to check DirectPath Used attribute --- .../spanner/spi/v1/HeaderInterceptor.java | 21 ++++--------------- 1 file changed, 4 insertions(+), 17 deletions(-) diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/spi/v1/HeaderInterceptor.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/spi/v1/HeaderInterceptor.java index 1aaa7bd304..8026c5c89f 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/spi/v1/HeaderInterceptor.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/spi/v1/HeaderInterceptor.java @@ -34,9 +34,9 @@ import io.grpc.ClientInterceptor; import io.grpc.ForwardingClientCall.SimpleForwardingClientCall; import io.grpc.ForwardingClientCallListener.SimpleForwardingClientCallListener; -import io.grpc.Grpc; import io.grpc.Metadata; import io.grpc.MethodDescriptor; +import io.grpc.alts.AltsContextUtil; import io.opencensus.stats.MeasureMap; import io.opencensus.stats.Stats; import io.opencensus.stats.StatsRecorder; @@ -47,9 +47,6 @@ import io.opentelemetry.api.common.Attributes; import io.opentelemetry.api.common.AttributesBuilder; import io.opentelemetry.api.trace.Span; -import java.net.InetAddress; -import java.net.InetSocketAddress; -import java.net.SocketAddress; import java.util.HashMap; import java.util.Map; import java.util.concurrent.ExecutionException; @@ -109,6 +106,7 @@ public ClientCall interceptCall( @Override public void start(Listener responseListener, Metadata headers) { try { + ClientCall call = this; Span span = Span.current(); DatabaseName databaseName = extractDatabaseName(headers); String key = extractKey(databaseName, method.getFullMethodName()); @@ -127,10 +125,9 @@ public void start(Listener responseListener, Metadata headers) { new SimpleForwardingClientCallListener(responseListener) { @Override public void onHeaders(Metadata metadata) { - Boolean isDirectPathUsed = - isDirectPathUsed(getAttributes().get(Grpc.TRANSPORT_ATTR_REMOTE_ADDR)); + // If call contains ALTS information. + boolean isDirectPathUsed = AltsContextUtil.check(call); addDirectPathUsedAttribute(compositeTracer, isDirectPathUsed); - processHeader( metadata, tagContext, attributes, span, compositeTracer, isDirectPathUsed); super.onHeaders(metadata); @@ -316,14 +313,4 @@ private void addDirectPathUsedAttribute( BuiltInMetricsConstant.DIRECT_PATH_USED_KEY.getKey(), Boolean.toString(isDirectPathUsed)); } } - - private Boolean isDirectPathUsed(SocketAddress remoteAddr) { - if (remoteAddr instanceof InetSocketAddress) { - InetAddress inetAddress = ((InetSocketAddress) remoteAddr).getAddress(); - String addr = inetAddress.getHostAddress(); - return addr.startsWith(BuiltInMetricsConstant.DP_IPV4_PREFIX) - || addr.startsWith(BuiltInMetricsConstant.DP_IPV6_PREFIX); - } - return false; - } }