@@ -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