Make DetectPoint in Mesh gRPC protocol, DetectPoint in Source, and SpanSrcType convert right. (#1714)
This commit is contained in:
parent
f162fccf8b
commit
813ea1ed39
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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()) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue