diff --git a/src/crewai/flow/flow.py b/src/crewai/flow/flow.py index 76486c512..6ae3941a4 100644 --- a/src/crewai/flow/flow.py +++ b/src/crewai/flow/flow.py @@ -193,7 +193,9 @@ class Flow(Generic[T], metaclass=FlowMeta): if not self._start_methods: raise ValueError("No start method defined") - self._telemetry.flow_execution_span(self.__class__.__name__) + self._telemetry.flow_execution_span( + self.__class__.__name__, list(self._methods.keys()) + ) # Create tasks for all start methods tasks = [ @@ -276,6 +278,8 @@ class Flow(Generic[T], metaclass=FlowMeta): traceback.print_exc() def plot(self, filename: str = "crewai_flow"): - self._telemetry.flow_plotting_span(self.__class__.__name__) + self._telemetry.flow_plotting_span( + self.__class__.__name__, list(self._methods.keys()) + ) plot_flow(self, filename) diff --git a/src/crewai/telemetry/telemetry.py b/src/crewai/telemetry/telemetry.py index 26364c4fd..30e710549 100644 --- a/src/crewai/telemetry/telemetry.py +++ b/src/crewai/telemetry/telemetry.py @@ -586,23 +586,25 @@ class Telemetry: except Exception: pass - def flow_plotting_span(self, flow_name: str): + def flow_plotting_span(self, flow_name: str, node_names: list[str]): if self.ready: try: tracer = trace.get_tracer("crewai.telemetry") span = tracer.start_span("Flow Plotting") self._add_attribute(span, "flow_name", flow_name) + self._add_attribute(span, "node_names", json.dumps(node_names)) span.set_status(Status(StatusCode.OK)) span.end() except Exception: pass - def flow_execution_span(self, flow_name: str): + def flow_execution_span(self, flow_name: str, node_names: list[str]): if self.ready: try: tracer = trace.get_tracer("crewai.telemetry") span = tracer.start_span("Flow Execution") self._add_attribute(span, "flow_name", flow_name) + self._add_attribute(span, "node_names", json.dumps(node_names)) span.set_status(Status(StatusCode.OK)) span.end() except Exception: