跳转到内容
Telemetry
API 可靠性 SQL查询示例

比较依赖性 p95 延迟

查找对请求造成最大尾部延迟的数据库、API、缓存和队列。

中级dependency_calls已审核 2026-07-27测试用 阿帕奇 DataFusion 45.2.0

审阅者 Telemetry产品团队 . SQL 兼容性、事件契约、合成输出和操作注意事项. 审查标准和所有权

问题已回答

哪些下游依赖项的尾部延迟和故障率最差?

当依赖计时附加到已完成的工作单元时,慢速路线更容易修复。尾部潜伏期揭示了平均隐藏的间歇性下游压力。

活动合约

查询期望的字段

字段类型为什么存在
timestamp_utcTimestamp依赖调用完成时间。
dependency_nameUtf8稳定的逻辑依赖名称。
operationUtf8规范化操作或路线。
statusUtf8成功、失败或超时。
latency_msFloat64依赖持续时间(以毫秒为单位)。
DataFusion SQL

复制查询

sql
SELECT
  dependency_name,
  operation,
  COUNT(*) AS calls,
  approx_percentile_cont(latency_ms, 0.50) AS p50_ms,
  approx_percentile_cont(latency_ms, 0.95) AS p95_ms,
  100.0 * SUM(CASE WHEN status <> 'success' THEN 1 ELSE 0 END)
    / NULLIF(COUNT(*), 0) AS failure_rate_pct
FROM dependency_calls
WHERE timestamp_utc >= now() - INTERVAL '24 hours'
GROUP BY dependency_name, operation
HAVING COUNT(*) >= 50
ORDER BY p95_ms DESC
LIMIT 20;

此只读查询是针对空类型表计划和执行的 阿帕奇 DataFusion 45.2.0。确定性样本输出是综合的并单独审查;根据您自己的数据验证字段类型、阈值和业务定义。 阅读测试方法。

查询结果

依赖 p95 延迟

尽管中位数可以接受,但发票历史记录仍存在严重的长尾现象。

dependency_nameoperationcallsp50_msp95_msfailure_rate_pct
billing_databaseinvoice_history1,840841,8200.49
search_providerdocument_search6,2201327601.21
redissession_lookup44,1003120.02

综合示例输出。在将其用于操作决策之前,针对您自己的事件架构和阈值运行查询。

Dependency p95 latency:来自 Compare Dependency p95 Latency 示例结果的合成 p95_ms 值的静态图表
确定性示例输出的可索引 SVG。下载它以获取带有归属的文章、操作手册或设计评论。

重现示例

下载公共装置

JSON 包包含类型化事件契约, illustrative 输入行、确切的 SQL、预期输出、审阅注释和引擎版本。 CSV 包含显示的结果。

SQL 是如何工作的

  1. 1按逻辑依赖性和操作进行分组可以使结果具有可操作性。
  2. 2p50 和 p95 之间的差距将持续缓慢的服务与间歇性的尾部行为区分开来。
  3. 3失败率会阻止快速失败的依赖关系显得健康。

需要决定的边缘情况

  • 避免在操作名称中使用原始 SQL 文本、完整 URL 或客户标识符。
  • 并行依赖调用不会线性增加请求持续时间。
  • 如果跟踪已包含此计时,则仅记录连接结果所需的业务上下文。

推荐仪表板

  • 分组条:按依赖性划分的 p50_ms 和 p95_ms
  • 趋势:p95 延迟和故障率
  • 表:具有路由、发布和跟踪 ID 的慢速依赖项调用

警报指导

当关键依赖性超出其 p95 目标并影响最小数量的调用时发出警报。

读取警报设置

让查询示例发挥作用

相关埋点和指南

继续分析

在真实事件中运行它

创建表,调整字段并保存结果

免费开始,发送结构化事件,并将查询结果用作图表、共享仪表板小部件或警报输入。

获取 API 密钥