Cron 监控

Cron 监控为每个定时任务(备份、批处理或周期性脚本)提供一个唯一的 URL 供其 ping,并在 ping 迟到或缺失时通知你。任务错过周期时会被标记为降级,连宽限期也错过时则标记为故障。

其他监控一样,当 cron 任务失败时,你可以和团队协作解决该事件,也可以选择更新你的状态页

下面是 cron 监控列表的示例:

cron 监控列表

Cron 监控有什么用?

  • 验证 cron 任务是否按时运行(依靠任务发来的 ping)。
  • 任务延迟或没有完成时收到告警。
  • 通过 Slack、邮件、短信、电话呼叫等方式接收告警。

点击某个 cron 监控后,你可以看到更多详情:

cron 监控详情

如何添加 cron 监控?

进入你的项目 → 监控 → 添加监控,选择 Cron / 心跳,然后让你的任务请求生成的 URL,并设置它的周期和宽限期。

添加监控

监控类型

选择 Cron/心跳作为监控类型。

cron 监控类型

系统会为你生成一个唯一的 URL。你的 cron 任务每次运行时都应该向这个 URL 发送一个 HTTP 请求(HEADGETPOST)。

满足以下条件时视为监控成功

当任务按计划 ping 生成的 URL 时,cron 监控就算成功。你可以配置:

  • **周期:**任务应该多久运行一次(例如每 15 分钟)。
  • **宽限期:**在判定任务故障之前额外允许的时间。

如果到了周期时间任务仍未 ping,监控会被标记为性能下降。

如果到了宽限期任务仍未 ping,监控会被标记为故障。

你可以设置告警,在任务故障、性能下降或恢复时收到通知。

主动上报失败

向监控 URL 末尾追加 /fail 发送请求,即可把任务标记为失败,即使它已经运行并 ping 了监控。

如果你的脚本遇到错误,想让 Instatus 立刻把该任务记录为失败,这就很有用。

  • 成功 pinghttps://cron.instatus.com/your-unique-url
  • 失败 pinghttps://cron.instatus.com/your-unique-url/fail

收到失败信号后,监控会被标记为故障,并立即按照你的告警设置发送告警。

测量任务执行时长

发送两次请求:任务开始时请求 /start,结束时发送成功或失败 ping,Instatus 会把两者之间的时间记录为任务的执行时间:

  1. 开始信号:任务开始时向 /start 发送请求
  2. 成功/失败信号:任务完成或失败时向基础 URL 发送请求
  • 开始 pinghttps://cron.instatus.com/your-unique-url/start
  • 成功 pinghttps://cron.instatus.com/your-unique-url
  • 失败 pinghttps://cron.instatus.com/your-unique-url/fail

开始信号与成功信号之间的时间会被记录为任务的执行时长。这有助于你跟踪性能,找出耗时超出预期的任务。

如果任务在发送开始信号之后失败了,请发送失败信号而不是成功信号,这样既标记为失败,也能记录执行时长。

恭喜,你已经添加了第一个 cron 监控!