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

按路由计算API超时率

按超时率对路由进行排名,同时保留请求量和配置的超时边界。

入门api_requests已审核 2026-07-27测试用 阿帕奇 DataFusion 45.2.0

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

问题已回答

哪些 API 路由超时的频率足以影响用户?

超时应该有其自己的速率,因为它们可能会以多个状态代码或客户端断开连接的形式出现。标准化的结果字段使它们具有可比性。

活动合约

查询期望的字段

字段类型为什么存在
timestamp_utcTimestamp请求完成时间。
route_templateUtf8稳定的匹配路线。
outcomeUtf8成功、错误、超时、取消或 rate_limited。
latency_msFloat64观察到的请求持续时间。
DataFusion SQL

复制查询

sql
SELECT
  route_template,
  COUNT(*) AS requests,
  SUM(CASE WHEN outcome = 'timeout' THEN 1 ELSE 0 END) AS timeouts,
  100.0 * SUM(CASE WHEN outcome = 'timeout' THEN 1 ELSE 0 END)
    / NULLIF(COUNT(*), 0) AS timeout_rate_pct,
  approx_percentile_cont(latency_ms, 0.95) AS p95_latency_ms
FROM api_requests
WHERE timestamp_utc >= now() - INTERVAL '24 hours'
GROUP BY route_template
HAVING COUNT(*) >= 50
ORDER BY timeout_rate_pct DESC, requests DESC
LIMIT 20;

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

查询结果

按路由的超时率

报告导出存在超时问题,聚合 5xx 速率可能会隐藏该问题。

route_templaterequeststimeoutstimeout_rate_pctp95_latency_ms
/api/reports/export780313.9729,400
/api/projects/:id/sync2,410220.918,420
/api/search12,14090.07680

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

Timeout rate by route:来自 Calculate API Timeout Rate by Route 示例结果的合成 timeout_rate_pct 值的静态图表
确定性示例输出的可索引 SVG。下载它以获取带有归属的文章、操作手册或设计评论。

重现示例

下载公共装置

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

SQL 是如何工作的

  1. 1标准化结果捕获服务器截止时间、网关超时和已处理的客户端超时路径。
  2. 2最小请求阈值可以防止一种罕见的超时主导排名。
  3. 3除了超时率之外,p95 延迟有助于区分持续缓慢的工作和突然的截止日期失败。

需要决定的边缘情况

  • 客户端断开连接和服务器截止时间可能需要不同的结果值。
  • 长时间运行的导出可能具有与交互式路由不同的服务目标。
  • 当路由或客户使用不同的超时策略时,记录配置的截止时间。

推荐仪表板

  • 酒吧:timeout_rate_pct by route_template
  • 趋势:超时量和 p95 延迟
  • 表:具有依赖项和发布上下文的最新超时请求

警报指导

当路由在有意义的请求量上超过其超时率目标时发出警报。

读取警报设置

让查询示例发挥作用

相关埋点和指南

继续分析

在真实事件中运行它

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

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

获取 API 密钥