mirror of
https://github.com/csunny/DB-GPT.git
synced 2025-09-15 22:19:28 +00:00
feat(core): Support opentelemetry exporter (#1690)
This commit is contained in:
@@ -9,6 +9,7 @@ import traceback
|
||||
from typing import Any, Dict, List, Optional, Set, cast
|
||||
|
||||
from dbgpt.component import SystemApp
|
||||
from dbgpt.util.tracer import root_tracer
|
||||
|
||||
from ..dag.base import DAGContext, DAGVar
|
||||
from ..operators.base import CALL_DATA, BaseOperator, WorkflowRunner
|
||||
@@ -90,9 +91,20 @@ class DefaultWorkflowRunner(WorkflowRunner):
|
||||
# Save dag context
|
||||
await node.dag._save_dag_ctx(dag_ctx)
|
||||
await job_manager.before_dag_run()
|
||||
await self._execute_node(
|
||||
job_manager, node, dag_ctx, node_outputs, skip_node_ids, system_app
|
||||
)
|
||||
|
||||
with root_tracer.start_span(
|
||||
"dbgpt.awel.workflow.run_workflow",
|
||||
metadata={
|
||||
"exist_dag_ctx": exist_dag_ctx is not None,
|
||||
"event_loop_task_id": event_loop_task_id,
|
||||
"streaming_call": streaming_call,
|
||||
"awel_node_id": node.node_id,
|
||||
"awel_node_name": node.node_name,
|
||||
},
|
||||
):
|
||||
await self._execute_node(
|
||||
job_manager, node, dag_ctx, node_outputs, skip_node_ids, system_app
|
||||
)
|
||||
if not streaming_call and node.dag and exist_dag_ctx is None:
|
||||
# streaming call not work for dag end
|
||||
# if exist_dag_ctx is not None, it means current dag is a sub dag
|
||||
@@ -158,9 +170,23 @@ class DefaultWorkflowRunner(WorkflowRunner):
|
||||
if system_app is not None and node.system_app is None:
|
||||
node.set_system_app(system_app)
|
||||
|
||||
await node._run(dag_ctx, task_ctx.log_id)
|
||||
node_outputs[node.node_id] = dag_ctx.current_task_context
|
||||
task_ctx.set_current_state(TaskState.SUCCESS)
|
||||
run_metadata = {
|
||||
"awel_node_id": node.node_id,
|
||||
"awel_node_name": node.node_name,
|
||||
"awel_node_type": str(node),
|
||||
"state": TaskState.RUNNING.value,
|
||||
"task_log_id": task_ctx.log_id,
|
||||
}
|
||||
with root_tracer.start_span(
|
||||
"dbgpt.awel.workflow.run_operator", metadata=run_metadata
|
||||
) as span:
|
||||
await node._run(dag_ctx, task_ctx.log_id)
|
||||
node_outputs[node.node_id] = dag_ctx.current_task_context
|
||||
task_ctx.set_current_state(TaskState.SUCCESS)
|
||||
|
||||
run_metadata["skip_node_ids"] = ",".join(skip_node_ids)
|
||||
run_metadata["state"] = TaskState.SUCCESS.value
|
||||
span.metadata = run_metadata
|
||||
|
||||
if isinstance(node, BranchOperator):
|
||||
skip_nodes = task_ctx.metadata.get("skip_node_names", [])
|
||||
|
Reference in New Issue
Block a user