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

计算 API 错误预算消耗率

将每小时的请求失败转化为 SLO 消耗率系列,显示允许的错误预算消耗的速度。

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

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

问题已回答

API 消耗其 99.9% 可用性预算的速度有多快?

当与明确的可靠性目标进行比较时,错误率在操作上变得有用。销毁率将当前的不良请求率表示为 SLO 允许的比率的倍数。

活动合约

查询期望的字段

字段类型为什么存在
timestamp_utcTimestamp请求完成时间(UTC)。
status_codeInt64HTTP 响应状态代码。
environmentUtf8部署环境。
DataFusion SQL

复制查询

sql
WITH hourly AS (
  SELECT
    date_trunc('hour', timestamp_utc) AS hour,
    COUNT(*) AS requests,
    SUM(CASE WHEN status_code >= 500 THEN 1 ELSE 0 END) AS bad_requests
  FROM api_requests
  WHERE timestamp_utc >= now() - INTERVAL '24 hours'
    AND environment = 'production'
  GROUP BY date_trunc('hour', timestamp_utc)
)
SELECT
  hour,
  requests,
  bad_requests,
  100.0 * bad_requests / NULLIF(requests, 0) AS error_rate_pct,
  (1.0 * bad_requests / NULLIF(requests, 0)) / 0.001 AS burn_rate
FROM hourly
ORDER BY hour;

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

查询结果

每小时误差-预算消耗率

13:00 时段消耗的预算是可持续比率的 3.72 倍。

hourrequestsbad_requestserror_rate_pctburn_rate
12:0018,42090.050.49
13:0019,110710.373.72
14:0018,780240.131.28

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

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

重现示例

下载公共装置

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

SQL 是如何工作的

  1. 199.9% 的成功目标允许 0.1% 或 0.001 的不良请求率。
  2. 2将观察到的比率除以 0.001 得出燃烧率:1× 完全是可持续的,而 3× 则消耗预算的速度太快了三倍。
  3. 3CTE 使请求分母保持可见,因此可以单独处理小桶。

需要决定的边缘情况

  • 定义哪些状态代码对于面向用户的 SLI 来说是错误的;并非每个 5xx 都有相同的影响。
  • 使用多窗口警报进行生产寻呼,而不是一个嘈杂的每小时阈值。
  • 仅当 SLO 定义明确排除综合检查或内部流量时,才排除它们。

推荐仪表板

  • 趋势:burn_rate(按小时)
  • 统计:每月剩余错误预算
  • 表:造成最坏请求的路由

警报指导

仅当短消耗率窗口和长消耗率窗口都超过有意义的请求量的阈值时才进行寻呼。

读取警报设置

让查询示例发挥作用

相关埋点和指南

继续分析

在真实事件中运行它

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

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

获取 API 密钥