You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by GitBox <gi...@apache.org> on 2022/11/06 06:11:39 UTC
[GitHub] [skywalking] wu-sheng commented on a diff in pull request #9911: Optimize MQ Topology to organize peer (in consumer EntrySpan) as source service when no producer instrumentation
wu-sheng commented on code in PR #9911:
URL: https://github.com/apache/skywalking/pull/9911#discussion_r1014774399
##########
docs/en/changes/changes.md:
##########
@@ -96,6 +96,7 @@
* Optimize data binary parse methods in *LogQueryDAO
* Support different indexType
* Support configuration for TTL and (block|segment) intervals
+* Optimize MQ Topology to organize peer (in consumer EntrySpan) as source service when no producer instrumentation
Review Comment:
```suggestion
* Optimize MQ Topology analysis. Use entry span's peer from the consumer side as source service when no producer instrumentation(no cross-process reference).
```
##########
docs/en/setup/service-agent/virtual-mq.md:
##########
@@ -12,4 +12,5 @@ The MQ operation span should have
- **Span's layer == MQ**
- Tag key = `mq.queue`, value = MQ queue name
- Tag key = `mq.topic`, value = MQ queue topic , it's optional as some MQ don't have topic concept.
-- Tag key = `transmission.latency`, value = Transmission latency from consumer to producer
\ No newline at end of file
+- Tag key = `transmission.latency`, value = Transmission latency from consumer to producer
+- Set `peer` for EntrySpan (at consumer side) ,because producer might not be instrumented
Review Comment:
```suggestion
- Set `peer` at both sides(producer and consumer). And the value of peer should represent the MQ server cluster.
```
##########
oap-server/analyzer/agent-analyzer/src/main/java/org/apache/skywalking/oap/server/analyzer/provider/trace/parser/listener/RPCAnalysisListener.java:
##########
@@ -125,6 +125,21 @@ public void parseEntry(SpanObject span, SegmentObject segmentObject) {
setPublicAttrs(sourceBuilder, span);
callingInTraffic.add(sourceBuilder);
}
+ } else if (span.getSpanLayer() == SpanLayer.MQ && StringUtil.isNotBlank(span.getPeer())) {
+ // For MQ , if there is no producer side instrumentation , and consumer has peer , we set the peer as source service name
Review Comment:
```suggestion
// For MQ, if there is no producer-side instrumentation, we set the existing peer as the source service name.
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@skywalking.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org