|
34 | 34 | import io.grpc.ClientInterceptor; |
35 | 35 | import io.grpc.ForwardingClientCall.SimpleForwardingClientCall; |
36 | 36 | import io.grpc.ForwardingClientCallListener.SimpleForwardingClientCallListener; |
37 | | -import io.grpc.Grpc; |
38 | 37 | import io.grpc.Metadata; |
39 | 38 | import io.grpc.MethodDescriptor; |
| 39 | +import io.grpc.alts.AltsContextUtil; |
40 | 40 | import io.opencensus.stats.MeasureMap; |
41 | 41 | import io.opencensus.stats.Stats; |
42 | 42 | import io.opencensus.stats.StatsRecorder; |
|
47 | 47 | import io.opentelemetry.api.common.Attributes; |
48 | 48 | import io.opentelemetry.api.common.AttributesBuilder; |
49 | 49 | import io.opentelemetry.api.trace.Span; |
50 | | -import java.net.InetAddress; |
51 | | -import java.net.InetSocketAddress; |
52 | | -import java.net.SocketAddress; |
53 | 50 | import java.util.HashMap; |
54 | 51 | import java.util.Map; |
55 | 52 | import java.util.concurrent.ExecutionException; |
@@ -127,10 +124,9 @@ public void start(Listener<RespT> responseListener, Metadata headers) { |
127 | 124 | new SimpleForwardingClientCallListener<RespT>(responseListener) { |
128 | 125 | @Override |
129 | 126 | public void onHeaders(Metadata metadata) { |
130 | | - Boolean isDirectPathUsed = |
131 | | - isDirectPathUsed(getAttributes().get(Grpc.TRANSPORT_ATTR_REMOTE_ADDR)); |
| 127 | + // Check if the call uses DirectPath by inspecting the ALTS context. |
| 128 | + boolean isDirectPathUsed = AltsContextUtil.check(getAttributes()); |
132 | 129 | addDirectPathUsedAttribute(compositeTracer, isDirectPathUsed); |
133 | | - |
134 | 130 | processHeader( |
135 | 131 | metadata, tagContext, attributes, span, compositeTracer, isDirectPathUsed); |
136 | 132 | super.onHeaders(metadata); |
@@ -316,14 +312,4 @@ private void addDirectPathUsedAttribute( |
316 | 312 | BuiltInMetricsConstant.DIRECT_PATH_USED_KEY.getKey(), Boolean.toString(isDirectPathUsed)); |
317 | 313 | } |
318 | 314 | } |
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 | | - } |
329 | 315 | } |
0 commit comments