tom-pytel commented on a change in pull request #132:
URL: https://github.com/apache/skywalking-python/pull/132#discussion_r672557450



##########
File path: skywalking/trace/context.py
##########
@@ -91,41 +91,54 @@ def new_local_span(self, op: str) -> Span:
             kind=Kind.Local,
         )
 
-    def new_entry_span(self, op: str, carrier: 'Carrier' = None) -> Span:
+    def new_entry_span(self, op: str, carrier: 'Carrier' = None, inherit: 
Component = None) -> Span:
         span = self.ignore_check(op, Kind.Entry)
         if span is not None:
             return span
 
         spans = _spans_dup()
         parent = spans[-1] if spans else None  # type: Span
 
-        span = parent if parent is not None and parent.kind.is_entry else 
EntrySpan(
-            context=self,
-            sid=self._sid.next(),
-            pid=parent.sid if parent else -1,
-        )
-        span.op = op
+        if parent is not None and parent.kind.is_entry and inherit == 
parent.component:
+            span = parent
+            span.op = op
+        else:
+            span = EntrySpan(
+                context=self,
+                sid=self._sid.next(),
+                pid=parent.sid if parent else -1,
+                op=op,
+            )
 
-        if carrier is not None and carrier.is_valid:
-            span.extract(carrier=carrier)
+            if carrier is not None and carrier.is_valid:  # TODO: should this 
be done irrespective of inheritance?
+                span.extract(carrier=carrier)
 
         return span
 
-    def new_exit_span(self, op: str, peer: str) -> Span:
+    def new_exit_span(self, op: str, peer: str, component: Component = None, 
inherit: Component = None) -> Span:

Review comment:
       ignore

##########
File path: skywalking/trace/context.py
##########
@@ -91,41 +91,54 @@ def new_local_span(self, op: str) -> Span:
             kind=Kind.Local,
         )
 
-    def new_entry_span(self, op: str, carrier: 'Carrier' = None) -> Span:
+    def new_entry_span(self, op: str, carrier: 'Carrier' = None, inherit: 
Component = None) -> Span:
         span = self.ignore_check(op, Kind.Entry)
         if span is not None:
             return span
 
         spans = _spans_dup()
         parent = spans[-1] if spans else None  # type: Span
 
-        span = parent if parent is not None and parent.kind.is_entry else 
EntrySpan(
-            context=self,
-            sid=self._sid.next(),
-            pid=parent.sid if parent else -1,
-        )
-        span.op = op
+        if parent is not None and parent.kind.is_entry and inherit == 
parent.component:
+            span = parent
+            span.op = op
+        else:
+            span = EntrySpan(
+                context=self,
+                sid=self._sid.next(),
+                pid=parent.sid if parent else -1,
+                op=op,
+            )
 
-        if carrier is not None and carrier.is_valid:
-            span.extract(carrier=carrier)
+            if carrier is not None and carrier.is_valid:  # TODO: should this 
be done irrespective of inheritance?
+                span.extract(carrier=carrier)
 
         return span
 
-    def new_exit_span(self, op: str, peer: str) -> Span:
+    def new_exit_span(self, op: str, peer: str, component: Component = None, 
inherit: Component = None) -> Span:

Review comment:
       ignore




-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to