跳转到内容
Telemetry
SQL查询示例集合

后台任务 SQL 查询示例

测量工作人员、导入、cron 任务和异步作业的重试、失败、队列寿命、积压增长、停滞工作和恢复时间。

共同事件契约

使这些查询可重用的字段

  • timestamp_utc、job_id、job_name、queue_name 和状态
  • scheduled_at、started_at、completed_at、duration_ms 和尝试
  • error_type、worker_name、item_count 和释放

SQL 之前的定义

查询无法为您做出的决定

  1. 1选择一个标识符来连接同一逻辑作业的每次尝试。
  2. 2记录终端状态,以便停滞的作业查询不会标记已完成的工作。
  3. 3在设置阈值之前,将队列等待与执行时间分开。

推荐顺序

先建立检测,然后诊断

分析模式

让结果解释决定

建立工作生命周期模型

保持计划、开始、重试、完成、失败和丢弃的结果不同,以便一个查询可以重建每个逻辑作业。

将库存与流量分开

独立于每个时间段内创建和解决的作业来衡量当前的积压工作。

持续延误警报

使用队列年龄、连续错过的计划或重复重试,而不是单个暂时的工作错误。

完整的查询示例

复制查询,然后验证假设

入门job_runs

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

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

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

查看 SQL 和结果
中级job_events

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

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

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

查看 SQL 和结果
入门job_runs

按作业测量队列等待时间

将队列中等待的时间与执行持续时间分开,并按作业名称比较 p50 和 p95 延迟。

哪些工作在工人开始之前等待的时间最长?

查看 SQL 和结果
中级job_events

测量死信队列增长

比较死信的创建和解决以查找累积不可恢复工作的队列。

哪些队列添加死信作业的速度比解决死信作业的速度快?

查看 SQL 和结果
中级cron_runs

检测错过的 Cron 计划

将连续的 cron 运行事件与每个计划间隔进行比较,以查找延迟或丢失的执行。

哪些预定作业的运行时间晚于记录的时间间隔?

查看 SQL 和结果
中级job_attempts

检测后台作业重试风暴

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

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

查看 SQL 和结果

在阈值之前调整事件契约

保留分析模式,但根据您自己的事件验证表名称、字段类型、业务定义、时间窗口和最小量规则。每个已发布的查询也会针对具有固定引擎的空类型表进行规划和执行。