Skip to content

Commit e696349

Browse files
authored
Fix find address error in ALS TCP metrics (#13556)
1 parent eef702e commit e696349

File tree

1 file changed

+7
-11
lines changed
  • oap-server/server-receiver-plugin/envoy-metrics-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/envoy/als/tcp/k8s

1 file changed

+7
-11
lines changed

oap-server/server-receiver-plugin/envoy-metrics-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/envoy/als/tcp/k8s/K8sALSServiceMeshTCPAnalysis.java

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020

2121
import com.google.common.base.Strings;
2222
import io.envoyproxy.envoy.config.core.v3.Address;
23-
import io.envoyproxy.envoy.config.core.v3.SocketAddress;
2423
import io.envoyproxy.envoy.data.accesslog.v3.AccessLogCommon;
2524
import io.envoyproxy.envoy.data.accesslog.v3.TCPAccessLogEntry;
2625
import io.envoyproxy.envoy.service.accesslog.v3.StreamAccessLogsMessage;
@@ -33,6 +32,7 @@
3332
import org.apache.skywalking.oap.server.receiver.envoy.als.Role;
3433
import org.apache.skywalking.oap.server.receiver.envoy.als.ServiceMetaInfo;
3534
import org.apache.skywalking.oap.server.receiver.envoy.als.istio.IstioServiceEntryRegistry;
35+
import org.apache.skywalking.oap.server.receiver.envoy.als.k8s.Addresses;
3636
import org.apache.skywalking.oap.server.receiver.envoy.als.k8s.K8SServiceRegistry;
3737
import org.apache.skywalking.oap.server.receiver.envoy.als.tcp.AbstractTCPAccessLogAnalyzer;
3838

@@ -101,9 +101,9 @@ protected Result analyzeSideCar(final Result previousResult, final TCPAccessLogE
101101
properties.hasDownstreamDirectRemoteAddress()
102102
? properties.getDownstreamDirectRemoteAddress()
103103
: properties.getDownstreamRemoteAddress();
104-
final ServiceMetaInfo downstreamService = find(downstreamRemoteAddress.getSocketAddress().getAddress());
104+
final ServiceMetaInfo downstreamService = find(Addresses.getAddressIP(downstreamRemoteAddress));
105105
final Address downstreamLocalAddress = properties.getDownstreamLocalAddress();
106-
final ServiceMetaInfo localService = find(downstreamLocalAddress.getSocketAddress().getAddress());
106+
final ServiceMetaInfo localService = find(Addresses.getAddressIP(downstreamLocalAddress));
107107

108108
if (cluster.startsWith("inbound|")) {
109109
// Server side
@@ -124,8 +124,7 @@ protected Result analyzeSideCar(final Result previousResult, final TCPAccessLogE
124124
newResult.hasDownstreamMetrics(true);
125125
} else if (cluster.startsWith("outbound|")) {
126126
// sidecar(client side) -> sidecar
127-
final Address upstreamRemoteAddress = properties.getUpstreamRemoteAddress();
128-
final ServiceMetaInfo destService = find(upstreamRemoteAddress.getSocketAddress().getAddress());
127+
final ServiceMetaInfo destService = find(Addresses.getAddressIP(properties.getUpstreamRemoteAddress()));
129128

130129
final TCPServiceMeshMetric metric = newAdapter(entry, downstreamService, destService).adaptToUpstreamMetrics().build();
131130

@@ -154,16 +153,14 @@ protected Result analyzeProxy(final Result previousResult, final TCPAccessLogEnt
154153
return previousResult;
155154
}
156155

157-
final var downstreamLocalAddressSocketAddress = downstreamLocalAddress.getSocketAddress();
158-
final var ingress = find(downstreamLocalAddressSocketAddress.getAddress());
156+
final var ingress = find(Addresses.getAddressIP(downstreamLocalAddress));
159157

160158
final var newResult = previousResult.toBuilder();
161159
final var previousMetrics = previousResult.getMetrics();
162160
final var metrics = previousMetrics.getTcpMetricsBuilder();
163161

164162
if (!previousResult.hasDownstreamMetrics()) {
165-
final SocketAddress downstreamRemoteAddressSocketAddress = downstreamRemoteAddress.getSocketAddress();
166-
final ServiceMetaInfo outside = find(downstreamRemoteAddressSocketAddress.getAddress());
163+
final ServiceMetaInfo outside = find(Addresses.getAddressIP(downstreamRemoteAddress));
167164

168165
final TCPServiceMeshMetric.Builder metric = newAdapter(entry, outside, ingress).adaptToDownstreamMetrics();
169166

@@ -173,8 +170,7 @@ protected Result analyzeProxy(final Result previousResult, final TCPAccessLogEnt
173170
}
174171

175172
if (!previousResult.hasUpstreamMetrics()) {
176-
final SocketAddress upstreamRemoteAddressSocketAddress = upstreamRemoteAddress.getSocketAddress();
177-
final ServiceMetaInfo targetService = find(upstreamRemoteAddressSocketAddress.getAddress());
173+
final ServiceMetaInfo targetService = find(Addresses.getAddressIP(upstreamRemoteAddress));
178174

179175
final TCPServiceMeshMetric.Builder outboundMetric =
180176
newAdapter(entry, ingress, targetService)

0 commit comments

Comments
 (0)