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 2018/09/27 13:55:16 UTC

[incubator-skywalking] branch make-detect-point-consistency created (now 4dca769)

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

wusheng pushed a change to branch make-detect-point-consistency
in repository https://gitbox.apache.org/repos/asf/incubator-skywalking.git.


      at 4dca769  Make DetectPoint in Mesh gRPC protocol, DetectPoint in Source, and SpanSrcType convert right.

This branch includes the following new commits:

     new 4dca769  Make DetectPoint in Mesh gRPC protocol, DetectPoint in Source, and SpanSrcType convert right.

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[incubator-skywalking] 01/01: Make DetectPoint in Mesh gRPC protocol, DetectPoint in Source, and SpanSrcType convert right.

Posted by wu...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

wusheng pushed a commit to branch make-detect-point-consistency
in repository https://gitbox.apache.org/repos/asf/incubator-skywalking.git

commit 4dca769b291ffb9b5f738fa0c02a4104cd6c6b28
Author: Wu Sheng <wu...@foxmail.com>
AuthorDate: Thu Sep 27 21:55:02 2018 +0800

    Make DetectPoint in Mesh gRPC protocol, DetectPoint in Source, and SpanSrcType convert right.
---
 .../service/EndpointInventoryRegister.java         |  5 ++--
 .../service/IEndpointInventoryRegister.java        |  3 ++-
 .../oap/server/core/source/DetectPoint.java        | 30 +++++++++++++++++++++-
 .../mesh/ServiceMeshMetricDataDecorator.java       | 13 +++-------
 .../handler/v5/ServiceNameDiscoveryHandler.java    |  4 +--
 .../parser/standardization/SpanIdExchanger.java    |  3 ++-
 6 files changed, 41 insertions(+), 17 deletions(-)

diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/service/EndpointInventoryRegister.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/service/EndpointInventoryRegister.java
index 69e405d..895f421 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/service/EndpointInventoryRegister.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/service/EndpointInventoryRegister.java
@@ -22,6 +22,7 @@ import org.apache.skywalking.oap.server.core.*;
 import org.apache.skywalking.oap.server.core.cache.EndpointInventoryCache;
 import org.apache.skywalking.oap.server.core.register.EndpointInventory;
 import org.apache.skywalking.oap.server.core.register.worker.InventoryProcess;
+import org.apache.skywalking.oap.server.core.source.DetectPoint;
 import org.apache.skywalking.oap.server.library.module.ModuleManager;
 import org.slf4j.*;
 
@@ -48,14 +49,14 @@ public class EndpointInventoryRegister implements IEndpointInventoryRegister {
         return cacheService;
     }
 
-    @Override public int getOrCreate(int serviceId, String endpointName, int detectPoint) {
+    @Override public int getOrCreate(int serviceId, String endpointName, DetectPoint detectPoint) {
         int endpointId = getCacheService().getEndpointId(serviceId, endpointName);
 
         if (endpointId == Const.NONE) {
             EndpointInventory endpointInventory = new EndpointInventory();
             endpointInventory.setServiceId(serviceId);
             endpointInventory.setName(endpointName);
-            endpointInventory.setDetectPoint(detectPoint);
+            endpointInventory.setDetectPoint(detectPoint.ordinal());
 
             long now = System.currentTimeMillis();
             endpointInventory.setRegisterTime(now);
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/service/IEndpointInventoryRegister.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/service/IEndpointInventoryRegister.java
index d5c06db..2258aac 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/service/IEndpointInventoryRegister.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/service/IEndpointInventoryRegister.java
@@ -18,6 +18,7 @@
 
 package org.apache.skywalking.oap.server.core.register.service;
 
+import org.apache.skywalking.oap.server.core.source.DetectPoint;
 import org.apache.skywalking.oap.server.library.module.Service;
 
 /**
@@ -25,7 +26,7 @@ import org.apache.skywalking.oap.server.library.module.Service;
  */
 public interface IEndpointInventoryRegister extends Service {
 
-    int getOrCreate(int serviceId, String endpointName, int detectPoint);
+    int getOrCreate(int serviceId, String endpointName, DetectPoint detectPoint);
 
     int get(int serviceId, String endpointName);
 }
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/DetectPoint.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/DetectPoint.java
index bdc60ea..e746086 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/DetectPoint.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/DetectPoint.java
@@ -18,9 +18,37 @@
 
 package org.apache.skywalking.oap.server.core.source;
 
+import org.apache.skywalking.apm.network.language.agent.SpanType;
+
 /**
  * @author peng-yongsheng
  */
 public enum DetectPoint {
-    CLIENT, SERVER, PROXY
+    SERVER, CLIENT, PROXY, UNRECOGNIZED;
+
+    public static DetectPoint fromSpanType(SpanType spanType) {
+        switch (spanType) {
+            case Entry:
+                return DetectPoint.SERVER;
+            case Exit:
+                return DetectPoint.SERVER;
+            case UNRECOGNIZED:
+            case Local:
+            default:
+                return DetectPoint.UNRECOGNIZED;
+        }
+    }
+
+    public static DetectPoint fromMeshDetectPoint(org.apache.skywalking.apm.network.common.DetectPoint detectPoint) {
+        switch (detectPoint) {
+            case client:
+                return CLIENT;
+            case server:
+                return SERVER;
+            case proxy:
+            case UNRECOGNIZED:
+            default:
+                return UNRECOGNIZED;
+        }
+    }
 }
diff --git a/oap-server/server-receiver-plugin/skywalking-mesh-receiver-plugin/src/main/java/org/apache/skywalking/aop/server/receiver/mesh/ServiceMeshMetricDataDecorator.java b/oap-server/server-receiver-plugin/skywalking-mesh-receiver-plugin/src/main/java/org/apache/skywalking/aop/server/receiver/mesh/ServiceMeshMetricDataDecorator.java
index 7da1ac1..e896d4b 100644
--- a/oap-server/server-receiver-plugin/skywalking-mesh-receiver-plugin/src/main/java/org/apache/skywalking/aop/server/receiver/mesh/ServiceMeshMetricDataDecorator.java
+++ b/oap-server/server-receiver-plugin/skywalking-mesh-receiver-plugin/src/main/java/org/apache/skywalking/aop/server/receiver/mesh/ServiceMeshMetricDataDecorator.java
@@ -83,16 +83,9 @@ public class ServiceMeshMetricDataDecorator {
         String endpoint = origin.getEndpoint();
         if (destServiceId != Const.NONE) {
             DetectPoint point = origin.getDetectPoint();
-            /**
-             * Detect point matches {@link SpanType}, value options:
-             *
-             *     Entry = 0; Server side.
-             *     Exit = 1;  Client side
-             *     Local = 2; Never used.
-             *
-             */
-            int detectPointInt = DetectPoint.client.equals(point) ? 1 : 0;
-            endpointId = CoreRegisterLinker.getEndpointInventoryRegister().getOrCreate(destServiceId, endpoint, detectPointInt);
+
+            endpointId = CoreRegisterLinker.getEndpointInventoryRegister().getOrCreate(destServiceId, endpoint,
+                org.apache.skywalking.oap.server.core.source.DetectPoint.fromMeshDetectPoint(point));
             if (endpointId != Const.NONE) {
             } else {
                 isRegistered = false;
diff --git a/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/ServiceNameDiscoveryHandler.java b/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/ServiceNameDiscoveryHandler.java
index 93cda2d..93ddbdc 100644
--- a/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/ServiceNameDiscoveryHandler.java
+++ b/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/ServiceNameDiscoveryHandler.java
@@ -23,6 +23,7 @@ import java.util.List;
 import org.apache.skywalking.apm.network.language.agent.*;
 import org.apache.skywalking.oap.server.core.*;
 import org.apache.skywalking.oap.server.core.register.service.IEndpointInventoryRegister;
+import org.apache.skywalking.oap.server.core.source.DetectPoint;
 import org.apache.skywalking.oap.server.library.module.ModuleManager;
 import org.apache.skywalking.oap.server.library.server.grpc.GRPCHandler;
 import org.slf4j.*;
@@ -48,8 +49,7 @@ public class ServiceNameDiscoveryHandler extends ServiceNameDiscoveryServiceGrpc
         for (ServiceNameElement serviceNameElement : serviceNameElementList) {
             int serviceId = serviceNameElement.getApplicationId();
             String endpointName = serviceNameElement.getServiceName();
-            int srcSpanType = serviceNameElement.getSrcSpanTypeValue();
-            int endpointId = inventoryService.getOrCreate(serviceId, endpointName, srcSpanType);
+            int endpointId = inventoryService.getOrCreate(serviceId, endpointName, DetectPoint.fromSpanType(serviceNameElement.getSrcSpanType()));
 
             if (endpointId != Const.NONE) {
                 ServiceNameMappingElement.Builder mappingElement = ServiceNameMappingElement.newBuilder();
diff --git a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/standardization/SpanIdExchanger.java b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/standardization/SpanIdExchanger.java
index db1988a..36d3991 100644
--- a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/standardization/SpanIdExchanger.java
+++ b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/standardization/SpanIdExchanger.java
@@ -21,6 +21,7 @@ package org.apache.skywalking.oap.server.receiver.trace.provider.parser.standard
 import org.apache.skywalking.oap.server.core.*;
 import org.apache.skywalking.oap.server.core.config.IComponentLibraryCatalogService;
 import org.apache.skywalking.oap.server.core.register.service.*;
+import org.apache.skywalking.oap.server.core.source.DetectPoint;
 import org.apache.skywalking.oap.server.library.module.ModuleManager;
 import org.apache.skywalking.oap.server.library.util.StringUtils;
 import org.apache.skywalking.oap.server.receiver.trace.provider.parser.decorator.SpanDecorator;
@@ -88,7 +89,7 @@ public class SpanIdExchanger implements IdExchanger<SpanDecorator> {
 
         if (standardBuilder.getOperationNameId() == 0) {
             String endpointName = StringUtils.isNotEmpty(standardBuilder.getOperationName()) ? standardBuilder.getOperationName() : Const.DOMAIN_OPERATION_NAME;
-            int endpointId = endpointInventoryRegister.getOrCreate(serviceId, endpointName, standardBuilder.getSpanTypeValue());
+            int endpointId = endpointInventoryRegister.getOrCreate(serviceId, endpointName, DetectPoint.fromSpanType(standardBuilder.getSpanType()));
 
             if (endpointId == 0) {
                 if (logger.isDebugEnabled()) {