Skip to content
FunCoding

Search

Search docs, Skills and MCP

关联会话、用量与工具事件

选择正确的 OTel 自定义 ID,避免用 metric 聚合值或去重键错误关联会话。

This page has not been translated into English yet. The original Chinese version is shown below.

OpenTelemetry metrics 是聚合,不携带 conversation/request/usage_event ID。需要会话级分析时使用 logs,先按 cursor.event.id 去重,再按业务 ID 关联。

ID 的用途

属性用途
cursor.conversation.id会话;IDE/CLI 是 chat UUID,Cloud Agent 是 bc-… ID,Grok Bot 是 Bot 的 conversation ID
cursor.usage_event.id模型请求与费用修正的关联键
cursor.request.id某些 log 的单次调用 ID,可选
cursor.event.id单条事件去重,不能跨事件类型 join
cursor.user.account_id可选成员 ID,可连接 /teams/members 返回的 id

api.correction、cloud_agent.、grok_bot. 不带 request.id。用户属性可缺失,团队 key 或服务账号启动的 Cloud Agent 无 owner,不带这些 owner 属性。不要用必填约束丢掉它们。

计算会话用量

按 conversation.id 汇总 api.request 的 input/output/cache token,再连接同会话 skill.activated、hook.execution_complete、cloud_agent.* 等事件。tool.calls 和 cost.usage 都仅是 metric,不能直接分摊到聊天;会话费用需用 token 和费率估算,或连接计费数据。

遇到 api.correction,按 usage_event.id 找到对应 request/error,将整组按不计费处理。这里是账单最终修正,不是新增负数 token metric。

Grok Bot 的回合和调用

cursor.grok_bot.turn.id 关联一轮 action 与该轮模型请求;event.sequence 排序行动,不依赖客户端时钟,序号无需连续。tool_call.id 连接一次工具调用的 tool_result、tool_decision、特定事件及 opt-in tool_io;decision.id 连接人工批准请求、等待与答复。

shell_command 事件自身不带 tool_call.id,不能强制用该键关联所有事件。消息日志使用可选 conversation.turn.id,也不能要求其一定有 grok_bot.turn.id。

subagent 有自己的 turn.id/subagent.id,可用 root_turn.id 汇总到发起回合。其他产品入口暂没有同等 parent rollup;旧 Bot 记录还可能缺 event.sequence/initiated_by,兼容这些可选字段。