Cron 监控

Cron 监控让你跟踪定时任务(例如备份、批处理或周期性脚本),并在它们没有按时运行时收到通知。这有助于确保关键的后台流程始终按预期工作。

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

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

cron 监控列表

主要功能

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

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

cron 监控详情

添加第一个 cron 监控

要添加监控,请进入你的项目 → 监控 → 添加监控。

添加监控

监控类型

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

cron 监控类型

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

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

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

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

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

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

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

主动上报失败

有时候即使任务运行了并且 ping 了监控,你仍想显式地把它标记为失败。
方法是向监控 URL 后面追加 /fail 并发送请求。

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

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

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

测量任务执行时长

你可以通过发送两个请求来测量任务的执行时长:

  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 监控!