From 4f89ea2704e560ca93d5fcd5830679c9db82c2cd Mon Sep 17 00:00:00 2001 From: Gao Hongtao Date: Tue, 28 May 2019 16:05:36 +0800 Subject: [PATCH] Filtering pods not in 'Running' phase (#2771) * Filtering pods not in 'Running' phase * Amending checkstyle errors --- .../envoy/als/K8sALSServiceMeshHTTPAnalysis.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/oap-server/server-receiver-plugin/envoy-metrics-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/envoy/als/K8sALSServiceMeshHTTPAnalysis.java b/oap-server/server-receiver-plugin/envoy-metrics-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/envoy/als/K8sALSServiceMeshHTTPAnalysis.java index 64aedc349..96b436799 100644 --- a/oap-server/server-receiver-plugin/envoy-metrics-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/envoy/als/K8sALSServiceMeshHTTPAnalysis.java +++ b/oap-server/server-receiver-plugin/envoy-metrics-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/envoy/als/K8sALSServiceMeshHTTPAnalysis.java @@ -63,6 +63,8 @@ public class K8sALSServiceMeshHTTPAnalysis implements ALSHTTPAnalysis { private static final String ADDRESS_TYPE_INTERNAL_IP = "InternalIP"; + private static final String VALID_PHASE = "Running"; + @Getter(AccessLevel.PROTECTED) private final AtomicReference> ipServiceMap = new AtomicReference<>(); @@ -93,8 +95,13 @@ public class K8sALSServiceMeshHTTPAnalysis implements ALSHTTPAnalysis { Map ipMap = new HashMap<>(list.getItems().size()); long startTime = System.nanoTime(); for (V1Pod item : list.getItems()) { + if (!item.getStatus().getPhase().equals(VALID_PHASE)) { + logger.debug("Invalid pod {} is not in a valid phase {}", item.getMetadata().getName(), item.getStatus().getPhase()); + continue; + } if (item.getStatus().getPodIP().equals(item.getStatus().getHostIP())) { - logger.warn("Pod {}.{} is removed because hostIP and podIP are identical ", item.getMetadata().getName()); + logger.debug("Pod {}.{} is removed because hostIP and podIP are identical ", item.getMetadata().getName(), + item.getMetadata().getNamespace()); continue; } ipMap.put(item.getStatus().getPodIP(), createServiceMetaInfo(item.getMetadata()));