用途
该技能用于把 PostHog 中的错误发生记录(error occurrence)或某个会话中的错误,与 OpenTelemetry 追踪(traces)、具有相同 trace ID 的日志,以及 Session Replay 关联起来。核心原则是:使用共享 ID 来连接记录;仅凭匹配的服务名和时间,并不能证明某条日志或 span 属于该错误。
主要能力
- 查找异常:对于 issue ID 或 URL,调用
posthog:query-error-tracking-issue-events,参数为include: ["exception", "correlation"]、filterTestAccounts: false和较小的 limit。除非用户要求多个,否则选择一个 occurrence,并说明结果是样本。 - 对于 occurrence ID 或 session ID,读取
finding-exceptions.md获取精确查找方式。使用用户给定的时间范围;若没有事件出现,说明检查的时间窗口。不要基于有限搜索断言事件从未存在。 - 跟随 ID 关联:
- Replay:若事件有
$session_id,调用posthog:session-recording-get。found: false表示未找到录制,但错误或会话可能仍然存在。存在录制时,用posthog:generate-app-url生成/replay/{id}。 - 精确 trace:对每个唯一、非零、32 字符十六进制的
$trace_id,调用posthog:apm-trace-get,参数excludeAttributes: true。使用其_posthogUrl作为 trace 链接。若事件有$span_id,与返回的 span ID 按十六进制比较,忽略大小写。空结果表示该 trace ID 没有保留的 span,但日志可能仍存在。 - 会话 trace 候选:若事件缺少
$trace_id且用户询问会话 trace,使用posthog:apm-attributes-list查找存储会话 ID 的 span 属性。若存在明确的键,调用posthog:query-apm-spans,使用精确的 span_attribute 过滤、错误附近的短时间窗口、flatSpans: true和较小的 limit。这可以找到匹配的子 span 以及根 span。对需要链接的候选调用posthog:apm-trace-get。将这些标记为会话匹配。仅凭时间不能证明是哪个请求引发了错误。 - 同 trace 日志:当事件有 trace ID 时,读取
finding-trace-logs.md获取有界服务查找和精确日志过滤。包含所有严重级别,包括 info。即使没有保留 span,trace 也可能有日志。
- Replay:若事件有
- 当 issue ID 已知时,使用
posthog:generate-app-url生成/error-tracking/{id}。不要手工构建 PostHog 链接。
使用方式
按上述步骤依次查找异常、跟随 ID 关联,并报告结果。对每个检查的 occurrence,展示错误时间、用于连接的 ID,以及 issue、replay 和保留 trace 的链接(若可用)。总结匹配日志及其时间和严重级别。日志摘录中排除机密和不需要的个人数据。
适用场景
当用户要求追踪错误对应的 trace、日志或回放时使用。适用于需要将 PostHog 错误跟踪与 OpenTelemetry 可观测性数据关联的调试场景。
限制
- 需分别命名每种缺口:事件上没有 trace ID、有 trace ID 但没有保留 span、span 上没有会话属性、没有录制、或在检查窗口内没有该 trace ID 的日志。
- 会话匹配的 span 在精确 trace 或 span ID 将其连接到错误之前,只是候选。
- 需说明任何导致搜索不完整的行数限制或时间范围。
- 若查找失败,应说明其结果未知,而不是报告不存在匹配数据。