feat: 新增通用链路追踪模块与 RAG 对话全链路埋点

- 新增 ruoyi-common-trace 模块:TraceContext 上下文、TraceNodeAspect 注解切面、数据库双表持久化
- ChatServiceFacade / KnowledgeRetrievalServiceImpl 完成 RAG 对话 retrieval → rerank → llm-call 全链路采集
- 新增 TraceController 提供列表/详情/节点查询 API 及数据统计
- 支持 trace.enabled 开关、payload 长度截断、错误安全降级
- TraceNodeTemplate 模板封装标准节点生命周期,减少重复样板代码
This commit is contained in:
Obltv
2026-06-16 09:24:36 +08:00
parent 7aa67cfc2f
commit e925050207
40 changed files with 2618 additions and 41 deletions

View File

@@ -227,6 +227,24 @@ xss:
excludeUrls:
- /system/notice
--- # 链路追踪配置
trace:
# 是否启用链路追踪,默认 true
# 关闭后所有埋点代码会直接透传业务逻辑,不写库、不创建上下文,零性能开销
enabled: true
payload:
# 是否记录方法真实入参和返回值,默认 false仅存摘要
# 仅对 @TraceNode 注解方式生效,编程式埋点使用 TracePayloadBuilder 手动构建的摘要不受此开关影响
# true → 自动序列化原始入参/返回值,截断后写入 input_payload / output_payload
# false → 只存 nodeName / 耗时 / 状态等元信息input_payload / output_payload 为空
record-detail: false
# input payload 最大字符长度,超过部分会被截断丢弃
max-input-length: 1000
# output payload 最大字符长度,超过部分会被截断丢弃
max-output-length: 2000
# 错误信息最大字符长度(格式: "异常类名: 异常消息"),超过部分会被截断丢弃
max-error-length: 1000
--- # 分布式锁 lock4j 全局配置
lock4j:
# 获取分布式锁超时时间,默认为 3000 毫秒