监控 GKE 上运行的 Cronjob

2024-01-12

我正在尝试监控 GKE 上运行的 CronJob,但我看不到检查 CronJob 是否实际运行的简单方法。如果 CronJob 运行时间没有超过 X 时间,并且 Stackdriver 似乎不支持,我想触发警报。

目前,我尝试使用基于日志记录指标的警报,但这只能在应用程序崩溃或特定错误时发出警报,而不是针对平台错误本身。

我研究了一个使用 Prometheus 警报的解决方案,它可以集成到 Stackdriver 中吗?

更新: 只是后续行动,最终使用 Stackdriver 上基于日志的警报开发了一个简单的解决方案。如果日志在 X 时间后没有出现,则会触发警报。它并不完美,但对于我的用例来说还可以。


看起来好像它是一个启动标准 Kubernetes 作业的 cronjob,您可以查询该作业,然后检查它的启动时间,并将其与当前时间进行比较。

注意:我对 stackdriver 不熟悉,所以这可能不是你想要的,但是......

例如。与bash:

START_TIME=$(kubectl -n=your-namespace get job your-job-name -o json | jq '.status.startTime')
echo $START_TIME

您还可以以 JSON blob 形式获取作业的当前状态,如下所示:

kubectl -n=your-namespace get job your-job-name -o json | jq '.status'

这会产生如下结果:

{
  "completionTime": "2019-09-06T17:13:51Z",
  "conditions": [
    {
      "lastProbeTime": "2019-09-06T17:13:51Z",
      "lastTransitionTime": "2019-09-06T17:13:51Z",
      "status": "True",
      "type": "Complete"
    }
  ],
  "startTime": "2019-09-06T17:13:49Z",
  "succeeded": 1
}

您可以在检查脚本中使用像 jq 这样的工具来查看成功了 or type字段以查看作业是否成功。

因此,通过您的 START_TIME 值,您可以获得当前时间或作业完成时间(完成时间),如果结果小于您的最短工作时间阈值,您可以触发警报 - 例如POST 到 slack webhook 以发送通知或您使用的任何其他警报系统。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

监控 GKE 上运行的 Cronjob 的相关文章

随机推荐