@@ -663,24 +663,6 @@ def record_exception(self, exception: Exception) -> None:
663
663
)
664
664
665
665
666
- def generate_span_id () -> int :
667
- """Get a new random span ID.
668
-
669
- Returns:
670
- A random 64-bit int for use as a span ID
671
- """
672
- return random .getrandbits (64 )
673
-
674
-
675
- def generate_trace_id () -> int :
676
- """Get a new random trace ID.
677
-
678
- Returns:
679
- A random 128-bit int for use as a trace ID
680
- """
681
- return random .getrandbits (128 )
682
-
683
-
684
666
class Tracer (trace_api .Tracer ):
685
667
"""See `opentelemetry.trace.Tracer`.
686
668
@@ -733,7 +715,7 @@ def start_span( # pylint: disable=too-many-locals
733
715
734
716
if parent_context is None or not parent_context .is_valid :
735
717
parent = parent_context = None
736
- trace_id = generate_trace_id ()
718
+ trace_id = self . source . ids_generator . generate_trace_id ()
737
719
trace_flags = None
738
720
trace_state = None
739
721
else :
@@ -757,7 +739,7 @@ def start_span( # pylint: disable=too-many-locals
757
739
)
758
740
context = trace_api .SpanContext (
759
741
trace_id ,
760
- generate_span_id (),
742
+ self . source . ids_generator . generate_span_id (),
761
743
is_remote = False ,
762
744
trace_flags = trace_flags ,
763
745
trace_state = trace_state ,
@@ -826,10 +808,15 @@ def __init__(
826
808
active_span_processor : Union [
827
809
SynchronousMultiSpanProcessor , ConcurrentMultiSpanProcessor
828
810
] = None ,
811
+ ids_generator : trace_api .IdsGenerator = None ,
829
812
):
830
813
self ._active_span_processor = (
831
814
active_span_processor or SynchronousMultiSpanProcessor ()
832
815
)
816
+ if ids_generator is None :
817
+ self .ids_generator = trace_api .RandomIdsGenerator ()
818
+ else :
819
+ self .ids_generator = ids_generator
833
820
self .resource = resource
834
821
self .sampler = sampler
835
822
self ._atexit_handler = None
0 commit comments