mirror of
https://gitcode.com/ageerle/ruoyi-ai.git
synced 2026-09-13 00:14:59 +00:00
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:
@@ -48,6 +48,11 @@
|
||||
<artifactId>ruoyi-common-log</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.ruoyi</groupId>
|
||||
<artifactId>ruoyi-common-trace</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- excel-->
|
||||
<dependency>
|
||||
<groupId>org.ruoyi</groupId>
|
||||
|
||||
@@ -0,0 +1,68 @@
|
||||
package org.ruoyi.system.controller.monitor;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.ruoyi.common.core.domain.R;
|
||||
import org.ruoyi.common.mybatis.core.page.PageQuery;
|
||||
import org.ruoyi.common.mybatis.core.page.TableDataInfo;
|
||||
import org.ruoyi.common.trace.domain.bo.TraceRunBo;
|
||||
import org.ruoyi.common.trace.domain.vo.TraceDetailVo;
|
||||
import org.ruoyi.common.trace.domain.vo.TraceNodeVo;
|
||||
import org.ruoyi.common.trace.domain.vo.TraceRunVo;
|
||||
import org.ruoyi.common.trace.service.TraceRecordService;
|
||||
import org.ruoyi.common.web.core.BaseController;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 链路追踪监控
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/monitor/trace")
|
||||
public class TraceController extends BaseController {
|
||||
|
||||
private final TraceRecordService traceRecordService;
|
||||
|
||||
/**
|
||||
* 获取链路追踪运行列表
|
||||
*/
|
||||
@SaCheckPermission("monitor:trace:list")
|
||||
@GetMapping("/run/list")
|
||||
public TableDataInfo<TraceRunVo> list(TraceRunBo bo, PageQuery pageQuery) {
|
||||
return traceRecordService.pageRuns(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取链路追踪运行详情
|
||||
*/
|
||||
@SaCheckPermission("monitor:trace:query")
|
||||
@GetMapping("/run/{traceId}")
|
||||
public R<TraceRunVo> run(@PathVariable String traceId) {
|
||||
return R.ok(traceRecordService.getRun(traceId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取链路追踪节点列表
|
||||
*/
|
||||
@SaCheckPermission("monitor:trace:query")
|
||||
@GetMapping("/node/list/{traceId}")
|
||||
public R<List<TraceNodeVo>> nodes(@PathVariable String traceId) {
|
||||
return R.ok(traceRecordService.listNodes(traceId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取链路追踪完整详情
|
||||
*/
|
||||
@SaCheckPermission("monitor:trace:query")
|
||||
@GetMapping("/detail/{traceId}")
|
||||
public R<TraceDetailVo> detail(@PathVariable String traceId) {
|
||||
return R.ok(traceRecordService.getDetail(traceId));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user