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);
}
}