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

检测后台作业重试风暴

查找重复作业尝试造成不成比例的队列工作和失败的时间段。

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

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

问题已回答

目前哪些工作类型在重试上花费的工作量最多?

重试风暴可以提高吞吐量,但有用的完成率却会下降。一起衡量尝试、独特作业、重试份额和失败份额可将生产负载与重复工作分开。

活动合约

查询期望的字段

字段类型为什么存在
timestamp_utcTimestamp尝试完成时间。
job_idUtf8稳定的逻辑作业标识符。
job_nameUtf8工作类型稳定。
attemptInt64基于一的尝试次数。
statusUtf8已完成、重试或失败。
DataFusion SQL

复制查询

sql
SELECT
  date_trunc('hour', timestamp_utc) AS hour,
  job_name,
  COUNT(*) AS attempts,
  COUNT(DISTINCT job_id) AS logical_jobs,
  SUM(CASE WHEN attempt > 1 THEN 1 ELSE 0 END) AS retry_attempts,
  100.0 * SUM(CASE WHEN attempt > 1 THEN 1 ELSE 0 END)
    / NULLIF(COUNT(*), 0) AS retry_attempt_rate_pct,
  100.0 * SUM(CASE WHEN status = 'failed' THEN 1 ELSE 0 END)
    / NULLIF(COUNT(*), 0) AS failed_attempt_rate_pct
FROM job_attempts
WHERE timestamp_utc >= now() - INTERVAL '24 hours'
GROUP BY date_trunc('hour', timestamp_utc), job_name
HAVING COUNT(*) >= 20
ORDER BY retry_attempt_rate_pct DESC, attempts DESC;

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

查询结果

按作业重试尝试率

CRM 同步产生的尝试远多于逻辑作业,并且重复工作会消耗工作人员的能力。

hourjob_nameattemptslogical_jobsretry_attemptsretry_attempt_rate_pctfailed_attempt_rate_pct
2026-07-27 14:00sync_crm_accounts1,8404921,11860.7622.34
2026-07-27 14:00send_receipt_email3,1803,0611193.740.44

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

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

重现示例

下载公共装置

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

SQL 是如何工作的

  1. 1不同的作业 ID 估计有用的逻辑工作,而原始计数则衡量工人的尝试。
  2. 2一次以上的尝试会孤立重复的工作,而不会将最终的成功视为第一次尝试。
  3. 3失败率与重试共享保持一致,因此故意重试的瞬态依赖性可以与最终失败区分开来。

需要决定的边缘情况

  • 扇出作业可以合法地创建多个子 ID;在比较计数之前定义逻辑工作标识符。
  • 立即重试和计划退避具有不同的容量影响,并且可能需要单独的字段。
  • 重试风暴可以在每小时的时段之间移动;当响应时间很重要时,添加较短的操作查询。

推荐仪表板

  • 酒吧:retry_attempt_rate_pct(按工作)
  • 趋势:尝试和logical_jobs
  • 表:尝试次数最多和错误类型最新的作业

警报指导

当连续完整存储桶的重试份额、尝试量和队列寿命一起提升时发出警报。

读取警报设置

让查询示例发挥作用

相关埋点和指南

继续分析

在真实事件中运行它

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

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

获取 API 密钥