@@ -128,6 +128,7 @@ class Span(object):
128
128
"_context" ,
129
129
"_parent_context" ,
130
130
"_local_root_value" ,
131
+ "_service_entry_span_value" ,
131
132
"_parent" ,
132
133
"_ignored_exceptions" ,
133
134
"_on_finish_callbacks" ,
@@ -221,6 +222,7 @@ def __init__(
221
222
self ._parent : Optional ["Span" ] = None
222
223
self ._ignored_exceptions : Optional [List [Type [Exception ]]] = None
223
224
self ._local_root_value : Optional ["Span" ] = None # None means this is the root span.
225
+ self ._service_entry_span_value : Optional ["Span" ] = None # None means this is the service entry span.
224
226
self ._store : Optional [Dict [str , Any ]] = None
225
227
226
228
def _update_tags_from_context (self ) -> None :
@@ -725,6 +727,18 @@ def _local_root(self, value: "Span") -> None:
725
727
def _local_root (self ) -> None :
726
728
del self ._local_root_value
727
729
730
+ @property
731
+ def _service_entry_span (self ) -> "Span" :
732
+ return self ._service_entry_span_value or self
733
+
734
+ @_service_entry_span .setter
735
+ def _service_entry_span (self , span : "Span" ) -> None :
736
+ self ._service_entry_span_value = None if span is self else span
737
+
738
+ @_service_entry_span .deleter
739
+ def _service_entry_span (self ) -> None :
740
+ del self ._service_entry_span_value
741
+
728
742
def link_span (self , context : Context , attributes : Optional [Dict [str , Any ]] = None ) -> None :
729
743
"""Defines a causal relationship between two spans"""
730
744
if not context .trace_id or not context .span_id :
0 commit comments