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

wusheng pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/skywalking.git


The following commit(s) were added to refs/heads/master by this push:
     new 58a787f  Support ref endpoint name register (#4422)
58a787f is described below

commit 58a787f9e1ca4dba37446754c08852e42e632ab0
Author: 吴晟 Wu Sheng <[email protected]>
AuthorDate: Thu Feb 27 11:06:13 2020 +0800

    Support ref endpoint name register (#4422)
---
 .../service/EndpointInventoryRegister.java         |  4 ++--
 .../service/IEndpointInventoryRegister.java        |  2 +-
 .../standardization/ReferenceIdExchanger.java      | 24 +++++++---------------
 3 files changed, 10 insertions(+), 20 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 5452818..330ee65 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
@@ -69,8 +69,8 @@ public class EndpointInventoryRegister implements 
IEndpointInventoryRegister {
     }
 
     @Override
-    public int get(int serviceId, String endpointName, int detectPoint) {
-        return getCacheService().getEndpointId(serviceId, endpointName, 
detectPoint);
+    public int get(int serviceId, String endpointName, DetectPoint 
detectPoint) {
+        return getCacheService().getEndpointId(serviceId, endpointName, 
detectPoint.ordinal());
     }
 
     @Override
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 c29ef6f..581f8d0 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
@@ -25,7 +25,7 @@ public interface IEndpointInventoryRegister extends Service {
 
     int getOrCreate(int serviceId, String endpointName, DetectPoint 
detectPoint);
 
-    int get(int serviceId, String endpointName, int detectPoint);
+    int get(int serviceId, String endpointName, DetectPoint detectPoint);
 
     void heartbeat(int endpointId, long heartBeatTime);
 }
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/ReferenceIdExchanger.java
 
b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/standardization/ReferenceIdExchanger.java
index 911c922..5203b86 100644
--- 
a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/standardization/ReferenceIdExchanger.java
+++ 
b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/standardization/ReferenceIdExchanger.java
@@ -139,29 +139,19 @@ public class ReferenceIdExchanger implements 
IdExchanger<ReferenceDecorator> {
                 standardBuilder.setNetworkAddressId(networkAddressId);
                 standardBuilder.setNetworkAddress(Const.EMPTY_STRING);
             }
-        } else {
-            /**
-             * Since 6.6.0, endpoint id could be -1, as it is not an endpoint. 
Such as local span and exist span.
-             */
         }
         return exchanged;
     }
 
     /**
-     * Endpoint in ref could be local or exit span's operation name. 
Especially if it is local span operation name,
-     * exchange may not happen at agent, such as Java agent, then put literal 
endpoint string in the header, Need to try
-     * to get the id by assuming the endpoint name is detected at server, 
local or client.
-     * <p>
-     * If agent does the exchange, then always use endpoint id.
+     * @since 6.6.0 The endpoint in the ref should be server endpoint only. 
The agent will/should use `-1`, when it can't
+     * find the endpoint of entry span in the current tracing context when 
build the ref.
+     * @since 5.0 Endpoint in ref could be local or exit span's operation 
name. Especially if it is local span operation
+     * name, * exchange may not happen at agent, such as Java agent, then put 
literal endpoint string in the header,
+     * Need to try * to get the id by assuming the endpoint name is detected 
at server, local or client. * <p> * If
+     * agent does the exchange, then always use endpoint id.
      */
     private int getEndpointId(int serviceId, String endpointName) {
-        int endpointId = endpointInventoryRegister.get(serviceId, 
endpointName, DetectPoint.SERVER.ordinal());
-        if (endpointId == Const.NONE) {
-            endpointId = endpointInventoryRegister.get(serviceId, 
endpointName, DetectPoint.CLIENT.ordinal());
-            if (endpointId == Const.NONE) {
-                endpointId = endpointInventoryRegister.get(serviceId, 
endpointName, DetectPoint.UNRECOGNIZED.ordinal());
-            }
-        }
-        return endpointId;
+        return endpointInventoryRegister.getOrCreate(serviceId, endpointName, 
DetectPoint.SERVER);
     }
 }

Reply via email to