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

检测错过的 Cron 计划

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

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

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

问题已回答

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

从未启动的 cron 进程不会发出故障。将观察到的运行之间的差距与预期间隔进行比较,可以检测普通错误率查询错过的静默。

活动合约

查询期望的字段

字段类型为什么存在
timestamp_utcTimestamp观察 cron-run 开始时间。
schedule_nameUtf8稳定的计划工作流程名称。
environmentUtf8部署环境。
expected_interval_minutesFloat64记录开始之间的分钟数。
DataFusion SQL

复制查询

sql
WITH ordered_runs AS (
  SELECT
    schedule_name,
    environment,
    timestamp_utc AS run_at,
    expected_interval_minutes,
    LAG(timestamp_utc) OVER (
      PARTITION BY schedule_name, environment
      ORDER BY timestamp_utc
    ) AS previous_run_at
  FROM cron_runs
  WHERE timestamp_utc >= now() - INTERVAL '7 days'
)
SELECT
  schedule_name,
  environment,
  previous_run_at,
  run_at,
  expected_interval_minutes,
  date_part('second', run_at - previous_run_at) / 60.0 AS observed_gap_minutes
FROM ordered_runs
WHERE previous_run_at IS NOT NULL
  AND date_part('second', run_at - previous_run_at) / 60.0
    > expected_interval_minutes * 1.5
ORDER BY observed_gap_minutes DESC;

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

查询结果

观察到的时间表差距

计费同步错过了两次预期开始时间,而每日到期工作流程则跳过了一天。

schedule_nameenvironmentprevious_run_atrun_atexpected_interval_minutesobserved_gap_minutes
hourly_billing_syncproduction2026-07-27 07:002026-07-27 10:0060180
daily_trial_expirationproduction2026-07-25 02:002026-07-27 02:001,4402,880

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

Observed schedule gaps:来自 Detect Missed Cron Schedules 示例结果的合成 observed_gap_minutes 值的静态图表
确定性示例输出的可索引 SVG。下载它以获取带有归属的文章、操作手册或设计评论。

重现示例

下载公共装置

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

SQL 是如何工作的

  1. 1LAG 检索每个计划和环境的先前观察到的开始。
  2. 2时间戳差异成为观察到的间隙,可以与每个作业自己的间隔进行比较。
  3. 31.5 的乘数允许正常的调度抖动,而不会隐藏真正错过的运行。

需要决定的边缘情况

  • 此历史查询仅在下一次运行到达后才检测到间隙;将其与当前丢失心跳警报配对。
  • 计划维护和禁用时间表应发出明确的状态更改。
  • 夏令时转换需要 UTC 时间表或时区感知期望。

推荐仪表板

  • 表:上一次和下一次运行错过的开始时间
  • 趋势:按工作划分的日程间隔分钟数
  • 统计:生产计划目前已逾期

警报指导

对于实时检测,当最新运行早于预期间隔加上记录的抖动时发出警报。

读取警报设置

让查询示例发挥作用

相关埋点和指南

继续分析

在真实事件中运行它

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

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

获取 API 密钥