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

Add faas to SpanLayer (#8408)

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