You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by wu...@apache.org on 2019/03/07 08:19:22 UTC

[incubator-skywalking] branch envoy-metric updated: Finish docker compose test.

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

wusheng pushed a commit to branch envoy-metric
in repository https://gitbox.apache.org/repos/asf/incubator-skywalking.git


The following commit(s) were added to refs/heads/envoy-metric by this push:
     new 2eed421  Finish docker compose test.
2eed421 is described below

commit 2eed4215ea4aa2e0f9f737af06be3fda8342b766
Author: Wu Sheng <wu...@foxmail.com>
AuthorDate: Thu Mar 7 16:19:11 2019 +0800

    Finish docker compose test.
---
 docker/config/log4j2.xml                           |  1 +
 .../receiver/envoy/MetricServiceGRPCHandler.java   | 34 +++++++++++++---------
 2 files changed, 21 insertions(+), 14 deletions(-)

diff --git a/docker/config/log4j2.xml b/docker/config/log4j2.xml
index eb69a89..346d18b 100644
--- a/docker/config/log4j2.xml
+++ b/docker/config/log4j2.xml
@@ -29,6 +29,7 @@
         <logger name="org.elasticsearch.common.network.IfConfig" level="INFO"/>
         <logger name="io.grpc.netty" level="INFO"/>
         <logger name="org.apache.skywalking.oap.server.receiver.istio.telemetry" level="DEBUG"/>
+        <logger name="org.apache.skywalking.oap.server.receiver.envoy" level="DEBUG"/>
         <Root level="INFO">
             <AppenderRef ref="Console"/>
         </Root>
diff --git a/oap-server/server-receiver-plugin/envoy-metrics-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/envoy/MetricServiceGRPCHandler.java b/oap-server/server-receiver-plugin/envoy-metrics-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/envoy/MetricServiceGRPCHandler.java
index f7e8136..48083d2 100644
--- a/oap-server/server-receiver-plugin/envoy-metrics-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/envoy/MetricServiceGRPCHandler.java
+++ b/oap-server/server-receiver-plugin/envoy-metrics-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/envoy/MetricServiceGRPCHandler.java
@@ -59,7 +59,7 @@ public class MetricServiceGRPCHandler extends MetricsServiceGrpc.MetricsServiceI
     @Override
     public StreamObserver<StreamMetricsMessage> streamMetrics(StreamObserver<StreamMetricsResponse> responseObserver) {
         return new StreamObserver<StreamMetricsMessage>() {
-            private boolean isFirst = true;
+            private volatile boolean isFirst = true;
             private String serviceName = null;
             private int serviceId = Const.NONE;
             private String serviceInstanceName = null;
@@ -69,14 +69,18 @@ public class MetricServiceGRPCHandler extends MetricsServiceGrpc.MetricsServiceI
                 if (isFirst) {
                     isFirst = false;
                     StreamMetricsMessage.Identifier identifier = message.getIdentifier();
+                    logger.debug("Received identifier msg {}", identifier);
                     Node node = identifier.getNode();
                     if (node != null) {
                         String nodeId = node.getId();
                         if (!StringUtil.isEmpty(nodeId)) {
                             serviceInstanceName = nodeId;
-                            String cluster = node.getCluster();
-                            if (!StringUtil.isEmpty(cluster)) {
-                                serviceName = cluster;
+                        }
+                        String cluster = node.getCluster();
+                        if (!StringUtil.isEmpty(cluster)) {
+                            serviceName = cluster;
+                            if (serviceInstanceName == null) {
+                                serviceInstanceName = serviceName;
                             }
                         }
                     }
@@ -84,17 +88,10 @@ public class MetricServiceGRPCHandler extends MetricsServiceGrpc.MetricsServiceI
                     if (serviceName == null) {
                         serviceName = serviceInstanceName;
                     }
+                }
 
-                    if (logger.isDebugEnabled()) {
-                        logger.debug("Envoy metric reported from service[{}], service instance[{}]", serviceName, serviceInstanceName);
-                    }
-
-                    if (serviceInstanceName != null) {
-                        serviceId = serviceInventoryRegister.getOrCreate(serviceName, null);
-                        if (serviceId != Const.NONE) {
-                            serviceInstanceId = serviceInstanceInventoryRegister.getOrCreate(serviceId, serviceInstanceName, serviceInstanceName, System.currentTimeMillis(), null);
-                        }
-                    }
+                if (logger.isDebugEnabled()) {
+                    logger.debug("Envoy metric reported from service[{}], service instance[{}]", serviceName, serviceInstanceName);
                 }
 
                 if (serviceInstanceId != Const.NONE) {
@@ -136,6 +133,15 @@ public class MetricServiceGRPCHandler extends MetricsServiceGrpc.MetricsServiceI
                             timer.finish();
                         }
                     }
+                } else if (serviceName != null && serviceInstanceName != null) {
+                    if (serviceId == Const.NONE) {
+                        logger.debug("Register envoy service [{}].", serviceName);
+                        serviceId = serviceInventoryRegister.getOrCreate(serviceName, null);
+                    }
+                    if (serviceId != Const.NONE) {
+                        logger.debug("Register envoy service instance [{}].", serviceInstanceName);
+                        serviceInstanceId = serviceInstanceInventoryRegister.getOrCreate(serviceId, serviceInstanceName, serviceInstanceName, System.currentTimeMillis(), null);
+                    }
                 }
             }