Skip to content

Commit 7997766

Browse files
committed
chore: Use AltContext to check DirectPath Used attribute
1 parent 22edecf commit 7997766

File tree

1 file changed

+4
-17
lines changed

1 file changed

+4
-17
lines changed

google-cloud-spanner/src/main/java/com/google/cloud/spanner/spi/v1/HeaderInterceptor.java

Lines changed: 4 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,9 @@
3434
import io.grpc.ClientInterceptor;
3535
import io.grpc.ForwardingClientCall.SimpleForwardingClientCall;
3636
import io.grpc.ForwardingClientCallListener.SimpleForwardingClientCallListener;
37-
import io.grpc.Grpc;
3837
import io.grpc.Metadata;
3938
import io.grpc.MethodDescriptor;
39+
import io.grpc.alts.AltsContextUtil;
4040
import io.opencensus.stats.MeasureMap;
4141
import io.opencensus.stats.Stats;
4242
import io.opencensus.stats.StatsRecorder;
@@ -47,9 +47,6 @@
4747
import io.opentelemetry.api.common.Attributes;
4848
import io.opentelemetry.api.common.AttributesBuilder;
4949
import io.opentelemetry.api.trace.Span;
50-
import java.net.InetAddress;
51-
import java.net.InetSocketAddress;
52-
import java.net.SocketAddress;
5350
import java.util.HashMap;
5451
import java.util.Map;
5552
import java.util.concurrent.ExecutionException;
@@ -109,6 +106,7 @@ public <ReqT, RespT> ClientCall<ReqT, RespT> interceptCall(
109106
@Override
110107
public void start(Listener<RespT> responseListener, Metadata headers) {
111108
try {
109+
ClientCall<ReqT, RespT> call = this;
112110
Span span = Span.current();
113111
DatabaseName databaseName = extractDatabaseName(headers);
114112
String key = extractKey(databaseName, method.getFullMethodName());
@@ -127,10 +125,9 @@ public void start(Listener<RespT> responseListener, Metadata headers) {
127125
new SimpleForwardingClientCallListener<RespT>(responseListener) {
128126
@Override
129127
public void onHeaders(Metadata metadata) {
130-
Boolean isDirectPathUsed =
131-
isDirectPathUsed(getAttributes().get(Grpc.TRANSPORT_ATTR_REMOTE_ADDR));
128+
// If call contains ALTS information.
129+
boolean isDirectPathUsed = AltsContextUtil.check(call);
132130
addDirectPathUsedAttribute(compositeTracer, isDirectPathUsed);
133-
134131
processHeader(
135132
metadata, tagContext, attributes, span, compositeTracer, isDirectPathUsed);
136133
super.onHeaders(metadata);
@@ -316,14 +313,4 @@ private void addDirectPathUsedAttribute(
316313
BuiltInMetricsConstant.DIRECT_PATH_USED_KEY.getKey(), Boolean.toString(isDirectPathUsed));
317314
}
318315
}
319-
320-
private Boolean isDirectPathUsed(SocketAddress remoteAddr) {
321-
if (remoteAddr instanceof InetSocketAddress) {
322-
InetAddress inetAddress = ((InetSocketAddress) remoteAddr).getAddress();
323-
String addr = inetAddress.getHostAddress();
324-
return addr.startsWith(BuiltInMetricsConstant.DP_IPV4_PREFIX)
325-
|| addr.startsWith(BuiltInMetricsConstant.DP_IPV6_PREFIX);
326-
}
327-
return false;
328-
}
329316
}

0 commit comments

Comments
 (0)