coze-loop · 用户路径
本页给出 coze-loop 的逐步数据路径。先看图,再看每步的证据。回到 coze-loop 总览。
路径图
图例:接入、队列与处理、存储、查询服务、前端、评估。虚线表示写入和读取之间靠存储相连。
逐步证据
- 客户端用 PAT 调
POST /v1/loop/traces/ingest或 OTLP 入口。 - 若有大字段,客户端先
POST /v1/loop/files/upload,再在 span 的object_storage里引用 key。 OpenAPIApplication.IngestTraces校验 workspace 一致、检查写入权限、设call_type、查权益、按租户分组、检查批量上限。- 经过:application 层、
AuthProvider、SpanContextExtractor、BenefitService。 - 证据:backend/modules/observability/application/openapi.go L108-L176、backend/modules/observability/application/openapi.go L244-L261。
- 经过:application 层、
TraceService.IngestTraces跑 ingest processor,打成TraceData,交给 producer。- 经过:domain 层 service、
trace_producer。 - 证据:backend/modules/observability/domain/trace/service/trace_service.go L1627-L1655。
- 经过:domain 层 service、
- producer 把消息压缩后发到 RocketMQ topic
trace_ingestion_event。 - collector 的 RMQ receiver 消费、校验并丢弃非法 span,queue processor 按 1000 条或 1 秒成批。
- ClickHouse exporter 按 TTL 与 workspace 分组,写入
observability_spans。 - 用户在控制台打开 Trace 页,前端调
POST /api/observability/v1/spans/list。- 经过:
SessionMW、TraceApplication.ListSpans(校验、readLoopTrace权限、时间窗校正)。 - 证据:backend/api/router/coze/loop/apis/coze.loop.apis.go L22、backend/modules/observability/application/trace.go L163-L173、frontend/packages/loop-pages/observation-pages/src/pages/trace/trace-render.tsx L69-L77。
- 经过:
TraceService.ListSpans合并平台内置过滤(call_type = Custom、root span、workspace)和用户过滤,查 ClickHouse,挂标注,跑平台与过期处理器,返回游标。- 经过:domain service、
span_filter、TraceRepo、SpansCkDao、span_processor。 - 证据:backend/modules/observability/domain/trace/service/trace_service.go L1392-L1459、backend/modules/observability/domain/trace/service/trace/span_filter/cozeloop_filter.go L16-L41、backend/modules/observability/infra/repo/trace.go L215-L277。
- 经过:domain service、
- 前端渲染列表;对 root span 再批量请求 token 汇总。
- 用户点一行,前端调
GET /api/observability/v1/traces/:trace_id,后端取该 trace 的全部 span,AttrTosProcessor把大字段 key 换成签名 URL。- 经过:
TraceApplication.GetTrace、TraceService.GetTrace、span_processor、file RPC。 - 证据:backend/modules/observability/application/trace.go L254-L291、backend/modules/observability/domain/trace/service/trace_service.go L1255-L1344、backend/modules/observability/domain/trace/service/trace/span_processor/attr_tos_processor.go L23-L72。
- 经过:
- 前端用
parent_id组成树,按 span 类型渲染 Run 和 Metadata 页签。