跳转到内容
Telemetry
后台任务 SQL查询示例

测量后台作业重试和失败率

通过比较成功的运行、重试、失败和尾部持续时间来查找不可靠的作业。

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

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

问题已回答

哪些后台作业消耗的重试次数最多或仍然失败?

重试可以使队列看起来健康,同时隐藏额外的工作和延迟的结果。此查询使成功恢复可见,而不将其视为首次尝试成功。

活动合约

查询期望的字段

字段类型为什么存在
timestamp_utcTimestamp运行完成或失败时。
job_nameUtf8稳定的逻辑作业名称。
statusUtf8成功或失败。
attemptInt64基于一的执行尝试。
duration_msFloat64尝试的持续时间。
DataFusion SQL

复制查询

sql
SELECT
  job_name,
  COUNT(*) AS attempts,
  SUM(CASE WHEN attempt > 1 THEN 1 ELSE 0 END) AS retries,
  SUM(CASE WHEN status = 'failed' THEN 1 ELSE 0 END) AS failures,
  100.0 * SUM(CASE WHEN attempt > 1 THEN 1 ELSE 0 END)
    / NULLIF(COUNT(*), 0) AS retry_rate_pct,
  approx_percentile_cont(duration_ms, 0.95) AS p95_duration_ms
FROM job_runs
WHERE timestamp_utc >= now() - INTERVAL '7 days'
GROUP BY job_name
ORDER BY retry_rate_pct DESC, failures DESC;

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

查询结果

按作业重试率

尽管电子邮件有更多的绝对重试尝试,但订阅同步值得关注。

job_nameattemptsretriesfailuresretry_rate_pctp95_duration_ms
sync_subscription1032308,000
generate_report81112.512,000
send_email10000900

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

Retry rate by job:来自 Measure Background Job Retry and Failure Rate 示例结果的合成 retry_rate_pct 值的静态图表
确定性示例输出的可索引 SVG。下载它以获取带有归属的文章、操作手册或设计评论。

重现示例

下载公共装置

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

SQL 是如何工作的

  1. 1计算尝试次数而不是逻辑作业有意暴露了重试造成的额外执行负载。
  2. 2重试率分母是所有尝试。如果您更喜欢逻辑作业分母,请包含 job_id 并计算不同的作业 ID。
  3. 3p95 持续时间有助于区分快速瞬时重试和消耗工作线程容量的昂贵运行。

需要决定的边缘情况

  • 计划的重试可能是预期的行为;在更改重试策略之前按 error_type 进行分段。
  • 如果多次尝试属于一个逻辑工作单元,请使用稳定的 job_id。
  • 死信事件应单独报告,因为它们代表耗尽恢复。

推荐仪表板

  • 条形图:retry_rate_pct by job_name
  • 折线图:每日故障和 job_name
  • 表:最新的最终故障以及客户和错误上下文

警报指导

当重试率相对于前 7 天基线翻倍或最终失败影响关键工作流程时发出警报。

读取警报设置

让查询示例发挥作用

相关埋点和指南

继续分析

在真实事件中运行它

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

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

获取 API 密钥