SuperAPI AI 工具集

linking-errors-to-traces

部署与运维

查看项目

更新于 10-16 19:25

技能介绍

用途

该技能用于把 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 也可能有日志。
  • 当 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 将其连接到错误之前,只是候选。
  • 需说明任何导致搜索不完整的行数限制或时间范围。
  • 若查找失败,应说明其结果未知,而不是报告不存在匹配数据。