Cloudflare Traces 显示生产请求如何经过 Cloudflare,并记录你域名上实际流量的跟踪。每条跟踪包含请求路径中受支持步骤的 span,例如 Rules、请求路由、Cache、Workers 和源站连接。span 记录操作耗时、结果和相关属性,帮助你查看请求在何处变慢或失败。
使用 Cloudflare Traces 可以回答如下问题:
- 请求为何被阻止或质询,是哪条安全规则采取了操作?
- URL 在到达应用之前是否被 Transform Rule 重写?
- 哪些 Page Rules、Snippets 或 Workers 处理或更改了请求?
- 响应是否来自 cache,时间分别花在 Cloudflare、源站连接和应用的哪些环节?
- 该行为是否仅出现在特定 Cloudflare 位置或区域?
为账户中的每个域名分别启用跟踪。要管理采样、上下文、导出目标和跟踪规则,请参阅配置。
使用 Add filter(添加过滤器) 或输入查询,在所选时间范围内搜索跟踪。要查找单个请求的跟踪,请按其 Ray ID 过滤。
打开一条跟踪,即可将完整请求路径查看为 span 层级结构。每一行代表一次操作,其条形显示操作运行时间和耗时。展开 span 可检查其子操作,也可按名称搜索 span。
选择一个 span 可打开其详情。详情面板显示 span 状态、服务、触发器、span 和跟踪 ID、与类似 span 的耗时对比,以及记录的属性。调查操作时,你可以搜索或复制这些属性。
不会。跟踪对请求处理没有可测量的开销。未被采样的请求会完全跳过跟踪。
请求路径中的某个 Worker 可能未启用 Workers 跟踪。请在 Wrangler 配置 中使用 observability.traces.enabled = true 启用它。
如果响应来自缓存,Cloudflare 不会联系你的源站。请检查 cache span 上的 cloudflare.cache.status 属性,确认其为 HIT,而非源站连接。
在仪表板中按 Ray ID 过滤,使用 cloudflare.ray_id = "<ray>"。要确保无论默认采样率如何都能捕获特定请求,请创建一条跟踪规则,匹配自定义调试标头并将采样率设为 100%。
目前还不能。采样是基于头部的(head-based) ↗ —— 决策发生在请求到达时,此时结果尚不可知。目前不支持基于尾部的采样。
会捕获标头名称以及对它们执行的操作。不会捕获标头值。会捕获 URL 和查询字符串。
不是。随着产品演进,span 名称和结构可能会变化。请勿对 Cloudflare 发出的 span 的确切形态建立硬依赖。