未验证 提交 e6be0b86 编写于 作者: Z zhang-wei 提交者: GitHub

Add faas to SpanLayer (#8408)

上级 ed35f4e8
......@@ -28,6 +28,7 @@ Release Notes.
* Add source layer and dest layer to relation.
* Follow protocol grammar fix `GCPhrase -> GCPhase`.
* Set layer to mesh relation.
* Add `FAAS` to SpanLayer.
#### UI
......
......@@ -119,7 +119,7 @@ public class MultiScopesAnalysisListener implements EntryAnalysisListener, ExitA
sourceBuilder.setDestEndpointName(span.getOperationName());
sourceBuilder.setDestServiceInstanceName(segmentObject.getServiceInstance());
sourceBuilder.setDestServiceName(segmentObject.getService());
sourceBuilder.setDestLayer(Layer.GENERAL);
sourceBuilder.setDestLayer(identifyServiceLayer(span.getSpanLayer()));
sourceBuilder.setDetectPoint(DetectPoint.SERVER);
sourceBuilder.setComponentId(span.getComponentId());
setPublicAttrs(sourceBuilder, span);
......@@ -134,7 +134,7 @@ public class MultiScopesAnalysisListener implements EntryAnalysisListener, ExitA
sourceBuilder.setSourceNormal(false);
sourceBuilder.setDestServiceInstanceName(segmentObject.getServiceInstance());
sourceBuilder.setDestServiceName(segmentObject.getService());
sourceBuilder.setDestLayer(Layer.GENERAL);
sourceBuilder.setDestLayer(identifyServiceLayer(span.getSpanLayer()));
sourceBuilder.setDestEndpointName(span.getOperationName());
sourceBuilder.setDetectPoint(DetectPoint.SERVER);
sourceBuilder.setComponentId(span.getComponentId());
......@@ -165,13 +165,13 @@ public class MultiScopesAnalysisListener implements EntryAnalysisListener, ExitA
sourceBuilder.setSourceServiceName(segmentObject.getService());
sourceBuilder.setSourceServiceInstanceName(segmentObject.getServiceInstance());
sourceBuilder.setSourceLayer(Layer.GENERAL);
sourceBuilder.setSourceLayer(identifyServiceLayer(span.getSpanLayer()));
final NetworkAddressAlias networkAddressAlias = networkAddressAliasCache.get(networkAddress);
if (networkAddressAlias == null) {
sourceBuilder.setDestServiceName(networkAddress);
sourceBuilder.setDestServiceInstanceName(networkAddress);
sourceBuilder.setDestLayer(fromSpanLayerValue(span.getSpanLayer()));
sourceBuilder.setDestLayer(identifyRemoteServiceLayer(span.getSpanLayer()));
sourceBuilder.setDestNormal(false);
} else {
/*
......@@ -376,7 +376,10 @@ public class MultiScopesAnalysisListener implements EntryAnalysisListener, ExitA
});
}
private Layer fromSpanLayerValue(SpanLayer spanLayer) {
/**
* Identify the layer of remote service. Such as ${@link Layer#DATABASE} and ${@link Layer#CACHE}.
*/
private Layer identifyRemoteServiceLayer(SpanLayer spanLayer) {
switch (spanLayer) {
case Unknown:
return Layer.UNDEFINED;
......@@ -392,11 +395,25 @@ public class MultiScopesAnalysisListener implements EntryAnalysisListener, ExitA
return Layer.CACHE;
case UNRECOGNIZED:
return Layer.UNDEFINED;
case FAAS:
return Layer.FAAS;
default:
throw new UnexpectedException("Can't transfer to the Layer. SpanLayer=" + spanLayer);
}
}
/**
* Identify the layer of span's service/instance owner. Such as ${@link Layer#FAAS} and ${@link Layer#GENERAL}.
*/
private Layer identifyServiceLayer(SpanLayer spanLayer) {
if (SpanLayer.FAAS.equals(spanLayer)) {
// function as a Service
return Layer.FAAS;
} else {
return Layer.GENERAL;
}
}
public static class Factory implements AnalysisListenerFactory {
private final SourceReceiver sourceReceiver;
private final NetworkAddressAliasCache networkAddressAliasCache;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册