This is an automated email from the ASF dual-hosted git repository.

hanahmily pushed a commit to branch fix/k8s
in repository https://gitbox.apache.org/repos/asf/incubator-skywalking.git

commit 6c29b0f7c3fb5d227f05493ff00fd2235a9e71bc
Author: Gao Hongtao <hanahm...@gmail.com>
AuthorDate: Mon Oct 29 15:29:53 2018 +0800

    Fix k8s api bugs
---
 .../plugin/kubernetes/KubernetesCoordinator.java   |  1 +
 .../dependencies/NamespacedPodListWatch.java       | 26 +++++++++++++++-------
 ...alking.oap.server.library.module.ModuleProvider |  0
 3 files changed, 19 insertions(+), 8 deletions(-)

diff --git 
a/oap-server/server-cluster-plugin/cluster-kubernetes-plugin/src/main/java/org/apache/skywalking/oap/server/cluster/plugin/kubernetes/KubernetesCoordinator.java
 
b/oap-server/server-cluster-plugin/cluster-kubernetes-plugin/src/main/java/org/apache/skywalking/oap/server/cluster/plugin/kubernetes/KubernetesCoordinator.java
index ca3446c..ae8ef01 100644
--- 
a/oap-server/server-cluster-plugin/cluster-kubernetes-plugin/src/main/java/org/apache/skywalking/oap/server/cluster/plugin/kubernetes/KubernetesCoordinator.java
+++ 
b/oap-server/server-cluster-plugin/cluster-kubernetes-plugin/src/main/java/org/apache/skywalking/oap/server/cluster/plugin/kubernetes/KubernetesCoordinator.java
@@ -108,6 +108,7 @@ public class KubernetesCoordinator implements 
ClusterRegister, ClusterNodesQuery
     }
 
     @Override public List<RemoteInstance> queryRemoteNodes() {
+        logger.debug("Query kubernetes remote nodes: {}", cache);
         return Lists.newArrayList(cache.values());
     }
 }
diff --git 
a/oap-server/server-cluster-plugin/cluster-kubernetes-plugin/src/main/java/org/apache/skywalking/oap/server/cluster/plugin/kubernetes/dependencies/NamespacedPodListWatch.java
 
b/oap-server/server-cluster-plugin/cluster-kubernetes-plugin/src/main/java/org/apache/skywalking/oap/server/cluster/plugin/kubernetes/dependencies/NamespacedPodListWatch.java
index 915bf86..3fbcae8 100644
--- 
a/oap-server/server-cluster-plugin/cluster-kubernetes-plugin/src/main/java/org/apache/skywalking/oap/server/cluster/plugin/kubernetes/dependencies/NamespacedPodListWatch.java
+++ 
b/oap-server/server-cluster-plugin/cluster-kubernetes-plugin/src/main/java/org/apache/skywalking/oap/server/cluster/plugin/kubernetes/dependencies/NamespacedPodListWatch.java
@@ -28,10 +28,13 @@ import io.kubernetes.client.models.V1Pod;
 import io.kubernetes.client.util.Config;
 import io.kubernetes.client.util.Watch;
 import java.io.IOException;
+import java.util.Collections;
 import java.util.Iterator;
 import java.util.concurrent.TimeUnit;
 import org.apache.skywalking.oap.server.cluster.plugin.kubernetes.Event;
 import 
org.apache.skywalking.oap.server.cluster.plugin.kubernetes.ReusableWatch;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Watch the api {@literal 
https://v1-9.docs.kubernetes.io/docs/reference/generated/kubernetes-api/v1.9/#watch-64}.
@@ -40,7 +43,7 @@ import 
org.apache.skywalking.oap.server.cluster.plugin.kubernetes.ReusableWatch;
  */
 public class NamespacedPodListWatch implements ReusableWatch<Event> {
 
-    private final CoreV1Api api = new CoreV1Api();
+    private static final Logger logger = 
LoggerFactory.getLogger(NamespacedPodListWatch.class);
 
     private final String namespace;
 
@@ -65,6 +68,7 @@ public class NamespacedPodListWatch implements 
ReusableWatch<Event> {
         }
         client.getHttpClient().setReadTimeout(watchTimeoutSeconds, 
TimeUnit.SECONDS);
         Configuration.setDefaultApiClient(client);
+        CoreV1Api api = new CoreV1Api();
         try {
             watch = Watch.createWatch(
                 client,
@@ -72,17 +76,23 @@ public class NamespacedPodListWatch implements 
ReusableWatch<Event> {
                     null, labelSelector, Integer.MAX_VALUE,null,null, 
Boolean.TRUE,
                     null, null),
                 new TypeToken<Watch.Response<V1Pod>>() { }.getType());
-        } catch (ApiException e) {
+        } catch (final ApiException e) {
+            logger.error("code:{} header:{} body:{}", e.getCode(), 
e.getResponseHeaders(), e.getResponseBody());
             throw new RuntimeException(e.getMessage(), e);
         }
     }
 
     @Override public Iterator<Event> iterator() {
-        return Iterators.transform(watch.iterator(), response -> {
-            if (response == null) {
-                throw new NullPointerException("Original event is null");
-            }
-            return new Event(response.type, 
response.object.getMetadata().getUid(), response.object.getStatus().getPodIP());
-        });
+        try {
+            return Iterators.transform(watch.iterator(), response -> {
+                if (response == null) {
+                    throw new NullPointerException("Original event is null");
+                }
+                return new Event(response.type, 
response.object.getMetadata().getUid(), response.object.getStatus().getPodIP());
+            });
+        } catch (final RuntimeException exp) {
+            logger.trace("Runtime exception", exp);
+        }
+        return Collections.emptyIterator();
     }
 }
diff --git 
a/oap-server/server-cluster-plugin/cluster-kubernetes-plugin/src/main/resources/services/org.apache.skywalking.oap.server.library.module.ModuleProvider
 
b/oap-server/server-cluster-plugin/cluster-kubernetes-plugin/src/main/resources/META-INF/services/org.apache.skywalking.oap.server.library.module.ModuleProvider
similarity index 100%
rename from 
oap-server/server-cluster-plugin/cluster-kubernetes-plugin/src/main/resources/services/org.apache.skywalking.oap.server.library.module.ModuleProvider
rename to 
oap-server/server-cluster-plugin/cluster-kubernetes-plugin/src/main/resources/META-INF/services/org.apache.skywalking.oap.server.library.module.ModuleProvider

Reply via email to