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

按路由计算API错误率

使用 SQL 按 5xx 错误率对 API 路由进行排名,同时保护结果免受低音量噪音的影响。

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

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

问题已回答

哪些 API 路由具有最高的有意义 5xx 错误率?

错误计数有利于繁忙的路线。错误率按请求量对故障进行标准化,而最小量阈值可防止很少使用的端点上的一个故障在列表中占据主导地位。

活动合约

查询期望的字段

字段类型为什么存在
timestamp_utcTimestamp请求完成后,标准化为 UTC。
route_templateUtf8稳定的路由形状,例如 /api/projects/:id。
status_codeInt64HTTP 响应状态代码。
latency_msFloat64请求持续时间(以毫秒为单位)。
DataFusion SQL

复制查询

sql
SELECT
  route_template,
  COUNT(*) AS requests,
  SUM(CASE WHEN status_code >= 500 THEN 1 ELSE 0 END) AS errors,
  100.0 * SUM(CASE WHEN status_code >= 500 THEN 1 ELSE 0 END)
    / NULLIF(COUNT(*), 0) AS error_rate_pct
FROM api_requests
WHERE timestamp_utc >= now() - INTERVAL '24 hours'
GROUP BY route_template
HAVING COUNT(*) >= 20
ORDER BY error_rate_pct DESC
LIMIT 10;

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

查询结果

5xx 路由错误率

尽管搜索的总流量更多,但结帐路线是最明显的可靠性风险。

route_templaterequestserrorserror_rate_pct
/api/checkout25520
/api/search2514
/api/profile2000

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

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

重现示例

下载公共装置

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

SQL 是如何工作的

  1. 1CASE 表达式仅对状态为 5xx 的响应进行计数,同时保留同一组中的总请求计数。
  2. 2NULLIF 防止被零除。 HAVING 子句排除请求数少于 20 个的路由,其中​​一个错误就会产生不稳定的百分比。
  3. 3使用路由模板而不是原始 URL,这样标识符就不会将一个端点分成数千组。

需要决定的边缘情况

  • 选择与您的流量相匹配的最低请求阈值。二十个请求只是说明性的,并不具有普遍性。
  • 如果您的 API 有意将预期 5xx 响应用于工作流程控制,则将预期的 5xx 响应与基础设施故障分开。
  • 按环境进行细分,因此分段流量不会改变生产率。

推荐仪表板

  • 条形图:error_rate_pct by route_template
  • 统计:所选时间段内总共 5xx 条回复
  • 表:request_id 和 error_type 的最新失败请求

警报指导

当评估窗口中至少有 100 个请求的路由的 error_rate_pct 超过 2% 时发出警报。

读取警报设置

让查询示例发挥作用

相关埋点和指南

继续分析

在真实事件中运行它

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

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

获取 API 密钥