16
16
from typing import cast
17
17
18
18
from ddtrace ._trace .context import Context
19
+ from ddtrace ._trace .events import tracer_span_finished
20
+ from ddtrace ._trace .events import tracer_span_started
19
21
from ddtrace ._trace .processor import SpanAggregator
20
22
from ddtrace ._trace .processor import SpanProcessor
21
23
from ddtrace ._trace .processor import TopLevelSpanProcessor
30
32
from ddtrace .constants import PID
31
33
from ddtrace .constants import VERSION_KEY
32
34
from ddtrace .internal import atexit
33
- from ddtrace .internal import core
34
35
from ddtrace .internal import debug
35
36
from ddtrace .internal import forksafe
36
37
from ddtrace .internal import hostname
@@ -205,7 +206,8 @@ def on_start_span(self, func: Callable[[Span], None]) -> Callable[[Span], None]:
205
206
:param func: The function to call when starting a span.
206
207
The started span will be passed as argument.
207
208
"""
208
- core .on ("trace.span_start" , callback = func )
209
+ handler = tracer_span_started .on (func )
210
+ setattr (func , "_tracer_span_started_handler" , handler )
209
211
return func
210
212
211
213
def deregister_on_start_span (self , func : Callable [[Span ], None ]) -> Callable [[Span ], None ]:
@@ -215,7 +217,9 @@ def deregister_on_start_span(self, func: Callable[[Span], None]) -> Callable[[Sp
215
217
216
218
:param func: The function to stop calling when starting a span.
217
219
"""
218
- core .reset_listeners ("trace.span_start" , callback = func )
220
+ handler = getattr (func , "_tracer_span_started_handler" , None )
221
+ if handler :
222
+ tracer_span_started .remove (handler )
219
223
return func
220
224
221
225
def sample (self , span ):
@@ -566,7 +570,7 @@ def _start_span(
566
570
for p in chain (self ._span_processors , SpanProcessor .__processors__ , [self ._span_aggregator ]):
567
571
if p :
568
572
p .on_span_start (span )
569
- core .dispatch ("trace.span_start" , ( span ,) )
573
+ tracer_span_started .dispatch (span )
570
574
return span
571
575
572
576
start_span = _start_span
@@ -584,7 +588,7 @@ def _on_span_finish(self, span: Span) -> None:
584
588
if p :
585
589
p .on_span_finish (span )
586
590
587
- core .dispatch ("trace.span_finish" , ( span ,) )
591
+ tracer_span_finished .dispatch (span )
588
592
log .debug ("finishing span - %r (enabled:%s)" , span , self .enabled )
589
593
590
594
def _log_compat (self , level , msg ):
0 commit comments