@@ -134,14 +134,16 @@ def __init__(
134134 self ,
135135 tracer ,
136136 function_name ,
137- cold_start_span_finish_time_ns ,
137+ current_span_start_time_ns ,
138138 trace_ctx ,
139139 min_duration_ms : int ,
140- ignored_libs : List [str ] = [] ,
140+ ignored_libs : List [str ] = None ,
141141 ):
142+ if ignored_libs is None :
143+ ignored_libs = []
142144 self ._tracer = tracer
143145 self .function_name = function_name
144- self .cold_start_span_finish_time_ns = cold_start_span_finish_time_ns
146+ self .current_span_start_time_ns = current_span_start_time_ns
145147 self .min_duration_ms = min_duration_ms
146148 self .trace_ctx = trace_ctx
147149 self .ignored_libs = ignored_libs
@@ -151,11 +153,14 @@ def trace(self, root_nodes: List[ImportNode] = root_nodes):
151153 if not root_nodes :
152154 return
153155 cold_start_span_start_time_ns = root_nodes [0 ].start_time_ns
156+ cold_start_span_end_time_ns = min (
157+ root_nodes [- 1 ].end_time_ns , self .current_span_start_time_ns
158+ )
154159 cold_start_span = self .create_cold_start_span (cold_start_span_start_time_ns )
155160 while root_nodes :
156161 root_node = root_nodes .pop ()
157162 self .trace_tree (root_node , cold_start_span )
158- self .finish_span (cold_start_span , self . cold_start_span_finish_time_ns )
163+ self .finish_span (cold_start_span , cold_start_span_end_time_ns )
159164
160165 def trace_tree (self , import_node : ImportNode , parent_span ):
161166 if (
0 commit comments