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

使用 SQL 查找停滞的后台作业

连接作业开始和完成事件以识别超出其预期完成窗口的工作。

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

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

问题已回答

哪些作业已启动但从未产生终止事件?

作业可以消失而不会产生失败事件。连接启动到终止事件会显示仍在运行的工作、工作线程崩溃后丢失的工作或缺少完成检测的工作。

活动合约

查询期望的字段

字段类型为什么存在
timestamp_utcTimestamp事件发生时。
job_idUtf8一项作业的每个事件共享的标识符。
job_nameUtf8稳定的逻辑作业名称。
event_nameUtf8job_started、job_completed 或 job_failed。
queue_nameUtf8拥有该作业的队列。
DataFusion SQL

复制查询

sql
WITH started AS (
  SELECT
    job_id,
    job_name,
    queue_name,
    MIN(timestamp_utc) AS started_at
  FROM job_events
  WHERE event_name = 'job_started'
    AND timestamp_utc >= now() - INTERVAL '24 hours'
  GROUP BY job_id, job_name, queue_name
),
finished AS (
  SELECT
    job_id,
    MAX(timestamp_utc) AS finished_at
  FROM job_events
  WHERE event_name IN ('job_completed', 'job_failed')
    AND timestamp_utc >= now() - INTERVAL '24 hours'
  GROUP BY job_id
)
SELECT
  s.job_id,
  s.job_name,
  s.queue_name,
  s.started_at
FROM started s
LEFT JOIN finished f ON s.job_id = f.job_id
WHERE f.job_id IS NULL
  AND s.started_at < now() - INTERVAL '15 minutes'
ORDER BY s.started_at ASC;

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

查询结果

没有终止事件的最古老的作业

表保存操作员检查或重播工作所需的标识符。

job_idjob_namequeue_namestarted_at
job_7f31import_catalogimports2026-07-27 15:02:11Z
job_801csync_subscriptionbilling2026-07-27 15:19:43Z

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

Oldest jobs without a terminal event:来自 Find Stalled Background Jobs With SQL 示例结果的合成 started_at 值的静态图表
确定性示例输出的可索引 SVG。下载它以获取带有归属的文章、操作手册或设计评论。

重现示例

下载公共装置

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

SQL 是如何工作的

  1. 1第一个 CTE 保留每个逻辑作业的最早开始时间。第二个保留最新的终端事件。
  2. 2即使不存在匹配的完成或失败,LEFT JOIN 也会保留已启动的作业。
  3. 3十五分钟阈值是停滞的操作定义。根据预期的工作持续时间来设置它,而不是盲目复制它。

需要决定的边缘情况

  • 长时间运行的作业需要特定于作业的阈值或心跳事件。
  • 迟到的事件可能会暂时产生误报;当摄取可能滞后时,延迟最新的存储桶。
  • 重用的 job_id 将加入不相关的运行,因此每个逻辑执行的 ID 必须是唯一的。

推荐仪表板

  • 统计:当前停滞的作业数
  • 表:最旧的停滞作业 job_id 和 queue_name
  • 折线图:按天检测的停滞作业

警报指导

当任何关键作业超过其预期持续时间加上短暂的摄取宽限期时发出警报。

读取警报设置

让查询示例发挥作用

相关埋点和指南

继续分析

在真实事件中运行它

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

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

获取 API 密钥