跳转到内容
Telemetry
浏览文档
概念与 SQL 模式更新于 2026年7月28日由 Telemetry 编辑团队和产品团队审核阅读约需 2 分钟

让编程智能体使用这篇文档

打开 Claude Code、Codex、Cursor 或其他编码代理的集中提示包,然后将其适应此处介绍的工作流程。

使用 SQL 计算延迟和分布百分位数

平均值将分布压缩为一个数字。这对于总数和总体趋势很有用,但它可能隐藏事件期间重要的缓慢体验。百分位数回答了一个不同的问题:p95 是大约 95% 的观测值处于或低于该值的值。

查询分布中的几个点

Telemetry 使用 Apache DataFusion SQL。使用 approx_percentile_cont 进行实际百分位估计:

SELECT
  route_template,
  COUNT(*) AS requests,
  approx_percentile_cont(duration_ms, 0.50) AS p50_ms,
  approx_percentile_cont(duration_ms, 0.95) AS p95_ms,
  approx_percentile_cont(duration_ms, 0.99) AS p99_ms,
  MAX(duration_ms) AS maximum_ms
FROM api_request_events
WHERE timestamp_utc >= now() - INTERVAL '24 hours'
GROUP BY route_template
HAVING COUNT(*) >= 100
ORDER BY p95_ms DESC;

在结果中保留请求计数。一个小群体的百分位数是不稳定的,当一个群体只包含少量观察值时,p99 没有意义。近似结果也不应该以人为的小数精度表示。

解释形状,而不仅仅是等级

如果 p50、p95 和 p99 一起上升,整个工作流程可能会发生变化。如果 p50 保持稳定而 p99 增加,则一部分请求正在经历尾部延迟。最大值对于调查很有用,但一个异常值不应定义正常性能。

仅按可以更改操作的维度进行分组:路由模板、依赖项、版本、区域或有界操作名称。原始 URL 和不受限制的查询文本会创建难以比较的高基数组,并且可能会暴露敏感值。

百分位数不是百分比。 p95 延迟 800 毫秒并不意味着 95% 的请求很慢;这意味着大约 95% 的完成率等于或低于该值。将数字与经过审查的目标和明确的单位配对。

使用 API 延迟配方依赖延迟配方队列等待食谱 作为测试示例。 分布可视化指南 解释了直方图何时比三个百分位点更能说明问题。

相关产品功能

对结构化事件表运行只读 DataFusion SQL 并重用结果。

内容责任与技术参考

Telemetry 编辑团队负责维护本文;产品团队审核功能行为、示例和适用范围。

查看编辑规范